commit 1f5e3ddf022fd10294277d27bb80cbd2a670d27c Author: thomas_lucky13 Date: Sun May 22 21:23:04 2022 +0400 line style diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6de0441 --- /dev/null +++ b/.gitignore @@ -0,0 +1,82 @@ +# Compiled source # +################### +*.com +*.class +#*.dll +#*.exe +#*.o +#*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store? +ehthumbs.db +Icon? +Thumbs.db +*~ + +# IDE # +####### +*.kdev4 +*.cproject +*.xcodeproj +*.pdb +*.sln +*.suo +*.vcproj* +*.ncb +*.pro.user +*.idb +.project +.settings +Makefile.Sankore* + +*.swp +*.vim + +# Build files # +############### +build +install +Makefile +Makefile.Debug +Makefile.Release + +buildContext + +# plugins # +########### + +plugins/cffadaptor/lib +plugins/cffadaptor/moc +plugins/cffadaptor/objects + + +# Translation files # +##################### +*.qm + + +# Others # +########## +.directory +.DS_Store diff --git a/C++StandardHeaderFile.txt b/C++StandardHeaderFile.txt new file mode 100644 index 0000000..af17dcf --- /dev/null +++ b/C++StandardHeaderFile.txt @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2015-2016 Département de l'Instruction Publique (DIP-SEM) + * + * Copyright (C) 2013 Open Education Foundation + * + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour + * l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of OpenBoard. + * + * OpenBoard is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * OpenBoard 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with OpenBoard. If not, see . + */ diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..d2e17ef --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,21 @@ +Copyright (C) 2013 Open Education Foundation + +Copyright (C) 2010-2013 Groupement d'Intérêt Public pour +l'Education Numérique en Afrique (GIP ENA) + +This file is part of OpenBoard. + +OpenBoard is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 3 of the License, +with a specific linking exception for the OpenSSL project's +"OpenSSL" library (or with modified versions of it that use the +same license as the "OpenSSL" library). + +OpenBoard 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with OpenBoard. If not, see . diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/OpenBoard.pro b/OpenBoard.pro new file mode 100644 index 0000000..f3590fd --- /dev/null +++ b/OpenBoard.pro @@ -0,0 +1,516 @@ +TARGET = "OpenBoard" +TEMPLATE = app + +CONFIG += c++14 +CONFIG -= flat +CONFIG += debug_and_release \ + no_include_pwd + + +VERSION_MAJ = 1 +VERSION_MIN = 6 +VERSION_PATCH = 1 +VERSION_TYPE = r # a = alpha, b = beta, rc = release candidate, r = release, other => error +VERSION_BUILD = 0309 + +VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}-$${VERSION_TYPE}.$${VERSION_BUILD}" + +equals(VERSION_TYPE, r) { + VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}" +} + + +LONG_VERSION = "$${VERSION}.$${SVN_VERSION}" +macx:OSX_VERSION = "$${VERSION} (r$${SVN_VERSION})" + +VERSION_RC = $$VERSION_MAJ,$$VERSION_MIN,$$VERSION_PATCH,$$VERSION_TYPE,$$VERSION_BUILD +VERSION_RC = $$replace(VERSION_RC, "a", "160") # 0xA0 +VERSION_RC = $$replace(VERSION_RC, "b", "176") # 0xB0 +VERSION_RC = $$replace(VERSION_RC, "rc", "192" ) # 0xC0 +VERSION_RC = $$replace(VERSION_RC, "r", "240") # 0xF0 + +QT += webkit +QT += svg +QT += network +QT += xml +QT += xmlpatterns +QT += uitools +QT += multimedia +QT += webkitwidgets +QT += multimediawidgets +QT += printsupport +QT += core + +INCLUDEPATH += src + +include(src/adaptors/adaptors.pri) +include(src/api/api.pri) +include(src/board/board.pri) +include(src/core/core.pri) +include(src/document/document.pri) +include(src/domain/domain.pri) +include(src/frameworks/frameworks.pri) +include(src/gui/gui.pri) +include(src/network/network.pri) +include(src/pdf/pdf.pri) +include(src/podcast/podcast.pri) +include(src/tools/tools.pri) +include(src/desktop/desktop.pri) +include(src/web/web.pri) +include(src/qtsingleapplication/src/qtsingleapplication.pri) + +DEPENDPATH += src/pdf-merger +INCLUDEPATH += src/pdf-merger +include(src/pdf-merger/pdfMerger.pri) + +#plugins +include(plugins/plugins.pri) +INCLUDEPATH += plugins/cffadaptor/src + +FORMS += resources/forms/mainWindow.ui \ + resources/forms/preferences.ui \ + resources/forms/brushProperties.ui \ + resources/forms/documents.ui \ + resources/forms/blackoutWidget.ui \ + resources/forms/trapFlash.ui \ + resources/forms/youTubePublishingDialog.ui \ + resources/forms/capturePublishing.ui \ + resources/forms/intranetPodcastPublishingDialog.ui + +UB_ETC.files = resources/etc +UB_I18N.files = resources/i18n/*.qm +UB_LIBRARY.files = resources/library +UB_FONTS.files = resources/fonts +UB_THIRDPARTY_INTERACTIVE.files = thirdparty/interactive + +DEFINES += NO_THIRD_PARTY_WARNINGS +DEFINES += UBVERSION=\"\\\"$${LONG_VERSION}\"\\\" \ + UBVERSION_RC=$$VERSION_RC +ALPHA_BETA_STR = $$find(VERSION, "[ab]") +count(ALPHA_BETA_STR, 1):DEFINES += PRE_RELEASE +BUILD_DIR = build + +macx:BUILD_DIR = $$BUILD_DIR/macx +win32:BUILD_DIR = $$BUILD_DIR/win32 +linux-g++*:BUILD_DIR = $$BUILD_DIR/linux + +CONFIG(debug, debug|release):BUILD_DIR = $$BUILD_DIR/debug +CONFIG(release, debug|release) { + BUILD_DIR = $$BUILD_DIR/release + CONFIG += warn_off +} + +DESTDIR = $$BUILD_DIR/product +OBJECTS_DIR = $$BUILD_DIR/objects +MOC_DIR = $$BUILD_DIR/moc +RCC_DIR = $$BUILD_DIR/rcc +UI_DIR = $$BUILD_DIR/ui + +win32 { + + + LIBS += -lUser32 + LIBS += -lGdi32 + LIBS += -lAdvApi32 + LIBS += -lOle32 + + THIRD_PARTY_PATH=../OpenBoard-ThirdParty + include($$THIRD_PARTY_PATH/libs.pri) + + DEPENDPATH += $$THIRD_PARTY_PATH/quazip/ + INCLUDEPATH += $$THIRD_PARTY_PATH/quazip/ + include($$THIRD_PARTY_PATH/quazip/quazip.pri) + + RC_FILE = resources/win/OpenBoard.rc + CONFIG += axcontainer + exists(console):CONFIG += console + QMAKE_CXXFLAGS += /MP + CONFIG( debug, debug|release ) { + QMAKE_CXXFLAGS += /MDd + } else { + QMAKE_CXXFLAGS += /MD + } + QMAKE_CXXFLAGS_RELEASE += /Od /Zi + QMAKE_LFLAGS += /VERBOSE:LIB + UB_LIBRARY.path = $$DESTDIR + UB_I18N.path = $$DESTDIR/i18n + UB_ETC.path = $$DESTDIR + UB_THIRDPARTY_INTERACTIVE.path = $$DESTDIR/library + system(md $$replace(BUILD_DIR, /, \\)) + system(echo "$$VERSION" > $$BUILD_DIR/version) + system(echo "$$LONG_VERSION" > $$BUILD_DIR/longversion) + system(echo "$$SVN_VERSION" > $$BUILD_DIR/svnversion) + + DEFINES += NOMINMAX # avoids compilation error in qdatetime.h + + + # Windows doesn't support file versions with more than 4 fields, so + # we omit the build number (which is only used for pre-release versions + # anyway) + + VERSION_RC = $$VERSION_MAJ,$$VERSION_MIN,$$VERSION_PATCH,$$VERSION_TYPE + VERSION_RC = $$replace(VERSION_RC, "a", "160") # 0xA0 + VERSION_RC = $$replace(VERSION_RC, "b", "176") # 0xB0 + VERSION_RC = $$replace(VERSION_RC, "rc", "192" ) # 0xC0 + VERSION_RC = $$replace(VERSION_RC, "r", "240") # 0xF0 + + + DEFINES += UBVERSION=\"\\\"$${VERSION}\"\\\" \ + UBVERSION_RC=$$VERSION_RC +} + +macx { + DEFINES += Q_WS_MACX + + LIBS += -framework Foundation + LIBS += -framework Cocoa + LIBS += -framework Carbon + LIBS += -framework AVFoundation + LIBS += -framework CoreMedia + LIBS += -lcrypto + + LIBS += -L/usr/local/opt/openssl/lib + + # quazip depends on QT. Current is 5.14, so if you wish to build + # OB using a previous QT version, you have to build your own quazip, + # otherwise it won't link. + equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) { + LIBS += "-L../OpenBoard-ThirdParty/quazip/lib/macx" "-lquazip" + } else { + LIBS += -L/usr/local/opt/quazip/lib -lquazip + } + LIBS += -L/usr/local/opt/ffmpeg/lib + INCLUDEPATH += /usr/local/opt/openssl/include + INCLUDEPATH += /usr/local/opt/ffmpeg/include + equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) { + INCLUDEPATH += ../OpenBoard-ThirdParty/quazip/quazip-0.7.1 + } else { + INCLUDEPATH += /usr/local/opt/quazip/include/quazip + } + + LIBS += -L/usr/local/opt/poppler/lib -lpoppler + INCLUDEPATH += /usr/local/opt/poppler/include + INCLUDEPATH += /usr/local/opt/poppler/include/poppler + + CONFIG(release, debug|release):CONFIG += x86_64 + CONFIG(debug, debug|release):CONFIG += x86_64 + + QMAKE_MAC_SDK = macosx + QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 + + QMAKE_CXXFLAGS += -Wno-overloaded-virtual + #VERSION_RC_PATH = "$$BUILD_DIR/version_rc" + + # No references to breakpad in the code =>is this still used? + # Embed version into executable for breakpad + #QMAKE_LFLAGS += -sectcreate \ + # __DATA \ + # __version \ + # $$VERSION_RC_PATH + + QMAKE_CXXFLAGS_RELEASE += -gdwarf-2 \ + -mdynamic-no-pic + +# QMAKE_CFLAGS += -fopenmp + # QMAKE_CXXFLAGS += -fopenmp + # QMAKE_LFLAGS += -fopenmp + + CONTENTS_DIR = "Contents" + RESOURCES_DIR = "Contents/Resources" + FRAMEWORKS_DIR = "Contents/Frameworks" + + UB_ETC.files = "resources/etc" + UB_ETC.path = "$$RESOURCES_DIR" + UB_LIBRARY.files = "resources/library" + UB_LIBRARY.path = "$$RESOURCES_DIR" + UB_FONTS.files = "resources/fonts" + UB_FONTS.path = "$$RESOURCES_DIR" + UB_THIRDPARTY_INTERACTIVE.files = $$files($$THIRD_PARTY_PATH/interactive/*) + UB_THIRDPARTY_INTERACTIVE.path = "$$RESOURCES_DIR/library/interactive" + UB_MACX_ICNS.files = $$files(resources/macx/*.icns) + UB_MACX_ICNS.path = "$$RESOURCES_DIR" + UB_MACX_EXTRAS.files = "resources/macx/Save PDF to OpenBoard.workflow" + UB_MACX_EXTRAS.path = "$$RESOURCES_DIR" + UB_I18N.path = $$DESTDIR/i18n # not used + + exists(resources/i18n/OpenBoard_en.qm) { + TRANSLATION_en.files = resources/i18n/OpenBoard_en.qm \ + resources/i18n/Localizable.strings + TRANSLATION_en.path = "$$RESOURCES_DIR/en.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_en + } + exists(resources/i18n/OpenBoard_en_UK.qm) { + TRANSLATION_en_UK.files = resources/i18n/OpenBoard_en_UK.qm \ + resources/i18n/Localizable.strings + TRANSLATION_en_UK.path = "$$RESOURCES_DIR/en_UK.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_en_UK + } + exists(resources/i18n/OpenBoard_fr.qm) { + TRANSLATION_fr.files = resources/i18n/OpenBoard_fr.qm \ + resources/i18n/Localizable.strings + TRANSLATION_fr.path = "$$RESOURCES_DIR/fr.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_fr + } + exists(resources/i18n/OpenBoard_fr_CH.qm) { + TRANSLATION_fr_CH.files = resources/i18n/OpenBoard_fr_CH.qm \ + resources/i18n/Localizable.strings + TRANSLATION_fr_CH.path = "$$RESOURCES_DIR/fr_CH.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_fr_CH + } + exists(resources/i18n/OpenBoard_de.qm) { + TRANSLATION_de.files = resources/i18n/OpenBoard_de.qm \ + resources/i18n/Localizable.strings + TRANSLATION_de.path = "$$RESOURCES_DIR/de.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_de + } + exists(resources/i18n/OpenBoard_nl.qm) { + TRANSLATION_nl.files = resources/i18n/OpenBoard_nl.qm \ + resources/i18n/Localizable.strings + TRANSLATION_nl.path = "$$RESOURCES_DIR/nl.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_nl + } + exists(resources/i18n/OpenBoard_es.qm) { + TRANSLATION_es.files = resources/i18n/OpenBoard_es.qm \ + resources/i18n/Localizable.strings + TRANSLATION_es.path = "$$RESOURCES_DIR/es.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_es + } + exists(resources/i18n/OpenBoard_it.qm) { + TRANSLATION_it.files = resources/i18n/OpenBoard_it.qm \ + resources/i18n/Localizable.strings + TRANSLATION_it.path = "$$RESOURCES_DIR/it.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_it + } + exists(resources/i18n/OpenBoard_pl.qm) { + TRANSLATION_pl.files = resources/i18n/OpenBoard_pl.qm \ + resources/i18n/Localizable.strings + TRANSLATION_pl.path = "$$RESOURCES_DIR/pl.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_pl + } + exists(resources/i18n/OpenBoard_ru.qm) { + TRANSLATION_ru.files = resources/i18n/OpenBoard_ru.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ru.path = "$$RESOURCES_DIR/ru.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ru + } + exists(resources/i18n/OpenBoard_da.qm) { + TRANSLATION_da.files = resources/i18n/OpenBoard_da.qm \ + resources/i18n/Localizable.strings + TRANSLATION_da.path = "$$RESOURCES_DIR/da.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_da + } + exists(resources/i18n/OpenBoard_nb.qm) { + TRANSLATION_nb.files = resources/i18n/OpenBoard_nb.qm \ + resources/i18n/Localizable.strings + TRANSLATION_nb.path = "$$RESOURCES_DIR/nb.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_nb + } + exists(resources/i18n/OpenBoard_sv.qm) { + TRANSLATION_sv.files = resources/i18n/OpenBoard_sv.qm \ + resources/i18n/Localizable.strings + TRANSLATION_sv.path = "$$RESOURCES_DIR/sv.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_sv + } + exists(resources/i18n/OpenBoard_ja.qm) { + TRANSLATION_ja.files = resources/i18n/OpenBoard_ja.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ja.path = "$$RESOURCES_DIR/ja.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ja + } + exists(resources/i18n/OpenBoard_ko.qm) { + TRANSLATION_ko.files = resources/i18n/OpenBoard_ko.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ko.path = "$$RESOURCES_DIR/ko.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ko + } + exists(resources/i18n/OpenBoard_zh.qm) { + TRANSLATION_zh.files = resources/i18n/OpenBoard_zh.qm \ + resources/i18n/Localizable.strings + TRANSLATION_zh.path = "$$RESOURCES_DIR/zh.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_zh + } + exists(resources/i18n/OpenBoard_zh_CN.qm) { + TRANSLATION_zh_CN.files = resources/i18n/OpenBoard_zh_CN.qm \ + resources/i18n/Localizable.strings + TRANSLATION_zh_CN.path = "$$RESOURCES_DIR/zh_CN.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_zh_CN + } + exists(resources/i18n/OpenBoard_zh_TW.qm) { + TRANSLATION_zh_TW.files = resources/i18n/OpenBoard_zh_TW.qm \ + resources/i18n/Localizable.strings + TRANSLATION_zh_TW.path = "$$RESOURCES_DIR/zh_TW.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_zh_TW + } + exists(resources/i18n/OpenBoard_ro.qm) { + TRANSLATION_ro.files = resources/i18n/OpenBoard_ro.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ro.path = "$$RESOURCES_DIR/ro.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ro + } + exists(resources/i18n/OpenBoard_ar.qm) { + TRANSLATION_ar.files = resources/i18n/OpenBoard_ar.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ar.path = "$$RESOURCES_DIR/ar.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ar + } + exists(resources/i18n/OpenBoard_iw.qm) { + TRANSLATION_iw.files = resources/i18n/OpenBoard_iw.qm \ + resources/i18n/Localizable.strings + TRANSLATION_iw.path = "$$RESOURCES_DIR/iw.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_iw + } + exists(resources/i18n/OpenBoard_pt.qm) { + TRANSLATION_pt.files = resources/i18n/OpenBoard_pt.qm \ + resources/i18n/Localizable.strings + TRANSLATION_pt.path = "$$RESOURCES_DIR/pt.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_pt + } + exists(resources/i18n/OpenBoard_sk.qm) { + TRANSLATION_sk.files = resources/i18n/OpenBoard_sk.qm \ + resources/i18n/Localizable.strings + TRANSLATION_sk.path = "$$RESOURCES_DIR/sk.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_sk + } + exists(resources/i18n/OpenBoard_bg.qm) { + TRANSLATION_bg.files = resources/i18n/OpenBoard_bg.qm \ + resources/i18n/Localizable.strings + TRANSLATION_bg.path = "$$RESOURCES_DIR/bg.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_bg + } + exists(resources/i18n/OpenBoard_ca.qm) { + TRANSLATION_ca.files = resources/i18n/OpenBoard_ca.qm \ + resources/i18n/Localizable.strings + TRANSLATION_ca.path = "$$RESOURCES_DIR/ca.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_ca + } + exists(resources/i18n/OpenBoard_el.qm) { + TRANSLATION_el.files = resources/i18n/OpenBoard_el.qm \ + resources/i18n/Localizable.strings + TRANSLATION_el.path = "$$RESOURCES_DIR/el.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_el + } + exists(resources/i18n/OpenBoard_tr.qm) { + TRANSLATION_tr.files = resources/i18n/OpenBoard_tr.qm \ + resources/i18n/Localizable.strings + TRANSLATION_tr.path = "$$RESOURCES_DIR/tr.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_tr + } + exists(resources/i18n/OpenBoard_cs.qm) { + TRANSLATION_cs.files = resources/i18n/OpenBoard_cs.qm \ + resources/i18n/localizable.strings + TRANSLATION_cs.path = "$$RESOURCES_DIR/cs.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_cs + } + exists(resources/i18n/OpenBoard_mg.qm) { + TRANSLATION_mg.files = resources/i18n/OpenBoard_mg.qm \ + resources/i18n/localizable.strings + TRANSLATION_mg.path = "$$RESOURCES_DIR/mg.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_mg + } + exists(resources/i18n/OpenBoard_gl.qm) { + TRANSLATION_gl.files = resources/i18n/OpenBoard_gl.qm \ + resources/i18n/localizable.strings + TRANSLATION_gl.path = "$$RESOURCES_DIR/gl.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_gl + } + exists(resources/i18n/OpenBoard_uk.qm) { + TRANSLATION_uk.files = resources/i18n/OpenBoard_uk.qm \ + resources/i18n/localizable.strings + TRANSLATION_uk.path = "$$RESOURCES_DIR/uk.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_uk + } + exists(resources/i18n/OpenBoard_hu.qm) { + TRANSLATION_hu.files = resources/i18n/OpenBoard_hu.qm \ + resources/i18n/localizable.strings + TRANSLATION_hu.path = "$$RESOURCES_DIR/hu.lproj" + QMAKE_BUNDLE_DATA += TRANSLATION_hu + } + + QMAKE_BUNDLE_DATA += UB_ETC \ + UB_LIBRARY \ + UB_FONTS \ + UB_THIRDPARTY_INTERACTIVE \ + UB_MACX_ICNS \ + UB_MACX_EXTRAS \ + SPARKLE_KEY \ + FRAMEWORKS + + QMAKE_PKGINFO_TYPEINFO = "OpenB" + QMAKE_INFO_PLIST = "resources/macx/Info.plist" + + # For packger (release.macx.sh script) to know OpenBoard version + system(mkdir -p $$BUILD_DIR) + system(printf \""$$OSX_VERSION"\" > $$BUILD_DIR/osx_version) + system(printf \""$$VERSION"\" > $$BUILD_DIR/version) + # system(printf "%02x%02x%02x%02x" `printf $$VERSION_RC | cut -d ',' -f 1` `printf $$VERSION_RC | cut -d ',' -f 2` `printf $$VERSION_RC | cut -d ',' -f 3` `printf $$VERSION_RC | cut -d ',' -f 4` | xxd -r -p > "$$VERSION_RC_PATH") +} + +linux-g++* { + CONFIG += link_prl + LIBS += -lcrypto + #LIBS += -lprofiler + LIBS += -lX11 + LIBS += -lquazip1-qt5 + INCLUDEPATH += "/usr/include/QuaZip-Qt5-1.2/quazip" + + LIBS += -lpoppler + INCLUDEPATH += "/usr/include/poppler" + + QMAKE_CFLAGS += -fopenmp + QMAKE_CXXFLAGS += -fopenmp + QMAKE_LFLAGS += -fopenmp + UB_LIBRARY.path = $$DESTDIR + UB_I18N.path = $$DESTDIR/i18n + UB_ETC.path = $$DESTDIR + UB_THIRDPARTY_INTERACTIVE.path = $$DESTDIR/library + system(mkdir -p $$BUILD_DIR) + system(echo "$$VERSION" > $$BUILD_DIR/version) + system(echo "$$LONG_VERSION" > $$BUILD_DIR/longversion) + system(echo "$$SVN_VERSION" > $$BUILD_DIR/svnversion) +} + +RESOURCES += resources/OpenBoard.qrc + +# When adding a translation here, also add it in the macx part +TRANSLATIONS = resources/i18n/OpenBoard_en.ts \ + resources/i18n/OpenBoard_en_UK.ts \ + resources/i18n/OpenBoard_fr.ts \ + resources/i18n/OpenBoard_fr_CH.ts \ + resources/i18n/OpenBoard_de.ts \ + resources/i18n/OpenBoard_nl.ts \ + resources/i18n/OpenBoard_es.ts \ + resources/i18n/OpenBoard_it.ts \ + resources/i18n/OpenBoard_pl.ts \ + resources/i18n/OpenBoard_ru.ts \ + resources/i18n/OpenBoard_da.ts \ + resources/i18n/OpenBoard_nb.ts \ + resources/i18n/OpenBoard_sv.ts \ + resources/i18n/OpenBoard_ja.ts \ + resources/i18n/OpenBoard_ko.ts \ + resources/i18n/OpenBoard_zh.ts \ + resources/i18n/OpenBoard_zh_CN.ts \ + resources/i18n/OpenBoard_zh_TW.ts \ + resources/i18n/OpenBoard_ro.ts \ + resources/i18n/OpenBoard_ar.ts \ + resources/i18n/OpenBoard_iw.ts \ + resources/i18n/OpenBoard_pt.ts \ + resources/i18n/OpenBoard_sk.ts \ + resources/i18n/OpenBoard_bg.ts \ + resources/i18n/OpenBoard_ca.ts \ + resources/i18n/OpenBoard_el.ts \ + resources/i18n/OpenBoard_tr.ts \ + resources/i18n/OpenBoard_cs.ts \ + resources/i18n/OpenBoard_gl.ts \ + resources/i18n/OpenBoard_uk.ts \ + resources/i18n/OpenBoard_hu.ts \ + resources/i18n/OpenBoard_mg.ts + +INSTALLS = UB_ETC \ + UB_I18N \ + UB_LIBRARY \ + UB_THIRDPARTY_INTERACTIVE + +DISTFILES += \ + resources/images/moveDown.svg \ + resources/images/moveDownDisabled.svg + diff --git a/README.md b/README.md new file mode 100644 index 0000000..3562370 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# OpenBoard +OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard. + +Supported platforms are Windows (7+), OS X (10.9+) and Linux (tested on Ubuntu 16.04). + + +## Installing + +Installers are available for Windows, OS X and Ubuntu on the [wiki](https://github.com/DIP-SEM/OpenBoard/wiki/Downloads). + +## Building from source +First, obtain the third party libraries from the OpenBoard-ThirdParty repository, and build them (instructions are provided for each library). + +Then, you may use the build (and packaging) scripts which are provided for all three platforms. These take care of compiling OpenBoard, including the translations (for OpenBoard and for Qt), stripping the debug symbols, creating the installers etc. +Minor modification to those scripts may be necessary depending on your configuration, to set the correct Qt path for example. + +Alternatively, you can easily build OpenBoard with qmake and make: + + qmake OpenBoard.pro -spec linux-g++-64 # replace linux-g++-64 by macx or win32 for other platforms + make + +Compilers used are gcc (Linux), clang (OS X) and MSVC 2010 (Windows). Make sure that your version of Qt matches this, as it is not possible e.g to build OpenBoard with clang if Qt was built with gcc. + +## Dependencies +The latest version (1.5) requires Qt 5.5. (While it has been shown to mostly work with Qt 5.2, we cannot guarantee compatibility with Qt versions other than 5.5.) + +### Qt 5.5 on Linux + +Due to a shared library conflict within Qt 5 in some distributions / some Qt versions (the Multimedia and Webkit modules were built against different versions of gstreamer by default), a specific installation of Qt5.5 may be needed for all of OpenBoard's features to work correctly. + +It can either be built from source, with the configure flag `-gstreamer 1.0` (see [here](http://doc.qt.io/qt-5/linux-building.html)), or installed from Stephan Binner's PPAs on Ubuntu. +In the latter case, simply add the repositories and install Qt 5.5.1 like so (example provided for Ubuntu 14.04, aka "Trusty"): + + sudo add-apt-repository ppa:beineri/opt-qt551-trusty + sudo apt-get update + sudo apt-get install qt-latest + +Some distributions, such as Ubuntu 16.04, provide Qt 5.5.1 packages that work perfectly with OpenBoard, so you can simply install Qt from the official repository. diff --git a/plugins/cffadaptor/UBCFFAdaptor.pro b/plugins/cffadaptor/UBCFFAdaptor.pro new file mode 100644 index 0000000..f8214d5 --- /dev/null +++ b/plugins/cffadaptor/UBCFFAdaptor.pro @@ -0,0 +1,69 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2012-02-14T13:30:14 +# +#------------------------------------------------- + +TARGET = CFF_Adaptor +TEMPLATE = lib + +win32: SUB_DIR = win32 +macx: SUB_DIR = macx +linux-g++: SUB_DIR = linux +linux-g++-32: SUB_DIR = linux +linux-g++-64: SUB_DIR = linux + +THIRD_PARTY_PATH = ../../../Sankore-ThirdParty +QUAZIP_DIR = "$$PWD/../../../Sankore-ThirdParty/quazip/quazip-0.3" + +BUILD_DIR = build/$$SUB_DIR +CONFIG(debug, debug|release):BUILD_DIR = $$BUILD_DIR/debug +CONFIG(release, debug|release) { + BUILD_DIR = $$BUILD_DIR/release + CONFIG += warn_off +} + +win32{ + CONFIG += dll +} + +OBJECTS_DIR = $$BUILD_DIR/objects +MOC_DIR = $$BUILD_DIR/moc +DESTDIR = $$BUILD_DIR/lib +RCC_DIR = $$BUILD_DIR/rcc +SANKORE_DIR = ../.. +win32:{ + QMAKE_POST_LINK += copy $$replace(DESTDIR,/,\\)\\CFF_Adaptor.dll" $$replace(SANKORE_DIR,/,\\)\\CFF_Adaptor.dll /y" +} +macx:{ + QMAKE_POST_LINK += bash postScript_mac.sh "$$DESTDIR" "$$SANKORE_DIR/$$BUILD_DIR/product/Open-Sankore.app/Contents/MacOS" +} + +LIBS += "-L$$THIRD_PARTY_PATH/quazip/lib/$$SUB_DIR" "-lquazip" + +QT += xml xmlpatterns core +QT += gui +QT += svg + + +DEFINES += UBCFFADAPTOR_LIBRARY +DEFINES += NO_THIRD_PARTY_WARNINGS + +INCLUDEPATH += src + +DEPENDPATH += $$THIRD_PARTY_PATH/quazip/ +INCLUDEPATH += $$THIRD_PARTY_PATH/quazip/ +include($$THIRD_PARTY_PATH/quazip/quazip.pri) + + +SOURCES += \ + src/UBCFFAdaptor.cpp + +HEADERS +=\ + $$PWD/../../src/globals/UBGlobals.h \ + src/UBCFFAdaptor.h \ + src/UBCFFAdaptor_global.h \ + src/UBCFFConstants.h + +RESOURCES += \ + resources/resources.qrc \ No newline at end of file diff --git a/plugins/cffadaptor/postScript_mac.sh b/plugins/cffadaptor/postScript_mac.sh new file mode 100644 index 0000000..dfe0fb6 --- /dev/null +++ b/plugins/cffadaptor/postScript_mac.sh @@ -0,0 +1,5 @@ +#!/bin/bash +SOURCE=$1 +DESTINATION=$2 +mkdir -p $DESTINATION +cp -R $SOURCE/ $DESTINATION \ No newline at end of file diff --git a/plugins/cffadaptor/resources/images/soundOn.svg b/plugins/cffadaptor/resources/images/soundOn.svg new file mode 100644 index 0000000..79d2770 --- /dev/null +++ b/plugins/cffadaptor/resources/images/soundOn.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/plugins/cffadaptor/resources/resources.qrc b/plugins/cffadaptor/resources/resources.qrc new file mode 100644 index 0000000..0a4ec47 --- /dev/null +++ b/plugins/cffadaptor/resources/resources.qrc @@ -0,0 +1,5 @@ + + + images/soundOn.svg + + diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp new file mode 100644 index 0000000..7b3b26c --- /dev/null +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -0,0 +1,2075 @@ +/* + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of Open-Sankoré. + * + * Open-Sankoré is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * Open-Sankoré 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Open-Sankoré. If not, see . + */ + + + +#include "UBCFFAdaptor.h" + +#include +#include +#include +#include +#include +#include + +#include "UBGlobals.h" +#include "UBCFFConstants.h" + +//THIRD_PARTY_WARNINGS_DISABLE +#ifdef Q_OS_OSX + #include + #include + #include +#else + #include "quazip.h" + #include "quazipfile.h" + #include "quazipfileinfo.h" +#endif +//THIRD_PARTY_WARNINGS_ENABLE + +UBCFFAdaptor::UBCFFAdaptor() +{} + +bool UBCFFAdaptor::convertUBZToIWB(const QString &from, const QString &to) +{ + qDebug() << "starting converion from" << from << "to" << to; + + QString source = QString(); + if (QFileInfo(from).isDir() && QFile::exists(from)) { + qDebug() << "File specified is dir, continuing convertion"; + source = from; + } else { + source = uncompressZip(from); + if (!source.isNull()) qDebug() << "File specified is zip file. Uncompressed to tmp dir, continuing convertion"; + } + if (source.isNull()) { + qDebug() << "File specified is not a dir or a zip file, stopping covretion"; + return false; + } + + QString tmpDestination = createNewTmpDir(); + if (tmpDestination.isNull()) { + qDebug() << "can't create temp destination folder. Stopping parsing..."; + return false; + } + + UBToCFFConverter tmpConvertrer(source, tmpDestination); + if (!tmpConvertrer) { + qDebug() << "The convertrer class is invalid, stopping conversion. Error message" << tmpConvertrer.lastErrStr(); + return false; + } + + bool bParceRes = tmpConvertrer.parse(); + + mConversionMessages << tmpConvertrer.getMessages(); + + if (!bParceRes) { + return false; + } + + if (!compressZip(tmpDestination, to)) + qDebug() << "error in compression"; + + //Cleanning tmp souces in filesystem + if (!QFileInfo(from).isDir()) + if (!freeDir(source)) + qDebug() << "can't delete tmp directory" << QDir(source).absolutePath() << "try to delete them manually"; + + if (!freeDir(tmpDestination)) + qDebug() << "can't delete tmp directory" << QDir(tmpDestination).absolutePath() << "try to delete them manually"; + + return true; +} + +QString UBCFFAdaptor::uncompressZip(const QString &zipFile) +{ + QuaZip zip(zipFile); + + if(!zip.open(QuaZip::mdUnzip)) { + qWarning() << "Import failed. Cause zip.open(): " << zip.getZipError(); + return QString(); + } + + zip.setFileNameCodec("UTF-8"); + QuaZipFileInfo info; + QuaZipFile file(&zip); + + //create unique cff document root fodler + QString documentRootFolder = createNewTmpDir(); + + if (documentRootFolder.isNull()) { + qDebug() << "can't create tmp directory for zip file" << zipFile; + return QString(); + } + + QDir rootDir(documentRootFolder); + QFile out; + char c; + bool allOk = true; + for(bool more = zip.goToFirstFile(); more; more=zip.goToNextFile()) { + if(!zip.getCurrentFileInfo(&info)) { + qWarning() << "Import failed. Cause: getCurrentFileInfo(): " << zip.getZipError(); + allOk = false; + break; + } + if(!file.open(QIODevice::ReadOnly)) { + allOk = false; + break; + } + if(file.getZipError()!= UNZ_OK) { + qWarning() << "Import failed. Cause: file.getFileName(): " << zip.getZipError(); + allOk = false; + break; + } + + QString newFileName = documentRootFolder + "/" + file.getActualFileName(); + + QFileInfo newFileInfo(newFileName); + rootDir.mkpath(newFileInfo.absolutePath()); + + out.setFileName(newFileName); + out.open(QIODevice::WriteOnly); + + while(file.getChar(&c)) + out.putChar(c); + + out.close(); + + if(file.getZipError()!=UNZ_OK) { + qWarning() << "Import failed. Cause: " << zip.getZipError(); + allOk = false; + break; + } + if(!file.atEnd()) { + qWarning() << "Import failed. Cause: read all but not EOF"; + allOk = false; + break; + } + file.close(); + + if(file.getZipError()!=UNZ_OK) { + qWarning() << "Import failed. Cause: file.close(): " << file.getZipError(); + allOk = false; + break; + } + } + + if (!allOk) { + out.close(); + file.close(); + zip.close(); + return QString(); + } + + if(zip.getZipError()!=UNZ_OK) { + qWarning() << "Import failed. Cause: zip.close(): " << zip.getZipError(); + return QString(); + } + + return documentRootFolder; +} + +bool UBCFFAdaptor::compressZip(const QString &source, const QString &destination) +{ + QDir toDir = QFileInfo(destination).dir(); + if (!toDir.exists()) + if (!QDir().mkpath(toDir.absolutePath())) { + qDebug() << "can't create destination folder to uncompress file"; + return false; + } + + QuaZip zip(destination); + zip.setFileNameCodec("UTF-8"); + if(!zip.open(QuaZip::mdCreate)) { + qDebug("Export failed. Cause: zip.open(): %d", zip.getZipError()); + return false; + } + + QuaZipFile outZip(&zip); + + QFileInfo sourceInfo(source); + if (sourceInfo.isDir()) { + if (!compressDir(QFileInfo(source).absoluteFilePath(), "", &outZip)) + return false; + } else if (sourceInfo.isFile()) { + if (!compressFile(QFileInfo(source).absoluteFilePath(), "", &outZip)) + return false; + } + + return true; +} + +bool UBCFFAdaptor::compressDir(const QString &dirName, const QString &parentDir, QuaZipFile *outZip) +{ + QFileInfoList dirFiles = QDir(dirName).entryInfoList(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); + QListIterator iter(dirFiles); + while (iter.hasNext()) { + QFileInfo curFile = iter.next(); + + if (curFile.isDir()) { + if (!compressDir(curFile.absoluteFilePath(), parentDir + curFile.fileName() + "/", outZip)) { + qDebug() << "error at compressing dir" << curFile.absoluteFilePath(); + return false; + } + } else if (curFile.isFile()) { + if (!compressFile(curFile.absoluteFilePath(), parentDir, outZip)) { + return false; + } + } + } + + return true; +} + +bool UBCFFAdaptor::compressFile(const QString &fileName, const QString &parentDir, QuaZipFile *outZip) +{ + QFile sourceFile(fileName); + + if(!sourceFile.open(QIODevice::ReadOnly)) { + qDebug() << "Compression of file" << sourceFile.fileName() << " failed. Cause: inFile.open(): " << sourceFile.errorString(); + return false; + } + + if(!outZip->open(QIODevice::WriteOnly, QuaZipNewInfo(parentDir + QFileInfo(fileName).fileName(), sourceFile.fileName()))) { + qDebug() << "Compression of file" << sourceFile.fileName() << " failed. Cause: outFile.open(): " << outZip->getZipError(); + sourceFile.close(); + return false; + } + + outZip->write(sourceFile.readAll()); + if(outZip->getZipError() != UNZ_OK) { + qDebug() << "Compression of file" << sourceFile.fileName() << " failed. Cause: outFile.write(): " << outZip->getZipError(); + + sourceFile.close(); + outZip->close(); + return false; + } + + if(outZip->getZipError() != UNZ_OK) + { + qWarning() << "Compression of file" << sourceFile.fileName() << " failed. Cause: outFile.close(): " << outZip->getZipError(); + + sourceFile.close(); + outZip->close(); + return false; + } + + outZip->close(); + sourceFile.close(); + + return true; +} + +QString UBCFFAdaptor::createNewTmpDir() +{ + int tmpNumber = 0; + QDir systemTmp = QDir::temp(); + + while (true) { + QString dirName = QString("CFF_adaptor_filedata_store%1.%2") + .arg(QDateTime::currentDateTime().toString("dd_MM_yyyy_HH-mm")) + .arg(tmpNumber++); + if (!systemTmp.exists(dirName)) { + if (systemTmp.mkdir(dirName)) { + QString result = systemTmp.absolutePath() + "/" + dirName; + tmpDirs.append(result); + return result; + } else { + qDebug() << "Can't create temporary dir maybe due to permissions"; + return QString(); + } + } else if (tmpNumber == 10) { + qWarning() << "Import failed. Failed to create temporary file "; + return QString(); + } + tmpNumber++; + } + + return QString(); +} +bool UBCFFAdaptor::deleteDir(const QString& pDirPath) const +{ + if (pDirPath == "" || pDirPath == "." || pDirPath == "..") + return false; + + QDir dir(pDirPath); + + if (dir.exists()) + { + foreach(QFileInfo dirContent, dir.entryInfoList(QDir::Files | QDir::Dirs + | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System, QDir::Name)) + { + if (dirContent.isDir()) + { + deleteDir(dirContent.absoluteFilePath()); + } + else + { + if (!dirContent.dir().remove(dirContent.fileName())) + { + return false; + } + } + } + } + + return dir.rmdir(pDirPath); +} + +QList UBCFFAdaptor::getConversionMessages() +{ + return mConversionMessages; +} + +bool UBCFFAdaptor::freeDir(const QString &dir) +{ + bool result = true; + if (!deleteDir(dir)) + result = false; + + tmpDirs.removeAll(QDir(dir).absolutePath()); + + return result; +} +void UBCFFAdaptor::freeTmpDirs() +{ + foreach (QString dir, tmpDirs) + freeDir(dir); +} + +UBCFFAdaptor::~UBCFFAdaptor() +{ + freeTmpDirs(); +} + +UBCFFAdaptor::UBToCFFConverter::UBToCFFConverter(const QString &source, const QString &destination) +{ + sourcePath = source; + destinationPath = destination; + + errorStr = noErrorMsg; + mDataModel = new QDomDocument; + mDocumentToWrite = new QDomDocument; + mDocumentToWrite->setContent(QString("")); + + mIWBContentWriter = new QXmlStreamWriter; + mIWBContentWriter->setAutoFormatting(true); + + iwbSVGItemsAttributes.insert(tIWBImage, iwbSVGImageAttributes); + iwbSVGItemsAttributes.insert(tIWBVideo, iwbSVGVideoAttributes); + iwbSVGItemsAttributes.insert(tIWBText, iwbSVGTextAttributes); + iwbSVGItemsAttributes.insert(tIWBTextArea, iwbSVGTextAreaAttributes); + iwbSVGItemsAttributes.insert(tIWBPolyLine, iwbSVGPolyLineAttributes); + iwbSVGItemsAttributes.insert(tIWBPolygon, iwbSVGPolygonAttributes); + iwbSVGItemsAttributes.insert(tIWBRect, iwbSVGRectAttributes); + iwbSVGItemsAttributes.insert(tIWBLine, iwbSVGLineAttributes); + iwbSVGItemsAttributes.insert(tIWBTspan, iwbSVGTspanAttributes); +} + +bool UBCFFAdaptor::UBToCFFConverter::parse() +{ + if(!isValid()) { + qDebug() << "document metadata is not valid. Can't parse"; + return false; + } + + qDebug() << "begin parsing ubz"; + + QFile outFile(contentIWBFileName()); + if (!outFile.open(QIODevice::WriteOnly| QIODevice::Text)) { + qDebug() << "can't open output file for writing"; + errorStr = "createXMLOutputPatternError"; + return false; + } + + mIWBContentWriter->setDevice(&outFile); + + mIWBContentWriter->writeStartDocument(); + mIWBContentWriter->writeStartElement(tIWBRoot); + + fillNamespaces(); + + mIWBContentWriter->writeAttribute(aIWBVersion, avIWBVersionNo); + + if (!parseMetadata()) { + if (errorStr == noErrorMsg) + errorStr = "MetadataParsingError"; + + outFile.close(); + return false; + } + + if (!parseContent()) { + if (errorStr == noErrorMsg) + errorStr = "ContentParsingError"; + outFile.close(); + return false; + } + + mIWBContentWriter->writeEndElement(); + mIWBContentWriter->writeEndDocument(); + + outFile.close(); + + qDebug() << "finished with success"; + + return true; +} +bool UBCFFAdaptor::UBToCFFConverter::parseMetadata() +{ + int errorLine, errorColumn; + QFile metaDataFile(sourcePath + "/" + fMetadata); + + if (!metaDataFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + errorStr = "can't open" + QFileInfo(sourcePath + "/" + fMetadata).absoluteFilePath(); + qDebug() << errorStr; + return false; + + } else if (!mDataModel->setContent(metaDataFile.readAll(), true, &errorStr, &errorLine, &errorColumn)) { + qWarning() << "Error:Parseerroratline" << errorLine << "," + << "column" << errorColumn << ":" << errorStr; + return false; + } + + QDomElement nextInElement = mDataModel->documentElement(); + + nextInElement = nextInElement.firstChildElement(tDescription); + if (!nextInElement.isNull()) { + + mIWBContentWriter->writeStartElement(iwbNS, tIWBMeta); + mIWBContentWriter->writeAttribute(aIWBName, aCreator); + mIWBContentWriter->writeAttribute(aIWBContent, avCreator); + mIWBContentWriter->writeEndElement(); + + mIWBContentWriter->writeStartElement(iwbNS, tIWBMeta); + mIWBContentWriter->writeAttribute(aIWBName, aOwner); + mIWBContentWriter->writeAttribute(aIWBContent, avOwner); + mIWBContentWriter->writeEndElement(); + + mIWBContentWriter->writeStartElement(iwbNS, tIWBMeta); + mIWBContentWriter->writeAttribute(aIWBName, aDescription); + mIWBContentWriter->writeAttribute(aIWBContent, avDescription); + mIWBContentWriter->writeEndElement(); + + mIWBContentWriter->writeStartElement(iwbNS, tIWBMeta); + mIWBContentWriter->writeAttribute(aIWBName, aAbout); + mIWBContentWriter->writeAttribute(aIWBContent, nextInElement.attribute(aAbout)); + mIWBContentWriter->writeEndElement(); + + nextInElement = nextInElement.firstChildElement(); + while (!nextInElement.isNull()) { + + QString textContent = nextInElement.text(); + if (!textContent.trimmed().isEmpty()) { + if (nextInElement.tagName() == tUBZSize) { //taking main viewbox rect since for CFF specificaton we have static viewbox + QSize tmpSize = getSVGDimentions(nextInElement.text()); + if (!tmpSize.isNull()) { + mSVGSize = tmpSize; + } else { + qDebug() << "can't interpret svg section size"; + errorStr = "InterpretSvgSizeError"; + return false; + } + } else { + mIWBContentWriter->writeStartElement(iwbNS, tIWBMeta); + mIWBContentWriter->writeAttribute(aIWBName, nextInElement.tagName()); + mIWBContentWriter->writeAttribute(aIWBContent, textContent); + mIWBContentWriter->writeEndElement(); + } + + } + nextInElement = nextInElement.nextSiblingElement(); + } + } + + metaDataFile.close(); + return true; +} +bool UBCFFAdaptor::UBToCFFConverter::parseContent() { + + QDir sourceDir(sourcePath); + QStringList fileFilters; + fileFilters << QString(pageAlias + "???." + pageFileExtentionUBZ); + QStringList pageList = sourceDir.entryList(fileFilters, QDir::Files, QDir::Name | QDir::IgnoreCase); + + QDomElement svgDocumentSection = mDataModel->createElementNS(svgIWBNS, ":"+tSvg); + + if (!pageList.count()) { + qDebug() << "can't find any content file"; + errorStr = "ErrorContentFile"; + return false; + } else + { + QDomElement pageset = parsePageset(pageList); + if (pageset.isNull()) + return false; + else + svgDocumentSection.appendChild(pageset); + } + + + if (QRect() == mViewbox) + { + mViewbox.setRect(0,0, mSVGSize.width(), mSVGSize.height()); + } + + svgDocumentSection.setAttribute(aIWBViewBox, rectToIWBAttr(mViewbox)); + svgDocumentSection.setAttribute(aWidth, QString("%1").arg(mViewbox.width())); + svgDocumentSection.setAttribute(aHeight, QString("%1").arg(mViewbox.height())); + + + writeQDomElementToXML(svgDocumentSection); + + + if (!writeExtendedIwbSection()) { + if (errorStr == noErrorMsg) + errorStr = "writeExtendedIwbSectionError"; + return false; + } + + return true; +} + +QDomElement UBCFFAdaptor::UBToCFFConverter::parsePage(const QString &pageFileName) +{ + qDebug() << "begin parsing page" + pageFileName; + mSvgElements.clear(); //clean Svg elements map before parsing new page + + int errorLine, errorColumn; + + QFile pageFile(sourcePath + "/" + pageFileName); + if (!pageFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + qDebug() << "can't open file" << pageFileName << "for reading"; + return QDomElement(); + } else if (!mDataModel->setContent(pageFile.readAll(), true, &errorStr, &errorLine, &errorColumn)) { + qWarning() << "Error:Parseerroratline" << errorLine << "," + << "column" << errorColumn << ":" << errorStr; + pageFile.close(); + return QDomElement(); + } + + QDomElement page; + QDomElement group; + + QDomElement nextTopElement = mDataModel->firstChildElement(); + while (!nextTopElement.isNull()) { + QString tagname = nextTopElement.tagName(); + if (tagname == tSvg) { + page = parseSvgPageSection(nextTopElement); + if (page.isNull()) { + qDebug() << "The page is empty."; + pageFile.close(); + return QDomElement(); + } + } else if (tagname == tUBZGroups) { + group = parseGroupsPageSection(nextTopElement); + if (group.isNull()) { + qDebug() << "Page doesn't contains any groups."; + pageFile.close(); + return QDomElement(); + } + } + + nextTopElement = nextTopElement.nextSiblingElement(); + } + + pageFile.close(); + + return page.hasChildNodes() ? page : QDomElement(); +} + +QDomElement UBCFFAdaptor::UBToCFFConverter::parsePageset(const QStringList &pageFileNames) +{ + QMultiMap pageList; + int iPageNo = 1; + + QStringListIterator curPage(pageFileNames); + + while (curPage.hasNext()) { + + QString curPageFile = curPage.next(); + QDomElement iterElement = parsePage(curPageFile); + if (!iterElement.isNull()) + { + iterElement.setAttribute(tId, iPageNo); + addSVGElementToResultModel(iterElement, pageList, iPageNo); + iPageNo++; + } + else + return QDomElement(); + } + + + if (!pageList.count()) + return QDomElement(); + + + QDomElement svgPagesetElement = mDocumentToWrite->createElementNS(svgIWBNS,":"+ tIWBPageSet); + + QMapIterator nextSVGElement(pageList); + nextSVGElement.toFront(); + while (nextSVGElement.hasNext()) + svgPagesetElement.appendChild(nextSVGElement.next().value()); + + return svgPagesetElement.hasChildNodes() ? svgPagesetElement : QDomElement(); +} +QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElement &element) +{ + //we don't know about page number, so return QDomElement. + + //Parsing top level tag attributes + + //getting current page viewbox to be able to convert coordinates to global viewbox parameter + if (element.hasAttribute(aUBZViewBox)) { + setViewBox(getViewboxRect(element.attribute(aUBZViewBox))); + } + + QMultiMap svgElements; + + QDomElement svgElementPart = mDocumentToWrite->createElementNS(svgIWBNS,":"+ tIWBPage); + + if (element.hasAttribute(aDarkBackground)) { + createBackground(element, svgElements); + } + + //Parsing svg children attributes + // Elements can know about its layer, so it must add result QDomElements to ordrered list. + QDomElement nextElement = element.firstChildElement(); + while (!nextElement.isNull()) { + QString tagName = nextElement.tagName(); + if (tagName == tUBZG) parseSVGGGroup(nextElement, svgElements); + else if (tagName == tUBZImage) parseUBZImage(nextElement, svgElements); + else if (tagName == tUBZVideo) parseUBZVideo(nextElement, svgElements); + else if (tagName == tUBZAudio) parseUBZAudio(nextElement, svgElements); + else if (tagName == tUBZForeignObject) parseForeignObject(nextElement, svgElements); + else if (tagName == tUBZLine) parseUBZLine(nextElement, svgElements); + else if (tagName == tUBZPolygon) parseUBZPolygon(nextElement, svgElements); + else if (tagName == tUBZPolyline) parseUBZPolyline(nextElement, svgElements); + else if (tagName == tUBZGroups) parseGroupsPageSection(nextElement); + + nextElement = nextElement.nextSiblingElement(); + } + + if (0 == svgElements.count()) + return QDomElement(); + + // to do: + // there we must to sort elements (take elements from list and assign parent ordered like in parseSVGGGroup) + // we returns just element because we don't care about layer. + QMapIterator nextSVGElement(svgElements); + nextSVGElement.toFront(); + while (nextSVGElement.hasNext()) + svgElementPart.appendChild(nextSVGElement.next().value()); + + return svgElementPart.hasChildNodes() ? svgElementPart : QDomElement(); +} + +void UBCFFAdaptor::UBToCFFConverter::writeQDomElementToXML(const QDomNode &node) +{ + if (!node.isNull()) { + if (node.isText()) + mIWBContentWriter->writeCharacters(node.nodeValue()); + else { + mIWBContentWriter->writeStartElement(node.namespaceURI(), node.toElement().tagName()); + + for (int i = 0; i < node.toElement().attributes().count(); i++) { + QDomAttr attr = node.toElement().attributes().item(i).toAttr(); + mIWBContentWriter->writeAttribute(attr.name(), attr.value()); + } + QDomNode child = node.firstChild(); + while(!child.isNull()) { + writeQDomElementToXML(child); + child = child.nextSibling(); + } + + mIWBContentWriter->writeEndElement(); + } + } +} + +bool UBCFFAdaptor::UBToCFFConverter::writeExtendedIwbSection() +{ + if (!mExtendedElements.count()) { + qDebug() << "extended iwb content list is empty"; + errorStr = "EmptyExtendedIwbSectionContentError"; + return false; + } + QListIterator nextExtendedIwbElement(mExtendedElements); + while (nextExtendedIwbElement.hasNext()) { + writeQDomElementToXML(nextExtendedIwbElement.next()); + //TODO write iwb extended element to mIWBContentWriter + } + + return true; +} + +// extended element options +// editable, background, locked are supported for now + +QDomElement UBCFFAdaptor::UBToCFFConverter::parseGroupsPageSection(const QDomElement &groupRoot) +{ +// First sankore side implementation needed. TODO in Sankore 1.5 + if (!groupRoot.hasChildNodes()) { + qDebug() << "Group root is empty"; + return QDomElement(); + } + + QDomElement groupElement = groupRoot.firstChildElement(); + + while (!groupElement.isNull()) { + QDomElement extendedElement = mDataModel->createElementNS(iwbNS, groupElement.tagName()); + QDomElement groupChildElement = groupElement.firstChildElement(); + while (!groupChildElement.isNull()) { + QDomElement extSubElement = mDataModel->createElementNS(iwbNS, groupChildElement.tagName()); + extSubElement.setAttribute(aRef, groupChildElement.attribute(aID, QUuid().toString())); + extendedElement.appendChild(extSubElement); + + groupChildElement = groupChildElement.nextSiblingElement(); + } + + mExtendedElements.append(extendedElement); + + groupElement = groupElement.nextSiblingElement(); + } + + qDebug() << "parsing ubz group section"; + return groupRoot; +} + +QString UBCFFAdaptor::UBToCFFConverter::getDstContentFolderName(const QString &elementType) +{ + QString sRet; + QString sDstContentFolderName; + + // widgets must be saved as .png images. + if ((tIWBImage == elementType) || (tUBZForeignObject == elementType)) + sDstContentFolderName = cfImages; + else + if (tIWBVideo == elementType) + sDstContentFolderName = cfVideos; + else + if (tIWBAudio == elementType) + sDstContentFolderName = cfAudios; + + sRet = sDstContentFolderName; + + return sRet; +} + +QString UBCFFAdaptor::UBToCFFConverter::getSrcContentFolderName(QString href) +{ + QString sRet; + + QStringList ls = href.split("/"); + for (int i = 0; i < ls.count()-1; i++) + { + QString sPart = ls.at(i); + if (ubzContentFolders.contains(sPart)) + { + sRet = sPart; + } + } + +// if (0 < ls.count()) +// sRet = ls.at(ls.count()-1); +// +// sRet = href.remove(sRet); +// +// if (sRet.endsWith("/")) +// sRet.remove("/"); + + return sRet; +} + +QString UBCFFAdaptor::UBToCFFConverter::getFileNameFromPath(const QString sPath) +{ + QString sRet; + QStringList sl = sPath.split("/",QString::SkipEmptyParts); + + if (0 < sl.count()) + { + QString name = sl.at(sl.count()-1); + QString extention = getExtentionFromFileName(name); + + if (feWgt == extention) + { + name.remove("{"); + name.remove("}"); + } + + name.remove(name.length()-extention.length(), extention.length()); + name += convertExtention(extention); + + sRet = name; + } + return sRet; +} + +QString UBCFFAdaptor::UBToCFFConverter::getExtentionFromFileName(const QString &filename) +{ + QStringList sl = filename.split("/",QString::SkipEmptyParts); + + if (0 < sl.count()) + { + QString name = sl.at(sl.count()-1); + QStringList tl = name.split("."); + return tl.at(tl.count()-1); + } + return QString(); +} + +QString UBCFFAdaptor::UBToCFFConverter::convertExtention(const QString &ext) +{ + QString sRet; + + if (feSvg == ext) + sRet = fePng; + else + if (feWgt == ext) + sRet = fePng; + else + sRet = ext; + + return sRet; +} + +QString UBCFFAdaptor::UBToCFFConverter::getElementTypeFromUBZ(const QDomElement &element) +{ + QString sRet; + if (tUBZForeignObject == element.tagName()) + { + QString sPath; + if (element.hasAttribute(aUBZType)) + { + if (avUBZText == element.attribute(aUBZType)) + sRet = tIWBTextArea; + else + sRet = element.attribute(aUBZType); + } + else + { + if (element.hasAttribute(aSrc)) + sPath = element.attribute(aSrc); + else + if (element.hasAttribute(aUBZHref)) + sPath = element.attribute(aUBZHref); + + QStringList tsl = sPath.split(".", QString::SkipEmptyParts); + if (0 < tsl.count()) + { + QString elementType = tsl.at(tsl.count()-1); + if (iwbElementImage.contains(elementType)) + sRet = tIWBImage; + else + if (iwbElementAudio.contains(elementType)) + sRet = tIWBAudio; + else + if (iwbElementVideo.contains(elementType)) + sRet = tIWBVideo; + } + } + } + else + sRet = element.tagName(); + + return sRet; +} + +int UBCFFAdaptor::UBToCFFConverter::getElementLayer(const QDomElement &element) +{ + int iRetLayer = 0; + if (element.hasAttribute(aZLayer)) + iRetLayer = (int)element.attribute(aZLayer).toDouble(); + else + iRetLayer = DEFAULT_LAYER; + + return iRetLayer; +} + +bool UBCFFAdaptor::UBToCFFConverter::itIsSupportedFormat(const QString &format) const +{ + bool bRet; + + QStringList tsl = format.split(".", QString::SkipEmptyParts); + if (0 < tsl.count()) + bRet = cffSupportedFileFormats.contains(tsl.at(tsl.count()-1).toLower()); + else + bRet = false; + + return bRet; +} + +bool UBCFFAdaptor::UBToCFFConverter::itIsFormatToConvert(const QString &format) const +{ + foreach (QString f, ubzFormatsToConvert.split(",")) + { + if (format == f) + return true; + } + return false; +} + +bool UBCFFAdaptor::UBToCFFConverter::itIsSVGElementAttribute(const QString ItemType, const QString &AttrName) +{ + QString allowedElementAttributes = iwbSVGItemsAttributes[ItemType]; + + allowedElementAttributes.remove("/t"); + allowedElementAttributes.remove(" "); + foreach(QString attr, allowedElementAttributes.split(",")) + { + if (AttrName == attr.trimmed()) + return true; + } + return false; +} + + +bool UBCFFAdaptor::UBToCFFConverter::itIsIWBAttribute(const QString &attribute) const +{ + foreach (QString attr, iwbElementAttributes.split(",")) + { + if (attribute == attr.trimmed()) + return true; + } + return false; +} + +bool UBCFFAdaptor::UBToCFFConverter::itIsUBZAttributeToConvert(const QString &attribute) const +{ + foreach (QString attr, ubzElementAttributesToConvert.split(",")) + { + if (attribute == attr.trimmed()) + return true; + } + return false; +} + +bool UBCFFAdaptor::UBToCFFConverter::ibwAddLine(int x1, int y1, int x2, int y2, QString color, int width, bool isBackground) +{ + bool bRet = true; + + QDomDocument doc; + + QDomElement svgBackgroundCrossPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":line"); + QDomElement iwbBackgroundCrossPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + QString sUUID = QUuid::createUuid().toString(); + + svgBackgroundCrossPart.setTagName(tIWBLine); + + svgBackgroundCrossPart.setAttribute(aX+"1", x1); + svgBackgroundCrossPart.setAttribute(aY+"1", y1); + svgBackgroundCrossPart.setAttribute(aX+"2", x2); + svgBackgroundCrossPart.setAttribute(aY+"2", y2); + + svgBackgroundCrossPart.setAttribute(aStroke, color); + svgBackgroundCrossPart.setAttribute(aStrokeWidth, width); + + svgBackgroundCrossPart.setAttribute(aID, sUUID); + + if (isBackground) + { + iwbBackgroundCrossPart.setAttribute(aRef, sUUID); + iwbBackgroundCrossPart.setAttribute(aLocked, avTrue); + + addIWBElementToResultModel(iwbBackgroundCrossPart); + } + + addSVGElementToResultModel(svgBackgroundCrossPart, mSvgElements, DEFAULT_BACKGROUND_CROSS_LAYER); + + if (!bRet) + { + qDebug() << "|error at creating crosses on background"; + errorStr = "CreatingCrossedBackgroundParsingError."; + } + + return bRet; +} + +QTransform UBCFFAdaptor::UBToCFFConverter::getTransformFromUBZ(const QDomElement &ubzElement) +{ + QTransform trRet; + + QStringList transformParameters; + + QString ubzTransform = ubzElement.attribute(aTransform); + ubzTransform.remove("matrix"); + ubzTransform.remove("("); + ubzTransform.remove(")"); + + transformParameters = ubzTransform.split(",", QString::SkipEmptyParts); + + if (6 <= transformParameters.count()) + { + QTransform *tr = NULL; + tr = new QTransform(transformParameters.at(0).toDouble(), + transformParameters.at(1).toDouble(), + transformParameters.at(2).toDouble(), + transformParameters.at(3).toDouble(), + transformParameters.at(4).toDouble(), + transformParameters.at(5).toDouble()); + + trRet = *tr; + + delete tr; + } + + if (6 <= transformParameters.count()) + { + QTransform *tr = NULL; + tr = new QTransform(transformParameters.at(0).toDouble(), + transformParameters.at(1).toDouble(), + transformParameters.at(2).toDouble(), + transformParameters.at(3).toDouble(), + transformParameters.at(4).toDouble(), + transformParameters.at(5).toDouble()); + + trRet = *tr; + + delete tr; + } + return trRet; +} + +qreal UBCFFAdaptor::UBToCFFConverter::getAngleFromTransform(const QTransform &tr) +{ + qreal angle = -(atan(tr.m21()/tr.m11())*180/PI); + if (tr.m21() > 0 && tr.m11() < 0) + angle += 180; + else + if (tr.m21() < 0 && tr.m11() < 0) + angle += 180; + return angle; +} + +void UBCFFAdaptor::UBToCFFConverter::setGeometryFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement) +{ + setCoordinatesFromUBZ(ubzElement,iwbElement); + + + +} + +void UBCFFAdaptor::UBToCFFConverter::setCoordinatesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement) +{ + QTransform tr; + + if (QString() != ubzElement.attribute(aTransform)) + tr = getTransformFromUBZ(ubzElement); + + qreal x = ubzElement.attribute(aX).toDouble(); + qreal y = ubzElement.attribute(aY).toDouble(); + qreal height = ubzElement.attribute(aHeight).toDouble(); + qreal width = ubzElement.attribute(aWidth).toDouble(); + + qreal alpha = getAngleFromTransform(tr); + + QRectF itemRect; + QGraphicsRectItem item; + + item.setRect(0,0, width, height); + item.setTransform(tr); + item.setRotation(-alpha); + QMatrix sceneMatrix = item.sceneMatrix(); + + iwbElement.setAttribute(aX, x); + iwbElement.setAttribute(aY, y); + iwbElement.setAttribute(aHeight, height*sceneMatrix.m22()); + iwbElement.setAttribute(aWidth, width*sceneMatrix.m11()); + iwbElement.setAttribute(aTransform, QString("rotate(%1) translate(%2,%3)").arg(alpha) + .arg(sceneMatrix.dx()) + .arg(sceneMatrix.dy())); +} + +bool UBCFFAdaptor::UBToCFFConverter::setContentFromUBZ(const QDomElement &ubzElement, QDomElement &svgElement) +{ + bool bRet = true; + + QString srcPath; + if (tUBZForeignObject != ubzElement.tagName()) + srcPath = ubzElement.attribute(aUBZHref); + else + srcPath = ubzElement.attribute(aSrc); + + QString sSrcContentFolder = getSrcContentFolderName(srcPath); + QString sSrcFileName = sourcePath + "/" + srcPath ; + QString fileExtention = getExtentionFromFileName(sSrcFileName); + QString sDstContentFolder = getDstContentFolderName(ubzElement.tagName()); + QString sDstFileName(QString(QUuid::createUuid().toString()+"."+convertExtention(fileExtention))); + + + if (itIsSupportedFormat(fileExtention)) // format is supported and we can copy src. files without changing. + { + sSrcFileName = sourcePath + "/" + sSrcContentFolder + "/" + getFileNameFromPath(srcPath); // some elements must be exported as images, so we take hes existing thumbnails. + + QFile srcFile; + srcFile.setFileName(sSrcFileName); + + QDir dstDocFolder(destinationPath); + + if (!dstDocFolder.exists(sDstContentFolder)) + bRet &= dstDocFolder.mkdir(sDstContentFolder); + + if (bRet) + { + QString dstFilePath = destinationPath+"/"+sDstContentFolder+"/"+sDstFileName; + bRet &= srcFile.copy(dstFilePath); + } + + if (bRet) + { + svgElement.setAttribute(aSVGHref, sDstContentFolder+"/"+sDstFileName); + // NOT by standard! Enable it later! + // validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + //svgElement.setAttribute(aSVGRequiredExtension, svgRequiredExtensionPrefix+convertExtention(fileExtention)); + } + } + else + if (itIsFormatToConvert(fileExtention)) // we cannot copy that source files. We need to create dst. file from src. file without copy. + { + if (feSvg == fileExtention) + { + QDir dstDocFolder(destinationPath); + + if (!dstDocFolder.exists(sDstContentFolder)) + bRet &= dstDocFolder.mkdir(sDstContentFolder); + + if (bRet) + { + if (feSvg == fileExtention) // svg images must be converted to PNG. + { + QString dstFilePath = destinationPath+"/"+sDstContentFolder+"/"+sDstFileName; + bRet &= createPngFromSvg(sSrcFileName, dstFilePath, getTransformFromUBZ(ubzElement)); + } + else + bRet = false; + } + + if (bRet) + { + svgElement.setAttribute(aSVGHref, sDstContentFolder+"/"+sDstFileName); + // NOT by standard! Enable it later! + // validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + //svgElement.setAttribute(aSVGRequiredExtension, svgRequiredExtensionPrefix+fePng); + } + } + }else + { + addLastExportError(QObject::tr("Element ID = ") + QString("%1 \r\n").arg(ubzElement.attribute(aUBZUuid)) + + QString("Source file = ") + QString("%1 \r\n").arg(ubzElement.attribute(aUBZSource)) + + QObject::tr("Content is not supported in destination format.")); + bRet = false; + } + + if (!bRet) + { + qDebug() << "format is not supported by CFF"; + } + + return bRet; +} + +void UBCFFAdaptor::UBToCFFConverter::setCFFTextFromHTMLTextNode(const QDomElement htmlTextNode, QDomElement &iwbElement) +{ + + QDomDocument textDoc; + + QDomElement textParentElement = iwbElement; + + QString textString; + QDomNode htmlPNode = htmlTextNode.firstChild(); + bool bTbreak = false; + + // reads HTML text strings - each string placed in separate

section + while(!htmlPNode.isNull()) + { + // add for split strings + if (bTbreak) + { + bTbreak = false; + + QDomElement tbreakNode = textDoc.createElementNS(svgIWBNS, svgIWBNSPrefix+":"+tIWBTbreak); + textParentElement.appendChild(tbreakNode.cloneNode(true)); + } + + QDomNode spanNode = htmlPNode.firstChild(); + + while (!spanNode.isNull()) + { + if (spanNode.isText()) + { + QDomText nodeText = textDoc.createTextNode(spanNode.nodeValue()); + textParentElement.appendChild(nodeText.cloneNode(true)); + } + else + if (spanNode.isElement()) + { + QDomElement pElementIwb; + QDomElement spanElement = textDoc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBTspan); + setCommonAttributesFromUBZ(htmlPNode.toElement(), pElementIwb, spanElement); + + if (spanNode.hasAttributes()) + { + int attrCount = spanNode.attributes().count(); + if (0 < attrCount) + { + for (int i = 0; i < attrCount; i++) + { + // html attributes like: style="font-size:40pt; color:"red";". + QStringList cffAttributes = spanNode.attributes().item(i).nodeValue().split(";", QString::SkipEmptyParts); + { + for (int i = 0; i < cffAttributes.count(); i++) + { + QString attr = cffAttributes.at(i).trimmed(); + QStringList AttrVal = attr.split(":", QString::SkipEmptyParts); + if(1 < AttrVal.count()) + { + QString sAttr = ubzAttrNameToCFFAttrName(AttrVal.at(0)); + if (itIsSVGElementAttribute(spanElement.tagName(), sAttr)) + spanElement.setAttribute(sAttr, ubzAttrValueToCFFAttrName(AttrVal.at(1))); + } + } + } + } + } + } + QDomText nodeText = textDoc.createTextNode(spanNode.firstChild().nodeValue()); + spanElement.appendChild(nodeText); + textParentElement.appendChild(spanElement.cloneNode(true)); + } + spanNode = spanNode.nextSibling(); + } + + bTbreak = true; + htmlPNode = htmlPNode.nextSibling(); + } +} + +QString UBCFFAdaptor::UBToCFFConverter::ubzAttrNameToCFFAttrName(QString cffAttrName) +{ + QString sRet = cffAttrName; + if (QString("color") == cffAttrName) + sRet = QString("fill"); + if (QString("align") == cffAttrName) + sRet = QString("text-align"); + + return sRet; +} +QString UBCFFAdaptor::UBToCFFConverter::ubzAttrValueToCFFAttrName(QString cffValue) +{ + QString sRet = cffValue; + if (QString("text") == cffValue) + sRet = QString("normal"); + + return sRet; +} + +bool UBCFFAdaptor::UBToCFFConverter::setCFFAttribute(const QString &attributeName, const QString &attributeValue, const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement) +{ + bool bRet = true; + bool bNeedsIWBSection = false; + + if (itIsIWBAttribute(attributeName)) + { + if (!((aBackground == attributeName) && (avFalse == attributeValue))) + { + iwbElement.setAttribute(attributeName, attributeValue); + bNeedsIWBSection = true; + } + } + else + if (itIsUBZAttributeToConvert(attributeName)) + { + if (aTransform == attributeName) + { + setGeometryFromUBZ(ubzElement, svgElement); + } + else + if (attributeName.contains(aUBZUuid)) + { + + QString parentId = ubzElement.attribute(aUBZParent); + QString id; + if (!parentId.isEmpty()) + id = "{" + parentId + "}" + "{" + ubzElement.attribute(aUBZUuid)+"}"; + else + id = "{" + ubzElement.attribute(aUBZUuid)+"}"; + + svgElement.setAttribute(aID, id); + } + else + if (attributeName.contains(aUBZHref)||attributeName.contains(aSrc)) + { + bRet &= setContentFromUBZ(ubzElement, svgElement); + bNeedsIWBSection = bRet||bNeedsIWBSection; + } + } + else + if (itIsSVGElementAttribute(svgElement.tagName(),attributeName)) + { + svgElement.setAttribute(attributeName, attributeValue); + } + + if (bNeedsIWBSection) + { + if (0 < iwbElement.attributes().count()) + { + + QStringList tl = ubzElement.attribute(aSVGHref).split("/"); + QString id = tl.at(tl.count()-1); + // if element already have an ID, we use it. Else we create new id for element. + if (QString() == id) + id = QUuid::createUuid().toString(); + + svgElement.setAttribute(aID, id); + iwbElement.setAttribute(aRef, id); + } + } + + return bRet; +} + +bool UBCFFAdaptor::UBToCFFConverter::setCommonAttributesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement) +{ + bool bRet = true; + + for (int i = 0; i < ubzElement.attributes().count(); i++) + { + QDomNode attribute = ubzElement.attributes().item(i); + QString attributeName = ubzAttrNameToCFFAttrName(attribute.nodeName().remove("ub:")); + + bRet &= setCFFAttribute(attributeName, ubzAttrValueToCFFAttrName(attribute.nodeValue()), ubzElement, iwbElement, svgElement); + if (!bRet) break; + } + return bRet; +} + +void UBCFFAdaptor::UBToCFFConverter::setViewBox(QRect viewbox) +{ + mViewbox |= viewbox; +} + +QDomNode UBCFFAdaptor::UBToCFFConverter::findTextNode(const QDomNode &node) +{ + QDomNode iterNode = node; + + while (!iterNode.isNull()) + { + if (iterNode.isText()) + { + if (!iterNode.isNull()) + return iterNode; + } + else + { + if (!iterNode.firstChild().isNull()) + { + QDomNode foundNode = findTextNode(iterNode.firstChild()); + if (!foundNode.isNull()) + if (foundNode.isText()) + return foundNode; + } + } + if (!iterNode.nextSibling().isNull()) + iterNode = iterNode.nextSibling(); + else + break; + } + return iterNode; +} + +QDomNode UBCFFAdaptor::UBToCFFConverter::findNodeByTagName(const QDomNode &node, QString tagName) +{ + QDomNode iterNode = node; + + while (!iterNode.isNull()) + { + QString t = iterNode.toElement().tagName(); + if (tagName == t) + return iterNode; + else + { + if (!iterNode.firstChildElement().isNull()) + { + QDomNode foundNode = findNodeByTagName(iterNode.firstChildElement(), tagName); + if (!foundNode.isNull()){ + if (foundNode.isElement()) + { + if (tagName == foundNode.toElement().tagName()) + return foundNode; + } + else + break; + } + } + } + + if (!iterNode.nextSibling().isNull()) + iterNode = iterNode.nextSibling(); + else + break; + } + return QDomNode(); + +} + +bool UBCFFAdaptor::UBToCFFConverter::createBackground(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|creating element background"; + + + QDomDocument doc; + + //QDomElement svgBackgroundElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tUBZImage); + QDomElement svgBackgroundElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBRect); + QDomElement iwbBackgroundElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + + QRect bckRect(mViewbox); + + if (0 <= mViewbox.topLeft().x()) + bckRect.topLeft().setX(0); + + if (0 <= mViewbox.topLeft().y()) + bckRect.topLeft().setY(0); + + if (QRect() != bckRect) + { + QString sElementID = QUuid::createUuid().toString(); + + bool darkBackground = (avTrue == element.attribute(aDarkBackground)); + svgBackgroundElementPart.setAttribute(aFill, darkBackground ? "black" : "white"); + svgBackgroundElementPart.setAttribute(aID, sElementID); + svgBackgroundElementPart.setAttribute(aX, bckRect.x()); + svgBackgroundElementPart.setAttribute(aY, bckRect.y()); + svgBackgroundElementPart.setAttribute(aHeight, bckRect.height()); + svgBackgroundElementPart.setAttribute(aWidth, bckRect.width()); + + //svgBackgroundElementPart.setAttribute(aSVGHref, backgroundImagePath); + + iwbBackgroundElementPart.setAttribute(aRef, sElementID); + iwbBackgroundElementPart.setAttribute(aBackground, avTrue); + //iwbBackgroundElementPart.setAttribute(aLocked, avTrue); + + addSVGElementToResultModel(svgBackgroundElementPart, dstSvgList, DEFAULT_BACKGROUND_LAYER); + addIWBElementToResultModel(iwbBackgroundElementPart); + return true; + } + else + { + qDebug() << "|error at creating element background"; + errorStr = "CreatingElementBackgroundParsingError."; + return false; + } +} + +QString UBCFFAdaptor::UBToCFFConverter::createBackgroundImage(const QDomElement &element, QSize size) +{ + QString sRet; + + QString sDstFileName(fIWBBackground); + + bool bDirExists = true; + QDir dstDocFolder(destinationPath); + + if (!dstDocFolder.exists(cfImages)) + bDirExists &= dstDocFolder.mkdir(cfImages); + + QString dstFilePath; + if (bDirExists) + dstFilePath = destinationPath+"/"+cfImages+"/"+sDstFileName; + + if (!QFile().exists(dstFilePath)) + { + QRect rect(0,0, size.width(), size.height()); + + QImage *bckImage = new QImage(size, QImage::Format_RGB888); + + QPainter *painter = new QPainter(bckImage); + + bool darkBackground = (avTrue == element.attribute(aDarkBackground)); + + QColor bCrossColor; + + bCrossColor = darkBackground?QColor(Qt::white):QColor(Qt::blue); + int penAlpha = (int)(255/2); // default Sankore value for transform.m11 < 1 + bCrossColor.setAlpha(penAlpha); + painter->setPen(bCrossColor); + painter->setBrush(darkBackground?QColor(Qt::black):QColor(Qt::white)); + + painter->drawRect(rect); + + if (avTrue == element.attribute(aCrossedBackground)) + { + qreal firstY = ((int) (rect.y () / iCrossSize)) * iCrossSize; + + for (qreal yPos = firstY; yPos <= rect.y () + rect.height (); yPos += iCrossSize) + { + painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos); + } + + qreal firstX = ((int) (rect.x () / iCrossSize)) * iCrossSize; + + for (qreal xPos = firstX; xPos <= rect.x () + rect.width (); xPos += iCrossSize) + { + painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ()); + } + } + + painter->end(); + painter->save(); + + if (QString() != dstFilePath) + if (bckImage->save(dstFilePath)) + sRet = cfImages+"/"+sDstFileName; + + delete bckImage; + delete painter; + } + else + sRet = cfImages+"/"+sDstFileName; + + return sRet; +} + +bool UBCFFAdaptor::UBToCFFConverter::createPngFromSvg(QString &svgPath, QString &dstPath, QTransform transformation, QSize size) +{ + if (QFile().exists(svgPath)) + { + QImage i(svgPath); + + QSize iSize = (QSize() == size)?QSize(i.size().width()*transformation.m11(), i.size().height()*transformation.m22()):size; + + QImage image(iSize, QImage::Format_ARGB32_Premultiplied); + image.fill(0); + QPainter imagePainter(&image); + QSvgRenderer renderer(svgPath); + renderer.render(&imagePainter); + + return image.save(dstPath); + + } + else + return false; +} + + +bool UBCFFAdaptor::UBToCFFConverter::parseSVGGGroup(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|parsing g section"; + QDomElement nextElement = element.firstChildElement(); + if (nextElement.isNull()) { + qDebug() << "Empty g element"; + errorStr = "EmptyGSection"; + return false; + } + + QMultiMap svgElements; + + QDomDocument doc; + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBG); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + // Elements can know about its layer, so it must add result QDomElements to ordrered list. + while (!nextElement.isNull()) { + QString tagName = nextElement.tagName(); + if (tagName == tUBZLine) parseUBZLine(nextElement, svgElements); + else if (tagName == tUBZPolygon) parseUBZPolygon(nextElement, svgElements); + else if (tagName == tUBZPolyline) parseUBZPolyline(nextElement, svgElements); + + nextElement = nextElement.nextSiblingElement(); + } + + QList layers; + QMapIterator nextSVGElement(svgElements); + while (nextSVGElement.hasNext()) + layers << nextSVGElement.next().key(); + + qSort(layers); + int layer = layers.at(0); + + nextSVGElement.toFront(); + while (nextSVGElement.hasNext()) + svgElementPart.appendChild(nextSVGElement.next().value()); + + addSVGElementToResultModel(svgElementPart, dstSvgList, layer); + + return true; +} +bool UBCFFAdaptor::UBToCFFConverter::parseUBZImage(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|parsing image"; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + addIWBElementToResultModel(iwbElementPart); + return true; + } + else + { + qDebug() << "|error at image parsing"; + errorStr = "ImageParsingError"; + return false; + + } +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZVideo(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|parsing video"; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + QDomElement svgSwitchSection = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBSwitch); + svgSwitchSection.appendChild(svgElementPart); + + // if viewer cannot open that content - it must use that: + QDomElement svgText = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBTextArea); + svgText.setAttribute(aX, svgElementPart.attribute(aX)); + svgText.setAttribute(aY, svgElementPart.attribute(aY)); + svgText.setAttribute(aWidth, svgElementPart.attribute(aWidth)); + svgText.setAttribute(aHeight, svgElementPart.attribute(aHeight)); + svgText.setAttribute(aTransform, svgElementPart.attribute(aTransform)); + + QDomText text = doc.createTextNode("Cannot Open Content"); + svgText.appendChild(text); + + svgSwitchSection.appendChild(svgText); + + addSVGElementToResultModel(svgSwitchSection, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + addIWBElementToResultModel(iwbElementPart); + return true; + } + else + { + qDebug() << "|error at video parsing"; + errorStr = "VideoParsingError"; + return false; + } +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZAudio(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|parsing audio"; + + // audio file must be linked to cff item excluding video. + // to do: + // 1 add image for audio element. + // 2 set id for this element + // 3 add section with xlink:href to audio file + // 4 add shild to a section with id of the image + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + //we must create image-containers for audio files + int audioImageDimention = qMin(svgElementPart.attribute(aWidth).toInt(), svgElementPart.attribute(aHeight).toInt()); + QString srcAudioImageFile(sAudioElementImage); + QString elementId = QString(QUuid::createUuid().toString()); + QString sDstAudioImageFileName = elementId+"."+fePng; + QString dstAudioImageFilePath = destinationPath+"/"+cfImages+"/"+sDstAudioImageFileName; + QString dstAudioImageRelativePath = cfImages+"/"+sDstAudioImageFileName; + + QFile srcFile(srcAudioImageFile); + + //creating folder for audioImage + QDir dstDocFolder(destinationPath); + bool bRes = true; + if (!dstDocFolder.exists(cfImages)) + bRes &= dstDocFolder.mkdir(cfImages); + + // CFF cannot show SVG images, so we need to convert it to png. + if (bRes && createPngFromSvg(srcAudioImageFile, dstAudioImageFilePath, getTransformFromUBZ(element), QSize(audioImageDimention, audioImageDimention))) + { + // switch section disabled because of imcompatibility with validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + // QDomElement svgSwitchSection = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBSwitch); + + // first we place content + QDomElement svgASection = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBA); + svgASection.setAttribute(aSVGHref, svgElementPart.attribute(aSVGHref)); + + svgElementPart.setTagName(tIWBImage); + svgElementPart.setAttribute(aSVGHref, dstAudioImageRelativePath); + svgElementPart.setAttribute(aHeight, audioImageDimention); + svgElementPart.setAttribute(aWidth, audioImageDimention); + + svgASection.appendChild(svgElementPart); + // switch section disabled because of imcompatibility with validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + // svgSwitchSection.appendChild(svgASection); + + // if viewer cannot open that content - it must use that: + QDomElement svgText = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + tIWBTextArea); + svgText.setAttribute(aX, svgElementPart.attribute(aX)); + svgText.setAttribute(aY, svgElementPart.attribute(aY)); + svgText.setAttribute(aWidth, svgElementPart.attribute(aWidth)); + svgText.setAttribute(aHeight, svgElementPart.attribute(aHeight)); + svgText.setAttribute(aTransform, svgElementPart.attribute(aTransform)); + + QDomText text = doc.createTextNode("Cannot Open Content"); + svgText.appendChild(text); + + // switch section disabled because of imcompatibility with validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + // svgSwitchSection.appendChild(svgText); + + // switch section disabled because of imcompatibility with validator http://validator.imsglobal.org/iwb/index.jsp?validate=package + addSVGElementToResultModel(svgASection/*svgSwitchSection*/, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + addIWBElementToResultModel(iwbElementPart); + return true; + } + return false; + } + else + { + qDebug() << "|error at audio parsing"; + errorStr = "AudioParsingError"; + return false; + } +} + +bool UBCFFAdaptor::UBToCFFConverter::parseForeignObject(const QDomElement &element, QMultiMap &dstSvgList) +{ + + if (element.attribute(aUBZType) == avUBZText) { + return parseUBZText(element, dstSvgList); + } + + qDebug() << "|parsing foreign object"; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + if (0 < iwbElementPart.attributes().count()) + addIWBElementToResultModel(iwbElementPart); + return true; + } + else + { + qDebug() << "|error at parsing foreign object"; + errorStr = "ForeignObjectParsingError"; + return false; + } +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZText(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "|parsing text"; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (element.hasChildNodes()) + { + QDomDocument htmlDoc; + htmlDoc.setContent(findTextNode(element).nodeValue()); + QDomNode bodyNode = findNodeByTagName(htmlDoc.firstChildElement(), "body"); + + setCFFTextFromHTMLTextNode(bodyNode.toElement(), svgElementPart); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + QString commonParams; + for (int i = 0; i < bodyNode.attributes().count(); i++) + { + commonParams += " " + bodyNode.attributes().item(i).nodeValue(); + } + commonParams.remove(" "); + commonParams.remove("'"); + + QStringList commonAttributes = commonParams.split(";", QString::SkipEmptyParts); + for (int i = 0; i < commonAttributes.count(); i++) + { + QStringList AttrVal = commonAttributes.at(i).split(":", QString::SkipEmptyParts); + if (1 < AttrVal.count()) + { + QString sAttr = ubzAttrNameToCFFAttrName(AttrVal.at(0)); + QString sVal = ubzAttrValueToCFFAttrName(AttrVal.at(1)); + + setCFFAttribute(sAttr, sVal, element, iwbElementPart, svgElementPart); + } + } + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + if (0 < iwbElementPart.attributes().count()) + addIWBElementToResultModel(iwbElementPart); + return true; + } + return false; + } + else + { + qDebug() << "|error at text parsing"; + errorStr = "TextParsingError"; + return false; + } +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZPolygon(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "||parsing polygon"; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + svgElementPart.setAttribute(aStroke, svgElementPart.attribute(aFill)); + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + { + QString id = svgElementPart.attribute(aUBZUuid); + if (id.isEmpty()) + id = QUuid::createUuid().toString(); + + svgElementPart.setAttribute(aID, id); + iwbElementPart.setAttribute(aRef, id); + + addIWBElementToResultModel(iwbElementPart); + } + return true; + } + else + { + qDebug() << "||error at parsing polygon"; + errorStr = "PolygonParsingError"; + return false; + } + +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZPolyline(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "||parsing polyline"; + QDomElement resElement; + + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + svgElementPart.setAttribute(aStroke, svgElementPart.attribute(aFill)); + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + { + QString id = QUuid::createUuid().toString(); + svgElementPart.setAttribute(aID, id); + iwbElementPart.setAttribute(aRef, id); + + addIWBElementToResultModel(iwbElementPart); + } + return true; + } + else + { + qDebug() << "||error at parsing polygon"; + errorStr = "PolylineParsingError"; + return false; + } + +} + +bool UBCFFAdaptor::UBToCFFConverter::parseUBZLine(const QDomElement &element, QMultiMap &dstSvgList) +{ + qDebug() << "||parsing line"; + QDomElement resElement; + QDomDocument doc; + + QDomElement svgElementPart = doc.createElementNS(svgIWBNS,svgIWBNSPrefix + ":" + getElementTypeFromUBZ(element)); + QDomElement iwbElementPart = doc.createElementNS(iwbNS,iwbNsPrefix + ":" + tElement); + + if (setCommonAttributesFromUBZ(element, iwbElementPart, svgElementPart)) + { + svgElementPart.setAttribute(aStroke, svgElementPart.attribute(aFill)); + addSVGElementToResultModel(svgElementPart, dstSvgList, getElementLayer(element)); + + if (0 < iwbElementPart.attributes().count()) + { + QString id = QUuid::createUuid().toString(); + svgElementPart.setAttribute(aID, id); + iwbElementPart.setAttribute(aRef, id); + + addIWBElementToResultModel(iwbElementPart); + } + } + else + { + qDebug() << "||error at parsing polygon"; + errorStr = "LineParsingError"; + return false; + } + return true; +} + +void UBCFFAdaptor::UBToCFFConverter::addSVGElementToResultModel(const QDomElement &element, QMultiMap &dstList, int layer) +{ + int elementLayer = (DEFAULT_LAYER == layer) ? DEFAULT_LAYER : layer; + + QDomElement rootElement = element.cloneNode(true).toElement(); + mDocumentToWrite->firstChildElement().appendChild(rootElement); + dstList.insert(elementLayer, rootElement); +} + +void UBCFFAdaptor::UBToCFFConverter::addIWBElementToResultModel(const QDomElement &element) +{ + QDomElement rootElement = element.cloneNode(true).toElement(); + mDocumentToWrite->firstChildElement().appendChild(rootElement); + mExtendedElements.append(rootElement); +} + +UBCFFAdaptor::UBToCFFConverter::~UBToCFFConverter() +{ + if (mDataModel) + delete mDataModel; + if (mIWBContentWriter) + delete mIWBContentWriter; + if (mDocumentToWrite) + delete mDocumentToWrite; +} +bool UBCFFAdaptor::UBToCFFConverter::isValid() const +{ + bool result = QFileInfo(sourcePath).exists() + && QFileInfo(sourcePath).isDir() + && errorStr == noErrorMsg; + + if (!result) { + qDebug() << "specified data is not valid"; + errorStr = "ValidateDataError"; + } + + return result; +} + +void UBCFFAdaptor::UBToCFFConverter::fillNamespaces() +{ + mIWBContentWriter->writeDefaultNamespace(svgUBZNS); + mIWBContentWriter->writeNamespace(iwbNS, iwbNsPrefix); + mIWBContentWriter->writeNamespace(svgIWBNS, svgIWBNSPrefix); + mIWBContentWriter->writeNamespace(xlinkNS, xlinkNSPrefix); +} + +QString UBCFFAdaptor::UBToCFFConverter::digitFileFormat(int digit) const +{ + return QString("%1").arg(digit, 3, 10, QLatin1Char('0')); +} +QString UBCFFAdaptor::UBToCFFConverter::contentIWBFileName() const +{ + return destinationPath + "/" + fIWBContent; +} + +//setting SVG dimenitons +QSize UBCFFAdaptor::UBToCFFConverter::getSVGDimentions(const QString &element) +{ + + QStringList dimList; + + dimList = element.split(dimensionsDelimiter1, QString::KeepEmptyParts); + if (dimList.count() != 2) // row unlike 0x0 + return QSize(); + + bool ok; + + int width = dimList.takeFirst().toInt(&ok); + if (!ok || !width) + return QSize(); + + int height = dimList.takeFirst().toInt(&ok); + if (!ok || !height) + return QSize(); + + return QSize(width, height); +} + +//Setting viewbox rectangle +QRect UBCFFAdaptor::UBToCFFConverter::getViewboxRect(const QString &element) const +{ + QStringList dimList; + + dimList = element.split(dimensionsDelimiter2, QString::KeepEmptyParts); + if (dimList.count() != 4) // row unlike 0 0 0 0 + return QRect(); + + bool ok = false; + + int x = dimList.takeFirst().toInt(&ok); + if (!ok || !x) + return QRect(); + + int y = dimList.takeFirst().toInt(&ok); + if (!ok || !y) + return QRect(); + + int width = dimList.takeFirst().toInt(&ok); + if (!ok || !width) + return QRect(); + + int height = dimList.takeFirst().toInt(&ok); + if (!ok || !height) + return QRect(); + + return QRect(x, y, width, height); +} + +QString UBCFFAdaptor::UBToCFFConverter::rectToIWBAttr(const QRect &rect) const +{ + if (rect.isNull()) return QString(); + + return QString("%1 %2 %3 %4").arg(rect.topLeft().x()) + .arg(rect.topLeft().y()) + .arg(rect.width()) + .arg(rect.height()); +} + +UBCFFAdaptor::UBToUBZConverter::UBToUBZConverter() +{ + +} diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.h b/plugins/cffadaptor/src/UBCFFAdaptor.h new file mode 100644 index 0000000..99f5739 --- /dev/null +++ b/plugins/cffadaptor/src/UBCFFAdaptor.h @@ -0,0 +1,175 @@ +/* + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of Open-Sankoré. + * + * Open-Sankoré is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * Open-Sankoré 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Open-Sankoré. If not, see . + */ + + +#ifndef UBCFFADAPTOR_H +#define UBCFFADAPTOR_H + +#include "UBCFFAdaptor_global.h" + +#include + +class QTransform; +class QDomDocument; +class QDomElement; +class QDomNode; +class QuaZipFile; + +class UBCFFADAPTORSHARED_EXPORT UBCFFAdaptor { + class UBToCFFConverter; + +public: + UBCFFAdaptor(); + ~UBCFFAdaptor(); + + bool convertUBZToIWB(const QString &from, const QString &to); + bool deleteDir(const QString& pDirPath) const; + QList getConversionMessages(); + +private: + QString uncompressZip(const QString &zipFile); + bool compressZip(const QString &source, const QString &destination); + bool compressDir(const QString &dirName, const QString &parentDir, QuaZipFile *outZip); + bool compressFile(const QString &fileName, const QString &parentDir, QuaZipFile *outZip); + + QString createNewTmpDir(); + bool freeDir(const QString &dir); + void freeTmpDirs(); + +private: + QStringList tmpDirs; + QList mConversionMessages; + +private: + + class UBToCFFConverter { + + static const int DEFAULT_LAYER = -100000; + + public: + UBToCFFConverter(const QString &source, const QString &destination); + ~UBToCFFConverter(); + bool isValid() const; + QString lastErrStr() const {return errorStr;} + bool parse(); + QList getMessages() {return mExportErrorList;} + + private: + + void addLastExportError(QString error) {mExportErrorList.append(error);} + + void fillNamespaces(); + + bool parseMetadata(); + bool parseContent(); + QDomElement parsePageset(const QStringList &pageFileNames); + QDomElement parsePage(const QString &pageFileName); + QDomElement parseSvgPageSection(const QDomElement &element); + void writeQDomElementToXML(const QDomNode &node); + bool writeExtendedIwbSection(); + QDomElement parseGroupsPageSection(const QDomElement &groupRoot); + + bool createBackground(const QDomElement &element, QMultiMap &dstSvgList); + QString createBackgroundImage(const QDomElement &element, QSize size); + bool createPngFromSvg(QString &svgPath, QString &dstPath, QTransform transformation, QSize size = QSize()); + + bool parseSVGGGroup(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZImage(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZVideo(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZAudio(const QDomElement &element, QMultiMap &dstSvgList); + bool parseForeignObject(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZText(const QDomElement &element, QMultiMap &dstSvgList); + + bool parseUBZPolygon(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZPolyline(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZLine(const QDomElement &element, QMultiMap &dstSvgList); + void addSVGElementToResultModel(const QDomElement &element, QMultiMap &dstList, int layer = DEFAULT_LAYER); + void addIWBElementToResultModel(const QDomElement &element); + + qreal getAngleFromTransform(const QTransform &tr); + QString getDstContentFolderName(const QString &elementType); + QString getSrcContentFolderName(QString href); + QString getFileNameFromPath(QString sPath); + QString getExtentionFromFileName(const QString &filename); + QString convertExtention(const QString &ext); + QString getElementTypeFromUBZ(const QDomElement &element); + + int getElementLayer(const QDomElement &element); + + bool itIsSupportedFormat(const QString &format) const; + bool itIsFormatToConvert(const QString &format) const; + bool itIsSVGElementAttribute(const QString ItemType, const QString &AttrName); + bool itIsIWBAttribute(const QString &attribute) const; + bool itIsUBZAttributeToConvert(const QString &attribute) const; + + bool ibwAddLine(int x1, int y1, int x2, int y2, QString color=QString(), int width=1, bool isBackground=false); + + QTransform getTransformFromUBZ(const QDomElement &ubzElement); + void setGeometryFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement); + void setCoordinatesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement); + bool setContentFromUBZ(const QDomElement &ubzElement, QDomElement &svgElement); + void setCFFTextFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); + void setCFFTextFromHTMLTextNode(const QDomElement htmlTextNode, QDomElement &iwbElement); + QString ubzAttrNameToCFFAttrName(QString cffAttrName); + QString ubzAttrValueToCFFAttrName(QString cffAttrValue); + + bool setCFFAttribute(const QString &attributeName, const QString &attributeValue, const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); + bool setCommonAttributesFromUBZ(const QDomElement &ubzElement, QDomElement &iwbElement, QDomElement &svgElement); + void setViewBox(QRect viewbox); + + QDomNode findTextNode(const QDomNode &node); + QDomNode findNodeByTagName(const QDomNode &node, QString tagName); + + QSize getSVGDimentions(const QString &element); + + inline QRect getViewboxRect(const QString &element) const; + inline QString rectToIWBAttr(const QRect &rect) const; + inline QString digitFileFormat(int num) const; + inline bool strToBool(const QString &in) const {return in == "true";} + QString contentIWBFileName() const; + + private: + QList mExportErrorList; + QMap iwbSVGItemsAttributes; + QDomDocument *mDataModel; //model for reading indata + QXmlStreamWriter *mIWBContentWriter; //stream to write outdata + QSize mSVGSize; //svg page size + QRect mViewbox; //Main viewbox parameter for CFF + QString sourcePath; // dir with unpacked source data (ubz) + QString destinationPath; //dir with unpacked destination data (iwb) + QDomDocument *mDocumentToWrite; //document for saved QDomElements from mSvgElements and mExtendedElements + QMultiMap mSvgElements; //Saving svg elements to have a sorted by z order list of elements to write; + QList mExtendedElements; //Saving extended options of elements to be able to add them to the end of result iwb document; + mutable QString errorStr; // last error string message + + public: + operator bool() const {return isValid();} + }; + + class UBToUBZConverter { + public: + UBToUBZConverter(); + }; + + +}; + +#endif // UBCFFADAPTOR_H diff --git a/plugins/cffadaptor/src/UBCFFAdaptor_global.h b/plugins/cffadaptor/src/UBCFFAdaptor_global.h new file mode 100644 index 0000000..3f060b9 --- /dev/null +++ b/plugins/cffadaptor/src/UBCFFAdaptor_global.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of Open-Sankoré. + * + * Open-Sankoré is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * Open-Sankoré 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Open-Sankoré. If not, see . + */ + + +#ifndef UBCFFADAPTOR_GLOBAL_H +#define UBCFFADAPTOR_GLOBAL_H + +#include + +#if defined(UBCFFADAPTOR_LIBRARY) +# define UBCFFADAPTORSHARED_EXPORT Q_DECL_EXPORT +#else +# define UBCFFADAPTORSHARED_EXPORT Q_DECL_IMPORT +#endif + +#endif // UBCFFADAPTOR_GLOBAL_H diff --git a/plugins/cffadaptor/src/UBCFFConstants.h b/plugins/cffadaptor/src/UBCFFConstants.h new file mode 100644 index 0000000..588ea69 --- /dev/null +++ b/plugins/cffadaptor/src/UBCFFConstants.h @@ -0,0 +1,405 @@ +/* + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of Open-Sankoré. + * + * Open-Sankoré is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * Open-Sankoré 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Open-Sankoré. If not, see . + */ + + +#ifndef UBCFFCONSTANTS_H +#define UBCFFCONSTANTS_H + +#define PI 3.1415926535 + +const int DEFAULT_BACKGROUND_LAYER = -20000002; +const int DEFAULT_BACKGROUND_CROSS_LAYER = -20000001; + +// Constant names. Use only them instead const char* in each function + +// Constant fileNames; +const QString fMetadata = "metadata.rdf"; +const QString fIWBContent = "content.xml"; +const QString fIWBBackground = "background.png"; +const QString sAudioElementImage = ":images/soundOn.svg"; + +// Constant messages; +const QString noErrorMsg = "NoError"; + +// Tag names +const QString tDescription = "Description"; +const QString tIWBRoot = "iwb"; +const QString tIWBMeta = "meta"; +const QString tUBZSize = "size"; +const QString tSvg = "svg"; +const QString tIWBPage = "page"; +const QString tIWBPageSet = "pageset"; +const QString tId = "id"; +const QString tElement = "element"; +const QString tUBZGroup = "group"; +const QString tUBZGroups = "groups"; +const QString tUBZG = "g"; +const QString tUBZPolygon = "polygon"; +const QString tUBZPolyline = "polyline"; +const QString tUBZLine = "line"; +const QString tUBZAudio = "audio"; +const QString tUBZVideo = "video"; +const QString tUBZImage = "image"; +const QString tUBZForeignObject = "foreignObject"; +const QString tUBZTextContent = "itemTextContent"; + +const QString tIWBA = "a"; +const QString tIWBG = "g"; +const QString tIWBSwitch = "switch"; +const QString tIWBImage = "image"; +const QString tIWBVideo = "video"; +const QString tIWBAudio = "audio"; +const QString tIWBText = "text"; +const QString tIWBTextArea = "textarea"; +const QString tIWBPolyLine = "polyline"; +const QString tIWBPolygon = "polygon"; +const QString tIWBFlash = "video"; +const QString tIWBRect = "rect"; +const QString tIWBLine = "line"; +const QString tIWBTbreak = "tbreak"; +const QString tIWBTspan = "tspan"; + +// Attributes names +const QString aIWBVersion = "version"; +const QString aOwner = "owner"; +const QString aDescription = "description"; +const QString aCreator = "creator"; +const QString aAbout = "about"; +const QString aIWBViewBox = "viewbox"; +const QString aUBZViewBox = "viewBox"; +const QString aDarkBackground = "dark-background"; +const QString aBackground = "background"; +const QString aCrossedBackground = "crossed-background"; +const QString aUBZType = "type"; +const QString aUBZUuid = "uuid"; +const QString aUBZParent = "parent"; +const QString aFill = "fill"; // IWB attribute contans color to fill + +const QString aID = "id"; // ID of any svg element can be placed in to iwb section +const QString aRef = "ref"; // as reference for applying additional attributes +const QString aSVGHref = "xlink:href"; // reference to file +const QString aIWBHref = "ref"; // reference to element ID +const QString aUBZHref = "href"; +const QString aUBZSource = "source"; +const QString aSrc = "src"; +const QString aSVGRequiredExtension = "requiredExtensions"; + +const QString aX = "x"; +const QString aY = "y"; +const QString aWidth = "width"; +const QString aHeight = "height"; +const QString aStroke = "stroke"; +const QString aStrokeWidth = "stroke-width"; +const QString aPoints = "points"; +const QString aZLayer = "z-value"; +const QString aLayer = "layer"; +const QString aTransform = "transform"; +const QString aLocked = "locked"; +const QString aIWBName = "name"; +const QString aIWBContent = "content"; + + +// Attribute values +const QString avIWBVersionNo = "1.0"; +const QString avUBZText = "text"; +const QString avFalse = "false"; +const QString avTrue = "true"; + +// Namespaces and prefixes +const QString svgRequiredExtensionPrefix = "http://www.imsglobal.org/iwb/"; +const QString dcNS = "http://purl.org/dc/elements/1.1/"; +const QString ubNS = "http://uniboard.mnemis.com/document"; +const QString svgUBZNS = "http://www.imsglobal.org/xsd/iwb_v1p0"; +const QString svgIWBNS = "http://www.w3.org/2000/svg"; +const QString xlinkNS = "http://www.w3.org/1999/xlink"; +const QString iwbNS = "http://www.imsglobal.org/xsd/iwb_v1p0"; +const QString xsiNS = "http://www.w3.org/2001/XMLSchema-instance"; +const QString xsiShemaLocation = "\ +http://www.imsglobal.org/xsd/iwb_v1p0 \ +http://www.imsglobal.org/profile/iwb/iwbv1p0_v1p0.xsd \ +http://www.w3.org/2000/svg http://www.imsglobal.org/profile/iwb/svgsubsetv1p0_v1p0.xsd \ +http://www.w3.org/1999/xlink http://www.imsglobal.org/xsd/w3/1999/xlink.xsd"; +const QString dcNSPrefix = "dc"; +const QString ubNSPrefix = "ub"; +const QString svgIWBNSPrefix = "svg"; +const QString xlinkNSPrefix = "xlink"; +const QString iwbNsPrefix = "iwb"; +const QString xsiPrefix = "xsi"; +const QString xsiSchemaLocationPrefix = "schemaLocation"; + +const QString avOwner = ""; +const QString avCreator = ""; +const QString avDescription = ""; + +//constant symbols and words etc +const QString dimensionsDelimiter1 = "x"; +const QString dimensionsDelimiter2 = " "; +const QString pageAlias = "page"; +const QString pageFileExtentionUBZ = "svg"; + +//content folder names +const QString cfImages = "images"; +const QString cfVideos = "video"; +const QString cfAudios = "audio"; +const QString cfFlash = "flash"; + +//known file extentions +const QString feSvg = "svg"; +const QString feWgt = "wgt"; +const QString fePng = "png"; + +const int iCrossSize = 32; +const int iCrossWidth = 1; + +// Image formats supported by CFF exclude wgt. Wgt is Sankore widget, which is considered as a .png preview. +const QString iwbElementImage(" \ +wgt, \ +jpeg, \ +jpg, \ +bmp, \ +gif, \ +wmf, \ +emf, \ +png, \ +tif, \ +tiff \ +"); + +// Video formats supported by CFF +const QString iwbElementVideo(" \ +mpg, \ +mpeg, \ +swf, \ +"); + +// Audio formats supported by CFF +const QString iwbElementAudio(" \ +mp3, \ +wav \ +"); + +const QString cffSupportedFileFormats(iwbElementImage + iwbElementVideo + iwbElementAudio); +const QString ubzFormatsToConvert("svg"); + + +const QString iwbSVGImageAttributes(" \ +id, \ +xlink:href, \ +x, \ +y, \ +height, \ +width, \ +fill-opacity, \ +requiredExtentions, \ +transform \ +"); + + +const QString iwbSVGAudioAttributes(" \ +id, \ +xlink:href, \ +x, \ +y, \ +height, \ +width, \ +fill-opacity, \ +requiredExtentions, \ +transform \ +"); + +const QString iwbSVGVideoAttributes(" \ +id, \ +xlink:href, \ +x, \ +y, \ +height, \ +width, \ +fill-opacity, \ +requiredExtentions, \ +transform \ +"); + +const QString iwbSVGRectAttributes(" \ +id, \ +x, \ +y, \ +height, \ +width, \ +fill, \ +fill-opacity, \ +stroke, \ +stroke-dasharray, \ +stroke-linecap, \ +stroke-linejoin, \ +stroke-opacity, \ +stroke-width, \ +transform \ +"); + + + +const QString iwbSVGTextAttributes(" \ +id, \ +x, \ +y, \ +fill, \ +font-family, \ +font-size, \ +font-style, \ +font-weight, \ +font-stretch, \ +transform \ +"); + +const QString iwbSVGTextAreaAttributes(" \ +id, \ +x, \ +y, \ +height, \ +width, \ +fill, \ +font-family, \ +font-size, \ +font-style, \ +font-weight, \ +font-stretch, \ +text-align, \ +transform \ +"); + +const QString iwbSVGTspanAttributes(" \ +id, \ +fill, \ +font-family, \ +font-size, \ +font-style, \ +font-weight, \ +font-stretch, \ +text-align, \ +"); + +const QString iwbSVGLineAttributes(" \ +id, \ +x1, \ +y1, \ +x2, \ +y2, \ +stroke, \ +stroke-dasharray, \ +stroke-width, \ +stroke-opacity, \ +stroke-linecap, \ +transform \ +"); + +const QString iwbSVGPolyLineAttributes(" \ +id, \ +points, \ +stroke, \ +stroke-width, \ +stroke-dasharray, \ +stroke-opacity, \ +stroke-linecap, \ +transform \ +"); + +const QString iwbSVGPolygonAttributes(" \ +id, \ +points, \ +fill, \ +fill-opacity, \ +stroke, \ +stroke-dasharray, \ +stroke-width, \ +stroke-linecap, \ +stroke-linejoin, \ +stroke-opacity, \ +stroke-width, \ +transform \ +"); + +// 1 to 1 copy to SVG section +const QString iwbElementAttributes(" \ +background, \ +background-fill, \ +background-posture, \ +flip, \ +freehand, \ +highlight, \ +highlight-fill, \ +list-style-type, \ +list-style-type-fill, \ +locked, \ +replicate, \ +revealer, \ +stroke-lineshape-start, \ +stroke-lineshape-end \ +"); + +// cannot be copied 1 to 1 to SVG section +const QString ubzElementAttributesToConvert(" \ +xlink:href, \ +src, \ +transform, \ +uuid \ +" +); + +// additional attributes. Have references in SVG section. +const QString svgElementAttributes(" \ +points, \ +fill, \ +fill-opacity, \ +stroke, \ +stroke-dasharray, \ +stroke-linecap, \ +stroke-opacity, \ +stroke-width, \ +stroke_linejoin, \ +requiredExtensions, \ +viewbox, \ +x, \ +y, \ +x1, \ +y1, \ +x2, \ +y2, \ +height, \ +width, \ +font-family, \ +font-size, \ +font-style, \ +font-weight, \ +font-stretch, \ +text-align \ +"); + +const QString ubzContentFolders("audios,videos,images,widgets"); + +struct UBItemLayerType +{ + enum Enum + { + FixedBackground = -2000, Object = -1000, Graphic = 0, Tool = 1000, Control = 2000 + }; +}; + +#endif // UBCFFCONSTANTS_H diff --git a/plugins/cffadaptor/src/UBGlobals.h b/plugins/cffadaptor/src/UBGlobals.h new file mode 100644 index 0000000..1c2864d --- /dev/null +++ b/plugins/cffadaptor/src/UBGlobals.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * + * This file is part of Open-Sankoré. + * + * Open-Sankoré is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License, + * with a specific linking exception for the OpenSSL project's + * "OpenSSL" library (or with modified versions of it that use the + * same license as the "OpenSSL" library). + * + * Open-Sankoré 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Open-Sankoré. If not, see . + */ + + +#ifndef UBGLOBALS_H +#define UBGLOBALS_H + +#define DELETEPTR(ptr) if(NULL != ptr){ \ + delete ptr; \ + ptr = NULL; \ + } + +#ifdef Q_WS_WIN + +#define WARNINGS_DISABLE __pragma(warning(push, 0)); +#define WARNINGS_ENABLE __pragma(warning(pop)); + +#ifdef NO_THIRD_PARTY_WARNINGS +// disabling warning level to 0 and save old state +#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE +#else +// just save old state (needs for not empty define) +#define THIRD_PARTY_WARNINGS_DISABLE __pragma(warning(push)); +#endif //#ifdef NO_THIRD_PARTY_WARNINGS +// anyway on WIN +#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE + +#else //#ifdef Q_WS_WIN + +#define WARNINGS_DISABLE _Pragma("GCC diagnostic push"); \ +_Pragma("GCC diagnostic ignored \"-Wunused-parameter\""); \ +_Pragma("GCC diagnostic ignored \"-Wunused-variable\""); \ +_Pragma("GCC diagnostic ignored \"-Wsign-compare\""); + +#define WARNINGS_ENABLE _Pragma("GCC diagnostic pop"); + +#ifdef NO_THIRD_PARTY_WARNINGS +//disabling some warnings +#define THIRD_PARTY_WARNINGS_DISABLE WARNINGS_DISABLE + +#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE +#else +// just save old state (needs for not empty define) +#define THIRD_PARTY_WARNINGS_ENABLE WARNINGS_ENABLE + +#endif //#ifdef NO_THIRD_PARTY_WARNINGS + +#endif //#ifdef Q_WS_WIN + +#endif // UBGLOBALS_H + diff --git a/plugins/plugins.pri b/plugins/plugins.pri new file mode 100644 index 0000000..ddf3113 --- /dev/null +++ b/plugins/plugins.pri @@ -0,0 +1,6 @@ +HEADERS += plugins/cffadaptor/src/UBCFFAdaptor_global.h \ + plugins/cffadaptor/src/UBCFFAdaptor.h \ + plugins/cffadaptor/src/UBCFFConstants.h \ + plugins/cffadaptor/src/UBGlobals.h + +SOURCES += plugins/cffadaptor/src/UBCFFAdaptor.cpp diff --git a/release_scripts/linux/OpenBoard.spec b/release_scripts/linux/OpenBoard.spec new file mode 100644 index 0000000..b754d73 --- /dev/null +++ b/release_scripts/linux/OpenBoard.spec @@ -0,0 +1,225 @@ +# Unpackaged files in buildroot should terminate build +%define _unpackaged_files_terminate_build 1 + +%define dest_dir %_libdir/OpenBoard +Name: OpenBoard +Version: 1.6.1 +Release: alt6 +Summary: Interactive whiteboard for schools and universities +License: GPL-3.0+ +Group: Education +Url: https://github.com/OpenBoard-org/OpenBoard +Packager: Anton Midyukov + +Source: %name-%version.tar + +Source1: %name.svg + +Patch: fix-build-with-poppler-22.patch + +Patch1: OpenBoard-1.6.1-update-russian-translations.patch + +BuildRequires: gcc-c++ libgomp-devel +BuildRequires: desktop-file-utils +BuildRequires: libpaper-devel +BuildRequires: libssl-devel +BuildRequires: quazip-qt5-devel +BuildRequires: libqtsingleapplication-qt5-devel +BuildRequires: t1lib-devel +BuildRequires: libavcodec-devel libavformat-devel libswscale-devel libswresample-devel +BuildRequires: libalsa-devel libvpx-devel libvorbis-devel libtheora-devel libogg-devel +BuildRequires: libopus-devel liblame-devel libass-devel +BuildRequires: liblzma-devel bzlib-devel +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Gui) +BuildRequires: pkgconfig(Qt5Help) +BuildRequires: pkgconfig(Qt5Multimedia) +BuildRequires: pkgconfig(Qt5MultimediaWidgets) +BuildRequires: pkgconfig(Qt5Network) +BuildRequires: pkgconfig(Qt5PrintSupport) +BuildRequires: pkgconfig(Qt5Script) +BuildRequires: pkgconfig(Qt5Svg) +BuildRequires: pkgconfig(Qt5UiTools) +BuildRequires: pkgconfig(Qt5WebKit) +BuildRequires: pkgconfig(Qt5WebKitWidgets) +BuildRequires: pkgconfig(Qt5Xml) +BuildRequires: pkgconfig(Qt5XmlPatterns) +BuildRequires: pkgconfig(libpulse-mainloop-glib) +BuildRequires: pkgconfig(libpulse) +BuildRequires: pkgconfig(hunspell) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(poppler) +BuildRequires: pkgconfig(poppler-cpp) +BuildRequires: pkgconfig(sdl) + +Requires: onboard +Requires: /sbin/pidof + +%description +Interactive whiteboard for schools and universities. + +%prep +%setup +%patch -p1 +# update russian translations +%patch1 -p1 + +# remove unwanted and nonfree libraries +sed -i -e 's|-lfdk-aac ||' src/podcast/podcast.pri +sed -i -e 's|-lx264 ||' src/podcast/podcast.pri + +# fix build with poppler 0.83 +#sed -i -e 's,std=c++11,std=c++14,g' src/podcast/podcast.pri + +# drop quazip LIBS INCLUDEPATH +sed -i -e '/LIBS += -lquazip5/d' \ + -e '/INCLUDEPATH += "\/usr\/include\/quazip"/d' \ + OpenBoard.pro + +%build +%_qt5_bindir/lrelease -removeidentical %name.pro + +%qmake_qt5 \ + LIBS+="`pkg-config --libs quazip1-qt5`" \ + INCLUDEPATH+="`pkg-config --cflags-only-I quazip1-qt5 | + sed 's/-I//g'`" \ + INCLUDEPATH+=%_includedir/poppler \ + INCLUDEPATH+=%_includedir/qt5/QtSolutions \ + %name.pro +%make_build + +%install +%makeinstall_std +install -D -m 0644 %SOURCE1 %buildroot%_iconsdir/hicolor/scalable/apps/OpenBoard.svg + +# missing desktop file, creating one +mkdir -p %buildroot%_desktopdir/ +cat > %buildroot%_desktopdir/%name.desktop < %buildroot%dest_dir/run.sh <. +# --------------------------------------------------------------------- + +env QT_PLUGIN_PATH=\$QT_PLUGIN_PATH:%dest_dir/%name/plugins LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:%dest_dir/plugins/cffadaptor %dest_dir/%name "\$@" +EOF + +sed -i -e '/env QT_PLUGIN_PATH=/i if pid="$(/sbin/pidof OpenBoard)"; then\n echo "OpenBoard is already running, PID ${pid}."\n exit 0\nfi\n' %buildroot%dest_dir/run.sh + +chmod 0755 %buildroot%dest_dir/run.sh +mkdir -p %buildroot/%_bindir/ +ln -s -T %dest_dir/run.sh %buildroot/%_bindir/%name + +# clean some exe bits +find %buildroot -executable -type f -name *.js -exec chmod -x '{}' \+ +find %buildroot -executable -type f -name *.svg -exec chmod -x '{}' \+ +find %buildroot -executable -type f -name *.css -exec chmod -x '{}' \+ +find %buildroot -executable -type f -name *.xml -exec chmod -x '{}' \+ +find %buildroot -executable -type f -name *.html -exec chmod -x '{}' \+ + +# internalization +lrelease-qt5 -removeidentical %name.pro +mkdir -p %buildroot%dest_dir/i18n/ +cp -R resources/i18n/%{name}*.qm %buildroot%dest_dir/i18n/ + +# customizations +cp -R resources/customizations %buildroot%dest_dir/ + +%files +%doc COPYRIGHT LICENSE +%_desktopdir/%name.desktop +%_iconsdir/hicolor/scalable/apps/%name.svg +%_libdir/OpenBoard +%_bindir/%name + +%changelog +* Wed Mar 23 2022 Evgeniy Kukhtinov 1.6.1-alt6 +- Update russian translation for 1.6.1 +- Multiple app instances run ability disabling +- Replacing the icon from png to svg + +* Fri Mar 18 2022 Evgeniy Kukhtinov 1.6.1-alt5 +- adapted for build with libpoppler-devel-21.11.0 and libpoppler-devel-22.03.0 + +* Thu Mar 17 2022 Evgeniy Kukhtinov 1.6.1-alt4 +- fix build with poppler-22 + +* Sat Jan 01 2022 Anton Midyukov 1.6.1-alt3 +- realy fix build with libquazip1-qt5 + +* Sat Jan 01 2022 Anton Midyukov 1.6.1-alt2 +- fix build with libquazip1-qt5 + +* Fri Oct 22 2021 Evgeniy Kukhtinov 1.6.1-alt1 +- new version 1.6.1 +- Removing patches merged to upstream + +* Wed Mar 24 2021 Anton Midyukov 1.5.4-alt3 +- Update Russian translation + +* Mon Oct 26 2020 Anton Midyukov 1.5.4-alt2 +- Requires onboard (Closes: 39119) + +* Sat Mar 28 2020 Anton Midyukov 1.5.4-alt1 +- new version 1.5.4 + +* Fri Aug 16 2019 Anton Midyukov 1.5.3-alt1 +- new version 1.5.3 + +* Sun Jun 23 2019 Igor Vlasenko 1.5.2-alt3 +- NMU: remove rpm-build-ubt from BR: + +* Sun Mar 31 2019 Anton Midyukov 1.5.2-alt2 +- Update patchs (Fix FTBFS) (Thanks Mageia Team) + +* Thu Feb 14 2019 Anton Midyukov 1.5.2-alt1 +- new version 1.5.2 + +* Sat Nov 17 2018 Anton Midyukov 1.4.1-alt1 +- new version 1.4.1 + +* Wed Aug 29 2018 Grigory Ustinov 1.3.6-alt3.1%ubt +- NMU: Rebuild with new openssl 1.1.0. + +* Fri Jul 27 2018 Anton Midyukov 1.3.6-alt3%ubt +- Fix build with libpoppler >= 0.64 + +* Sun Jul 08 2018 Anton Midyukov 1.3.6-alt2%ubt.1 +- Rebuilt for aarch64 + +* Wed Jan 31 2018 Anton Midyukov 1.3.6-alt2%ubt +- Fix build for ALT Sisyphus. + +* Mon Nov 13 2017 Anton Midyukov 1.3.6-alt1%ubt +- Initial build for ALT Sisyphus. diff --git a/release_scripts/linux/build.sh b/release_scripts/linux/build.sh new file mode 100755 index 0000000..3918fc4 --- /dev/null +++ b/release_scripts/linux/build.sh @@ -0,0 +1,173 @@ +#!/bin/bash +# -------------------------------------------------------------------- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# --------------------------------------------------------------------- + +initializeVariables() +{ + APPLICATION_NAME="OpenBoard" + STANDARD_QT_USED=false + + # Root directory + SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + PROJECT_ROOT="$SCRIPT_PATH/../.." + BUILD_DIR="$PROJECT_ROOT/build/linux/release" + PRODUCT_PATH="$BUILD_DIR/product" + + # Qt installation path. This may vary across machines + QT_PATH="/home/dev/Qt/5.15.0/gcc_64" + PLUGINS_PATH="$QT_PATH/plugins" + GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" + QMAKE_PATH="$QT_PATH/bin/qmake" + LRELEASES="$QT_PATH/bin/lrelease" + + NOTIFY_CMD=`which notify-send` + ZIP_PATH=`which zip` + + if [ -z $ARCHITECTURE ]; then + ARCHITECTURE=`uname -m` + if [ $ARCHITECTURE == "x86_64" ]; then + ARCHITECTURE="amd64" + fi + fi +} + +notifyError(){ + if [ -e "$NOTIFY_CMD" ]; then + $NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1" + fi + printf "\033[31merror:\033[0m $1\n" + exit 1 +} + +notifyProgress(){ + if [ -e "$NOTIFY_CMD" ]; then + $NOTIFY_CMD "$1" "$2" + fi + printf "\033[32m--> Achieved task:\033[0m $1:\n\t$2\n" +} + +checkDir(){ + if [ ! -d "$1" ]; then + notifyError "Directory not found : $1" + fi +} + +checkExecutable(){ + if [ ! -e "$1" ]; then + notifyError "$1 command not found" + fi +} + +buildWithStandardQt(){ + # if both Qt4 and Qt5 are installed, choose Qt5 + export QT_SELECT=5 + STANDARD_QT=`which qmake` + if [ $? == "0" ]; then + QT_VERSION=`$STANDARD_QT --version | grep -i "Using Qt version" | sed -e "s/Using Qt version \(.*\) in.*/\1/"` + if [ `echo $QT_VERSION | sed -e "s/\.//g"` -gt 480 ]; then + notifyProgress "Standard QT" "A recent enough qmake has been found. Using this one instead of custom one" + STANDARD_QT_USED=true + QMAKE_PATH=$STANDARD_QT + LRELEASES=`which lrelease` + PLUGINS_PATH="$STANDARD_QT/../plugins" + fi + fi +} + +buildImporter(){ + IMPORTER_DIR="../OpenBoard-Importer/" + IMPORTER_NAME="OpenBoardImporter" + checkDir $IMPORTER_DIR + cd ${IMPORTER_DIR} + + rm moc_* + rm -rf debug release + rm *.o + + notifyProgress "Building importer" + + $QMAKE_PATH ${IMPORTER_NAME}.pro + make clean + make -j4 + checkExecutable $IMPORTER_NAME + cd - +} + +createBuildContext() { + BUILD_CONTEXT="buildContext" + echo $ARCHITECTURE > $BUILD_CONTEXT +} + + + +# Check command-line arguments to force an architecture + +for var in "$@" +do + if [ $var == "i386" ]; then + ARCHITECTURE="i386" + fi + if [ $var == "amd64" ]; then + ARCHITECTURE="amd64" + fi +done + + +initializeVariables +#buildWithStandardQt +createBuildContext + +cd $PROJECT_ROOT + +# check of directories and executables +checkDir $QT_PATH +checkDir $PLUGINS_PATH +checkDir $GUI_TRANSLATIONS_DIRECTORY_PATH + +checkExecutable $QMAKE_PATH +checkExecutable $LRELEASES +checkExecutable $ZIP_PATH + +#build third party application +buildImporter +notifyProgress "OpenBoardImporter" "Built Importer" + + +# cleaning the build directory +rm -rf $BUILD_DIR + +# Generate translations +notifyProgress "QT" "Internationalization" +$LRELEASES ${APPLICATION_NAME}.pro +cd $GUI_TRANSLATIONS_DIRECTORY_PATH +$LRELEASES translations.pro +cd - + +notifyProgress "${APPLICATION_NAME}" "Building ${APPLICATION_NAME}" + +if [ "$ARCHITECTURE" == "amd64" ] || [ "$ARCHITECTURE" == "x86_64" ]; then + $QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++-64 +else + $QMAKE_PATH ${APPLICATION_NAME}.pro -spec linux-g++ +fi + + +make -j4 release-install + +if [ ! -e "$PRODUCT_PATH/${APPLICATION_NAME}" ]; then + notifyError "${APPLICATION_NAME} build failed" +else + notifyProgress "Finished building OpenBoard. You may now run the packaging script." +fi diff --git a/release_scripts/linux/debian_package_files/prerm b/release_scripts/linux/debian_package_files/prerm new file mode 100644 index 0000000..5b1612c --- /dev/null +++ b/release_scripts/linux/debian_package_files/prerm @@ -0,0 +1,19 @@ +#!/bin/bash +# -------------------------------------------------------------------- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# --------------------------------------------------------------------- + +xdg-desktop-menu uninstall /usr/share/applications/openboard.desktop +rm -f /usr/bin/openboard +exit 0 diff --git a/release_scripts/linux/package.sh b/release_scripts/linux/package.sh new file mode 100755 index 0000000..c53e308 --- /dev/null +++ b/release_scripts/linux/package.sh @@ -0,0 +1,421 @@ +#!/bin/bash +# -------------------------------------------------------------------- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# --------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Packaging script for OpenBoard, for Debian-compatible distributions. +# +# This should be run after `build.sh`. +# +# The generated package structure is as follows : +# +# DEBIAN/ +# | control +# | md5sums +# | prerm +# | postinst +# usr/ +# | bin/ +# | | openboard <-- actually a symlink to run.sh or OpenBoard +# | share/ +# | | applications/ +# | | | openboard.desktop +# opt/ +# | openboard/ +# | | importer/ +# | | library/ +# | | etc/ +# | | qtlib/ (*) +# | | plugins/ (*) +# | | OpenBoard +# | | OpenBoard.png +# | | run.sh (*) +# +# (*) Only included if Qt libs and plugins are bundled. It is necessary to +# bundle these if the target system doesn't provide Qt 5.5.1, for example. +# ---------------------------------------------------------------------------- + +initializeVariables() +{ + # This script's path + SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + + PROJECT_ROOT="$SCRIPT_PATH/../.." + + # Where the application was built (see build.sh) + BUILD_DIR="$PROJECT_ROOT/build/linux/release" + PRODUCT_PATH="$BUILD_DIR/product" + IMPORTER_DIR="$PROJECT_ROOT/../OpenBoard-Importer/" + IMPORTER_NAME="OpenBoardImporter" + + # Where the package is built to + PACKAGE_BUILD_DIR="$PROJECT_ROOT/install" + + # Temporary folder, where we put all the files that will be built into the + # package + BASE_WORKING_DIR="debianPackage" + + APPLICATION_NAME="OpenBoard" + APPLICATION_CODE="openboard" + APPLICATION_PATH="opt" + + PACKAGE_DIRECTORY=$BASE_WORKING_DIR/$APPLICATION_PATH/$APPLICATION_CODE + QT_PLUGINS_DEST_PATH="$PACKAGE_DIRECTORY/plugins" + QT_LIBRARY_DEST_PATH="$PACKAGE_DIRECTORY/qtlib" + + DESKTOP_FILE_PATH="$BASE_WORKING_DIR/usr/share/applications" + APPLICATION_SHORTCUT="$DESKTOP_FILE_PATH/${APPLICATION_CODE}.desktop" + + DESCRIPTION="OpenBoard, an interactive white board application" + VERSION=`cat $BUILD_DIR/version` + ARCHITECTURE=`cat buildContext` + + + # Include Qt libraries and plugins in the package, or not + # (this is necessary if the target system doesn't provide Qt 5.5.1) + BUNDLE_QT=true + + # Qt installation path. This may vary across machines + QT_PATH="/home/dev/Qt/5.15.0/gcc_64" + QT_PLUGINS_SOURCE_PATH="$QT_PATH/plugins" + GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" + QT_LIBRARY_SOURCE_PATH="$QT_PATH/lib" + + NOTIFY_CMD=`which notify-send` + ZIP_PATH=`which zip` +} + +checkUser() +{ + if [ `id -u` -ne 0 ]; then + echo "Please run the script as root" + exit 1 + fi +} + +checkBuild() +{ + if [ -z "$ARCHITECTURE" ]; then + echo "Make sure you have built the software first using ./build.sh" + exit 1 + fi +} + +notifyError(){ + if [ -e "$NOTIFY_CMD" ]; then + $NOTIFY_CMD -t 0 -i "/usr/share/icons/oxygen/64x64/status/dialog-error.png" "$1" + fi + printf "\033[31merror:\033[0m $1\n" + exit 1 +} + +notifyProgress(){ + if [ -e "$NOTIFY_CMD" ]; then + $NOTIFY_CMD "$1" "$2" + fi + printf "\033[32m--> \033[0m $1:\n\t$2\n" +} + +copyQtLibrary(){ + echo -e "\t $1" + if ls "$QT_LIBRARY_SOURCE_PATH/$1.so" &> /dev/null; then + cp -P $QT_LIBRARY_SOURCE_PATH/$1.so "$QT_LIBRARY_DEST_PATH/" + cp -P $QT_LIBRARY_SOURCE_PATH/$1.so.* "$QT_LIBRARY_DEST_PATH/" + + strip $QT_LIBRARY_DEST_PATH/$1.so + chmod 644 $QT_LIBRARY_DEST_PATH/$1.so.* # 644 = rw-r-r + else + notifyError "$1 library not found in path: $QT_LIBRARY_SOURCE_PATH" + fi +} + +copyQtPlugin(){ + echo -e "\t $1" + if ls "$QT_PLUGINS_SOURCE_PATH/$1" &> /dev/null; then + cp -r $QT_PLUGINS_SOURCE_PATH/$1 $QT_PLUGINS_DEST_PATH/ + + strip $QT_PLUGINS_DEST_PATH/$1/* + chmod 644 $QT_PLUGINS_DEST_PATH/$1/* # 644 = rw-r-r + chmod +rx $QT_PLUGINS_DEST_PATH/$1 + + else + notifyError "$1 plugin not found in path: $QT_PLUGINS_SOURCE_PATH" + fi +} + + +# ---------------------------------------------------------------------------- +# Copying the application, libs etc. to the temporary working directory +# ---------------------------------------------------------------------------- + + +initializeVariables + +checkBuild +checkUser + +cd $PROJECT_ROOT + +rm -rf $PACKAGE_DIRECTORY +mkdir -p $PACKAGE_DIRECTORY + +rm -rf $PACKAGE_BUILD_DIR + + +notifyProgress "Copying product directory and resources" +cp -R $PRODUCT_PATH/* $PACKAGE_DIRECTORY +chown -R root:root $PACKAGE_DIRECTORY + +cp -R resources/customizations $PACKAGE_DIRECTORY/ +cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/ + +if $BUNDLE_QT; then + cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/ + chmod a+x $PACKAGE_DIRECTORY/run.sh +fi + +notifyProgress "Copying importer" +mkdir -p $PACKAGE_DIRECTORY/importer +cp -R "$IMPORTER_DIR/$IMPORTER_NAME" "$PACKAGE_DIRECTORY/importer" + +notifyProgress "Stripping importer and main executable" +strip $PACKAGE_DIRECTORY/$APPLICATION_NAME +strip $PACKAGE_DIRECTORY/importer/$IMPORTER_NAME + +if $BUNDLE_QT; then + notifyProgress "Copying and stripping Qt plugins" + mkdir -p $QT_PLUGINS_DEST_PATH + copyQtPlugin audio + copyQtPlugin bearer + copyQtPlugin generic + copyQtPlugin iconengines + copyQtPlugin imageformats + copyQtPlugin mediaservice + copyQtPlugin platforminputcontexts + copyQtPlugin platforms + copyQtPlugin platformthemes + copyQtPlugin position + copyQtPlugin printsupport + #copyQtPlugin qtwebengine + copyQtPlugin sceneparsers + copyQtPlugin xcbglintegrations + + notifyProgress "Copying and stripping Qt libraries" + mkdir -p $QT_LIBRARY_DEST_PATH + copyQtLibrary libQt5Core + copyQtLibrary libQt5DBus + copyQtLibrary libQt5Gui + copyQtLibrary libQt5Multimedia + copyQtLibrary libQt5MultimediaGstTools + copyQtLibrary libQt5MultimediaWidgets + copyQtLibrary libQt5Network + copyQtLibrary libQt5OpenGL + copyQtLibrary libQt5Positioning + copyQtLibrary libQt5PrintSupport + copyQtLibrary libQt5Qml + copyQtLibrary libQt5QmlModels + copyQtLibrary libQt5Quick + copyQtLibrary libQt5Sensors + copyQtLibrary libQt5Sql + copyQtLibrary libQt5Svg + copyQtLibrary libQt5WebChannel + copyQtLibrary libQt5WebKit + copyQtLibrary libQt5WebKitWidgets + copyQtLibrary libQt5WebSockets + copyQtLibrary libQt5Widgets + copyQtLibrary libQt5XcbQpa + copyQtLibrary libQt5Xml + copyQtLibrary libQt5XmlPatterns + copyQtLibrary libicuuc + copyQtLibrary libicui18n + copyQtLibrary libicudata +fi + +notifyProgress "Copying Qt translations" +mkdir -p $PACKAGE_DIRECTORY/i18n +cp $GUI_TRANSLATIONS_DIRECTORY_PATH/qt_??.qm $PACKAGE_DIRECTORY/i18n/ + + +# ---------------------------------------------------------------------------- +# DEBIAN directory of package (control, md5sums, postinst etc) +# ---------------------------------------------------------------------------- +notifyProgress "Generating control files for package" + +mkdir -p "$BASE_WORKING_DIR/DEBIAN" + +# Copy prerm script +cp -r "$SCRIPT_PATH/debian_package_files/prerm" "$BASE_WORKING_DIR/DEBIAN/" +chmod 755 "$BASE_WORKING_DIR/DEBIAN/prerm" + +# Generate postinst script (can't copy it like prerm because some paths vary depending on +# the values of the variables in this script) + +SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/$APPLICATION_NAME" +if $BUNDLE_QT ; then + SYMLINK_TARGET="/$APPLICATION_PATH/$APPLICATION_CODE/run.sh" +fi + +cat > "$BASE_WORKING_DIR/DEBIAN/postinst" << EOF +#!/bin/bash +# -------------------------------------------------------------------- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# --------------------------------------------------------------------- + +xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_CODE}.desktop +xdg-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml +xdg-mime default /usr/share/applications/${APPLICATION_CODE}.desktop application/ubz + +ln -s $SYMLINK_TARGET /usr/bin/$APPLICATION_CODE + +exit 0 +EOF + +chmod 755 "$BASE_WORKING_DIR/DEBIAN/postinst" + + +# Generate md5 sums of everything in the application path (e.g /opt) and the desktop entry +cd $BASE_WORKING_DIR +find $APPLICATION_PATH/ -exec md5sum {} > DEBIAN/md5sums 2>/dev/null \; +find $DESKTOP_FILE_PATH/ -exec md5sum {} >> DEBIAN/md5sums 2>/dev/null \; +cd $PROJECT_ROOT + +# Generate control file +CONTROL_FILE="$BASE_WORKING_DIR/DEBIAN/control" + +echo "Package: ${APPLICATION_CODE}" > "$CONTROL_FILE" +echo "Version: $VERSION" >> "$CONTROL_FILE" +echo "Section: education" >> "$CONTROL_FILE" +echo "Priority: optional" >> "$CONTROL_FILE" +echo "Architecture: $ARCHITECTURE" >> "$CONTROL_FILE" +echo "Essential: no" >> "$CONTROL_FILE" +echo "Installed-Size: `du -s $PACKAGE_DIRECTORY | awk '{ print $1 }'`" >> "$CONTROL_FILE" +echo "Maintainer: ${APPLICATION_NAME} Developers team " >> "$CONTROL_FILE" +echo "Homepage: https://github.com/DIP-SEM/OpenBoard" >> "$CONTROL_FILE" + +# Generate dependency list +echo -n "Depends: " >> "$CONTROL_FILE" + +unset tab +declare -a tab +let count=0 + +if $BUNDLE_QT; then + for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do + for lib in `dpkg -S $l | grep -v "libqt5" | grep -v "qt55" | awk -F":" '{ print $1 }'`; do + presence=`echo ${tab[*]} | grep -c "$lib"`; + if [ "$presence" == "0" ]; then + if [ "$lib" != "openboard" ]; then + echo "adding $lib to needed dependencies" + tab[$count]=$lib; + ((count++)); + fi; + fi; + done; + done; +else + for l in `objdump -p $PACKAGE_DIRECTORY/${APPLICATION_NAME} | grep NEEDED | awk '{ print $2 }'`; do + for lib in `dpkg -S $l | awk -F":" '{ print $1 }'`; do + presence=`echo ${tab[*]} | grep -c "$lib"`; + if [ "$presence" == "0" ]; then + tab[$count]=$lib; + ((count++)); + fi; + done; + done; +fi + + +for ((i=0;i<${#tab[@]};i++)); do + if [ $i -ne "0" ]; then + echo -n ", " >> "$CONTROL_FILE" + fi + # conditional dependency when libavcodec is found + depdVer=$(apt-cache show ${tab[$i]} | grep "Version: " | head -1 | awk '{ print $2 }' | sed -e 's/\([~:. 0-9?]*\).*/\1/g' | sed -e 's/\.$//') + if [[ "${tab[$i]}" == *"libavcodec"* ]]; then + depName="${tab[$i]::-2}" + versionNumber="${tab[$i]: -2}" + depdVer_part1=`echo ${depdVer} | awk -F'.' '{print $1}'` + depdVer_part2=`echo ${depdVer} | awk -F'.' '{print $2}'` + echo -n "${depName}${versionNumber} (>= ${depdVer_part1}.${depdVer_part2}) | ${depName}-extra${versionNumber} (>= ${depdVer_part1}.${depdVer_part2})" >> "$CONTROL_FILE" + else + echo -n "${tab[$i]} (>= ${depdVer})" >> "$CONTROL_FILE" + fi +done +echo -n ", onboard" >> "$CONTROL_FILE" + +if $BUNDLE_QT; then + # Listing some dependencies manually; ideally we should use dpkg -p recursively + # to get the dependencies of the bundled shared libs & plugins. Or use static libs. + echo -n ", libxcb1" >> "$CONTROL_FILE" + echo -n ", libxcb-icccm4" >> "$CONTROL_FILE" + echo -n ", libxcb-xkb1" >> "$CONTROL_FILE" + echo -n ", libxcb-image0" >> "$CONTROL_FILE" + echo -n ", libxcb-render-util0" >> "$CONTROL_FILE" + echo -n ", libxcb-xinerama0" >> "$CONTROL_FILE" +else + echo -n ", libqt5multimedia5-plugins" >> "$CONTROL_FILE" +fi + +echo "" >> "$CONTROL_FILE" +echo "Description: $DESCRIPTION" >> "$CONTROL_FILE" + +# ---------------------------------------------------------------------------- +# .desktop file +# ---------------------------------------------------------------------------- +mkdir -p $DESKTOP_FILE_PATH +echo "[Desktop Entry]" > $APPLICATION_SHORTCUT +echo "Version=$VERSION" >> $APPLICATION_SHORTCUT +echo "Encoding=UTF-8" >> $APPLICATION_SHORTCUT +echo "Name=${APPLICATION_NAME}" >> $APPLICATION_SHORTCUT +echo "Comment=$DESCRIPTION" >> $APPLICATION_SHORTCUT +echo "Exec=$APPLICATION_CODE %f" >> $APPLICATION_SHORTCUT +echo "Icon=/$APPLICATION_PATH/$APPLICATION_CODE/${APPLICATION_NAME}.png" >> $APPLICATION_SHORTCUT +echo "StartupNotify=true" >> $APPLICATION_SHORTCUT +echo "Terminal=false" >> $APPLICATION_SHORTCUT +echo "Type=Application" >> $APPLICATION_SHORTCUT +echo "MimeType=application/ubz" >> $APPLICATION_SHORTCUT +echo "Categories=Education;" >> $APPLICATION_SHORTCUT +cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png" + + + +# ---------------------------------------------------------------------------- +# Building the package +# ---------------------------------------------------------------------------- +notifyProgress "Building package" +mkdir -p "$PACKAGE_BUILD_DIR/linux" +PACKAGE_NAME="${APPLICATION_NAME}_`lsb_release -is`_`lsb_release -rs`_${VERSION}_$ARCHITECTURE.deb" +PACKAGE_NAME=`echo "$PACKAGE_NAME" | awk '{print tolower($0)}'` + +dpkg -b "$BASE_WORKING_DIR" "$PACKAGE_BUILD_DIR/linux/$PACKAGE_NAME" + +#clean up mess +rm -rf $BASE_WORKING_DIR + +notifyProgress "${APPLICATION_NAME}" "Package built" + + +exit 0 diff --git a/release_scripts/osx/OpenBoard.packproj b/release_scripts/osx/OpenBoard.packproj new file mode 100644 index 0000000..6aa13a5 --- /dev/null +++ b/release_scripts/osx/OpenBoard.packproj @@ -0,0 +1,563 @@ + + + + + Hierarchy + + Attributes + + Documents + + Background Image + + IFPkgFlagBackgroundAlignment + 4 + IFPkgFlagBackgroundScaling + 1 + Mode + 0 + Path + + Path Type + 1 + + License + + International + + Mode + 1 + Path + LICENSE + Path Type + 2 + + + ReadMe + + International + + Mode + 0 + Path + + Path Type + 1 + + + Welcome + + International + + Mode + 0 + Path + + Path Type + 1 + + + + Files + + Compress + + Hierarchy + + Children + + + Children + + + Children + + GID + 80 + Path + build/macx/release/product/OpenBoard.app + Path Type + 2 + Privileges + 493 + Type + 3 + UID + 0 + + + Children + + GID + 80 + Path + Utilities + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + GID + 80 + Path + Applications + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + + Children + + GID + 80 + Path + Application Support + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Documentation + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Filesystems + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Frameworks + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Internet Plug-Ins + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + PreferencePanes + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Preferences + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Printers + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + QuickTime + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + Children + + GID + 80 + Path + Scripts + Path Type + 1 + Privileges + 509 + Type + 1 + UID + 0 + + + GID + 80 + Path + Library + Path Type + 1 + Privileges + 1021 + Type + 1 + UID + 0 + + + Children + + + Children + + + Children + + GID + 0 + Path + Extensions + Path Type + 1 + Privileges + 493 + Type + 1 + UID + 0 + + + GID + 0 + Path + Library + Path Type + 1 + Privileges + 493 + Type + 1 + UID + 0 + + + GID + 0 + Path + System + Path Type + 1 + Privileges + 493 + Type + 1 + UID + 0 + + + GID + 80 + Path + / + Path Type + 1 + Privileges + 1021 + Type + 1 + UID + 0 + + IFPkgFlagDefaultLocation + /Applications + Imported Package + + Package Path + + Split Forks + + + Plugins + + PluginsList + + + Path + Introduction + Type + 0 + + + Path + ReadMe + Type + 0 + + + Path + License + Type + 0 + + + Path + Target + Type + 0 + + + Path + PackageSelection + Type + 0 + + + Path + Install + Type + 0 + + + Path + FinishUp + Type + 0 + + + + Scripts + + Additional Resources + + International + + + Installation Scripts + + IFInstallationScriptsPostflight + + Path + + Status + + + IFInstallationScriptsPostinstall + + Path + + Path Type + 2 + Status + + + IFInstallationScriptsPostupgrade + + Path + + Status + + + IFInstallationScriptsPreflight + + Path + + Status + + + IFInstallationScriptsPreinstall + + Path + + Status + + + IFInstallationScriptsPreupgrade + + Path + + Status + + + + Requirements + + + Settings + + Description + + International + + IFPkgDescriptionDeleteWarning + + IFPkgDescriptionDescription + OpenBoard is an hardware independent interactive whiteboard + IFPkgDescriptionTitle + OpenBoard + IFPkgDescriptionVersion + 1.40.b.00 + + + Display Information + + CFBundleGetInfoString + OpenBoard 1.0 Copyrights © 2013 OpenBoard + CFBundleIconFile + resources/macx/OpenBoardDmg.icns + CFBundleIconFile Path Type + 2 + CFBundleIdentifier + org.OpenBoard.pkg.OpenBoard + CFBundleName + OpenBoard + CFBundleShortVersionString + 1.40.b.00 + + Options + + IFPkgFlagAllowBackRev + + IFPkgFlagAuthorizationAction + 0 + IFPkgFlagFollowLinks + + IFPkgFlagIsRequired + + IFPkgFlagOverwritePermissions + + IFPkgFlagRelocatable + + IFPkgFlagRestartAction + 0 + IFPkgFlagRootVolumeOnly + + IFPkgFlagUpdateInstalledLanguages + + + Version + + IFMajorVersion + 1 + IFMinorVersion + 40 + + + + IFPkgFlagPackageSelection + 0 + Name + OpenBoard + Status + 1 + Type + 1 + + Name + Project + Settings + + 10.1 Compatibility + + Build Path + install/mac + Build Path Type + 2 + Comment + + Remove .DS_Store + + Remove .pbdevelopment + + Remove CVS + + + + diff --git a/release_scripts/osx/refnum/dmgutil.pl b/release_scripts/osx/refnum/dmgutil.pl new file mode 100644 index 0000000..3d25024 --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil.pl @@ -0,0 +1,728 @@ +#!/usr/bin/perl -w +#============================================================================ +# NAME: +# dmgutil.pl +# +# DESCRIPTION: +# Disk image creation utility. +# +# COPYRIGHT: +# Copyright (c) 2006-2008, refNum Software +# +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# o Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# o Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# o Neither the name of refNum Software nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================ +# Imports +#---------------------------------------------------------------------------- +use strict; +use Getopt::Long; + + + + + +#============================================================================ +# Constants +#---------------------------------------------------------------------------- +my $kLogging = "-quiet"; + +my $Rez = "/Developer/Tools/Rez"; +my $SetFile = "/Developer/Tools/SetFile"; + +my $kManPage = <$theFile") or die "Can't open $theFile for writing: $!\n"; + print OUTPUT $theScript; + close(OUTPUT); + + + + # And execute it + system("osascript", $theFile); + unlink($theFile); +} + + + + + +#============================================================================ +# isVolume : Is a path to the root of a volume? +#---------------------------------------------------------------------------- +sub isVolume +{ + + + # Retrieve our parameters + my ($thePath) = @_; + + + + # Check the state + # + # After stripping out the leading /Volumes, any further slashes + # indicate we have a folder rather than a volume. + $thePath =~ s/\/Volumes\///; + + my $isVolume = ($thePath =~ /.*\/.*/) ? 0 : 1; + + return($isVolume); +} + + + + + +#============================================================================ +# setFolderState : Set the state for a folder. +#---------------------------------------------------------------------------- +sub setFolderState +{ + + + # Retrieve our parameters + my ($thePath, $iconSize, $flagToolbar, $bgImage, $bgColor) = @_; + + + + # Initialise ourselves + my $cmdBackground = ""; + my $cmdIconSize = ""; + my $cmdToolbar = ""; + + + + # Prepare the background + # + # As of 10.5, the Finder refuses to manipulate files whose names start with + # a period (rdar://5582578). As such we need to use an underscore for the + # image, then make it invisible using SetFile. + if (-f $bgImage) + { + $bgImage =~ /.*\.(\w+)/; + my $dstImage = "$thePath/_Background.$1"; + + `cp "$bgImage" "$dstImage"`; + + $cmdBackground .= "set theImage to posix file \"$dstImage\"\n"; + $cmdBackground .= " set background picture of theOptions to theImage\n"; + $cmdBackground .= " do shell script \"/Developer/Tools/SetFile -a V '$dstImage'\"\n"; + } + + elsif ($bgColor ne "") + { + $cmdBackground = "set background color of theOptions to {$bgColor} as RGB color"; + } + + + + # Prepare the icon size + if ($iconSize != 0) + { + $cmdIconSize = "set icon size of theOptions to $iconSize"; + } + + + + # Prepare the toolbar + # + # The window must be made visible in order to change the toolbar state. + if ($flagToolbar ne "") + { + $cmdToolbar = " open theWindow \n"; + $cmdToolbar .= " set toolbar visible of theWindow to $flagToolbar \n"; + $cmdToolbar .= " close theWindow \n"; + } + + + + # Identify the target + # + # AppleScript requires the correct nomenclature for the target item. + my $theTarget = "folder \"$thePath\""; + + if (isVolume($thePath)) + { + $theTarget =~ s/folder "\/Volumes\//disk "/; + } + + + + # Set the folder state + # + # Once a change has been made, it must be flushed to disk with update. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= " set theWindow to window of theTarget \n"; + $theScript .= "\n"; + $theScript .= " set current view of theWindow to icon view \n"; + $theScript .= " set theOptions to icon view options of theWindow \n"; + $theScript .= " set arrangement of theOptions to not arranged \n"; + $theScript .= "\n"; + $theScript .= " $cmdBackground\n"; + $theScript .= " $cmdIconSize \n"; + $theScript .= " $cmdToolbar \n"; + $theScript .= "\n"; + $theScript .= " update theTarget\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# setCustomIcon : Set a custom icon. +#---------------------------------------------------------------------------- +sub setCustomIcon +{ + + + # Retrieve our parameters + my ($thePath, $theIcon) = @_; + + + + # Validate our state + # + # We require several tools inside /Developer/Tools. + die("Setting an icon requires $Rez") if (! -e $Rez); + die("Setting an icon requires $SetFile") if (! -e $SetFile); + + + + # Prepare the flags + # + # Prior to Mac OS X 10.4, SetFile can only set an attribute if it is + # first cleared (rdar://3738867). + my $sysVers = `uname -r`; + my $setHidden = ($sysVers =~ /^[0-7]\./) ? "vV" : "V"; + my $setIcon = ($sysVers =~ /^[0-7]\./) ? "cC" : "C"; + + + + # Set a volume icon + # + # Volume custom icons are contained in a .VolumeIcon.icns file. + if (isVolume($thePath)) + { + my $iconFile = "$thePath/.VolumeIcon.icns"; + + `cp "$theIcon" "$iconFile"`; + + `$SetFile -a $setHidden "$iconFile"`; + `$SetFile -a $setIcon "$thePath"`; + } + + + # Set a folder icon + # + # Folder custom icons are contained in an ('icns', -16455) resource, + # placed in an invisible "Icon\r" file inside the folder. + elsif (-d $thePath) + { + my $iconFile = "$thePath/Icon\r"; + my $tmpR = "/tmp/dmgutil.r"; + + `echo "read 'icns' (-16455) \\"$theIcon\\";\n" > $tmpR`; + `cd /tmp; $Rez dmgutil.r -append -o "$iconFile"`; + + `$SetFile -a $setHidden "$iconFile"`; + `$SetFile -a $setIcon "$thePath"`; + + unlink($tmpR); + } + + + # Set a file icon + # + # File custom icons are contained in an ('icns', -16455) resource. + else + { + my $tmpR = "/tmp/dmgutil.r"; + + `echo "read 'icns' (-16455) \\"$theIcon\\";\n" > $tmpR`; + `cd /tmp; $Rez dmgutil.r -append -o "$thePath"`; + + `$SetFile -a $setIcon "$thePath"`; + + unlink($tmpR); + } +} + + + + + +#============================================================================ +# setWindowPos : Set the position of a window. +#---------------------------------------------------------------------------- +sub setWindowPos +{ + + + # Retrieve our parameters + my ($thePath, $posX, $posY, $theWidth, $theHeight) = @_; + + + + # Initialise ourselves + my $bottom = $posY + $theHeight; + my $right = $posX + $theWidth; + + + + # Identify the target + # + # AppleScript requires the correct nomenclature for the target item. + my $theTarget = "folder \"$thePath\""; + + if (isVolume($thePath)) + { + $theTarget =~ s/folder "\/Volumes\//disk "/; + } + + + + # Set the window position + # + # In theory, the "set bounds" command is all that should be necessary + # to set the bounds of a Finder window. + # + # Unfortunately, under 10.4 this will result in a window that will be + # taller than the specified size when the window is next opened. + # + # To reliably set the bounds of a window we must open the window, show + # the status bar, and set the window bounds to be 20 pixels taller (the + # height of the status bar) than necessary. + # + # The status bar can then be hidden, the window closed, and the bounds + # bounds will be the desired size when the window is next opened. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= " set theWindow to window of theTarget \n"; + $theScript .= "\n"; + $theScript .= " open theWindow \n"; + $theScript .= " set statusbar visible of theWindow to true \n"; + $theScript .= " set bounds of theWindow to {$posX, $posY, $right, $bottom+20} \n"; + $theScript .= " set statusbar visible of theWindow to false \n"; + $theScript .= " close theWindow \n"; + $theScript .= "\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# setIconPos : Set the position of an icon. +#---------------------------------------------------------------------------- +sub setIconPos +{ + + + # Retrieve our parameters + my ($theFile, $posX, $posY) = @_; + + + + # Identify the target + # + # Since the 'posix file' command follows symlinks, in order to set the + # position of a symlink (vs its target) we need to use an HFS path and + # reference it as a file rather than an alias. + my $theTarget = "alias (posix file \"$theFile\")"; + + if (-l $theFile) + { + $theTarget = $theFile; + + $theTarget =~ s/\/Volumes\///; + $theTarget =~ s/\//:/g; + $theTarget = "file \"$theTarget\""; + } + + + + # Set the icon position + # + # Once a change has been made, it must be flushed to disk with update. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= "\n"; + $theScript .= " set position of theTarget to {$posX, $posY} \n"; + $theScript .= " update theTarget\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# doOpen : Open a new disk image. +#---------------------------------------------------------------------------- +sub doOpen +{ + + + # Retrieve our parameters + my ($dmgFile, $volName) = @_; + + + + # Clean up any previous image + system("rm", "-f", "$dmgFile.sparseimage"); + system("rm", "-f", "$dmgFile"); + + + + # Create the image + # + # A large sparse disk image is created, which will be shrunk down + # and compressed when the disk image is finally closed. + print " creating $dmgFile\n" if ($kLogging eq "-quiet"); + + system("hdiutil", "create", $dmgFile, + "-volname", $volName, + "-megabytes", "1000", + "-type", "SPARSE", + "-fs", "HFS+", + $kLogging); + + system("hdiutil", "mount", $kLogging, "$dmgFile.sparseimage"); +} + + + + + +#============================================================================ +# doClose : Close a disk image. +#---------------------------------------------------------------------------- +sub doClose +{ + + + # Retrieve our parameters + my ($dmgFile, $volName) = @_; + + + + # Bless the volume + # + # Blessing the volume ensures that the volume always opens in the current + # view, overriding the user's "Open new windows in column view" preference. + system("bless", "--openfolder", "/Volumes/$volName"); + + + + # Compress the image + # + # On 10.5, the disk image must be ejected rather than unmounted to allow + # it to be converted from a sparse image to a compressed image. + print " compressing $dmgFile\n" if ($kLogging eq "-quiet"); + + system("hdiutil", "eject", $kLogging, "/Volumes/$volName"); + + system("hdiutil", "convert", "$dmgFile.sparseimage", + "-format", "UDZO", + "-o", $dmgFile, + "-imagekey", "zlib-level=9", + $kLogging); + + + + # Clean up + system("rm", "-f", "$dmgFile.sparseimage"); +} + + + + + +#============================================================================ +# doSet : Set a file/folder state. +#---------------------------------------------------------------------------- +sub doSet +{ + + + # Retrieve our parameters + my ($thePath, $posX, $posY, $theWidth, $theHeight, $iconSize, $theIcon, $bgImage, $bgColor, $flagToolbar) = @_; + + + + # Set the custom icon + if ($theIcon ne "") + { + setCustomIcon($thePath, $theIcon); + } + + + + # Set the folder state + if ($iconSize != 0 || $bgImage ne "" || $bgColor ne "" || $flagToolbar ne "") + { + setFolderState($thePath, $iconSize, $flagToolbar, $bgImage, $bgColor); + } + + + + # Set the position + # + # Window position must be set after applying the folder state. + if ($posX != 0 && $posY != 0) + { + if ($theWidth != 0 && $theHeight != 0) + { + setWindowPos($thePath, $posX, $posY, $theWidth, $theHeight); + } + else + { + setIconPos($thePath, $posX, $posY); + } + } +} + + + + + +#============================================================================ +# dmgUtil : Manipulate a disk image. +#---------------------------------------------------------------------------- +sub dmgUtil +{ + + + # Retrieve our parameters + my ($doOpen, $doClose, $doSet) = (0, 0, 0); + my ($posX, $posY, $theWidth, $theHeight, $iconSize) = (0, 0, 0, 0, 0); + my ($volName, $theIcon, $bgImage, $bgColor, $flagToolbar) = ("", "", "", "", ""); + + GetOptions( "--open+", => \$doOpen, + "--close+", => \$doClose, + "--set+", => \$doSet, + "--volume=s", => \$volName, + "--x=i", => \$posX, + "--y=i", => \$posY, + "--width=i", => \$theWidth, + "--height=i", => \$theHeight, + "--iconsize=i", => \$iconSize, + "--icon=s", => \$theIcon, + "--background=s", => \$bgImage, + "--bgcol=s", => \$bgColor, + "--toolbar=s", => \$flagToolbar); + + my ($thePath) = @ARGV; + + $thePath = "" if (!defined($thePath)); + + + + # Perform the action + if ($doOpen && $thePath ne "" && $volName ne "") + { + doOpen($thePath, $volName); + } + + elsif ($doClose && $thePath ne "" && $volName ne "") + { + doClose($thePath, $volName); + } + + elsif ($doSet && $thePath ne "") + { + doSet($thePath, $posX, $posY, $theWidth, $theHeight, $iconSize, $theIcon, $bgImage, $bgColor, $flagToolbar); + } + + else + { + print $kManPage; + } +} + + + + + +#============================================================================ +# Script entry point +#---------------------------------------------------------------------------- +dmgUtil(); diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/index.html b/release_scripts/osx/refnum/dmgutil/Documentation/index.html new file mode 100644 index 0000000..ee7f8f4 --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/Documentation/index.html @@ -0,0 +1,145 @@ + + + + refNum › dmgutil + + + + + + + + + + + + + + +

+ + + + +
+
+
+
+ + + + + + + + +
+ + + + + +

dmgutil

+

+dmgutil is a command line tool for creating, configuring, and compressing Mac OS X +disk images for distribution. +

+ +

+dmgutil allows you to automate your build process, preparing a release without pre-existing +templates or user interaction. +

+ +

+dmgutil can adjust the size, position, and appearance of Finder windows. It can also apply +custom icons to volumes, folders, or files and assign a license agreement. +

+ +
+Download +  +GitHub +
+ + + + + +

Using dmgutil

+

+To create a new disk image for your "MyApp 1.0" release, invoke dmgutil as: +

+ +
dmgutil.pl --open --volume="MyApp 1.0" myapp_1.0.dmg +
+ +

+Once the disk image has been populated with files, invoke dmgutil to configure it: +

+ +
dmgutil.pl --set --iconsize=128 --background=flowers.jpg "/Volumes/MyApp 1.0" +dmgutil.pl --set --x=20 --y=60 --width=300 --height=200 "/Volumes/MyApp 1.0" +
+ +

+You can also use dmgutil to set the position of file or folder icons within the window: +

+ +
dmgutil.pl --set --x=100 --y=100 "/Volumes/MyApp 1.0/Read Me.rtf" +dmgutil.pl --set --x=200 --y=100 "/Volumes/MyApp 1.0/MyApp.app" +
+ +

+dmgutil can also adjust the background color or toolbar visibility of the window, and +apply custom icons to the volume or its contents. +

+ +

+Once the volume has been prepared, compress the disk image with: +

+ +
dmgutil.pl --close --volume="MyApp 1.0" myapp_1.0.dmg +
+ +

+By invoking dmgutil from a post-build shell script, builds can be automatically converted +into a user-friendly disk image for distribution. +

+ + + + + +
+ + + +
+
+ +
+ + + + + + + + diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/licence.html b/release_scripts/osx/refnum/dmgutil/Documentation/licence.html new file mode 100644 index 0000000..db3482f --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/Documentation/licence.html @@ -0,0 +1,124 @@ + + + + refNum › dmgutil › Licence + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ + + + + + + + +
+ + + + + +

Licence

+

+dmgutil is distributed under the Open Source BSD licence: +

+ +
+

+dmgutil is Copyright © 2006-2010, refNum Software
+All rights reserved. +

+ +

+Redistribution and use in source and binary forms, with or without modification, are permitted +provided that the following conditions are met: +

+ +
    +
  • Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer.
  • + +
  • Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution.
  • + +
  • Neither the name of refNum Software, Nano, nor the names of its contributors may be + used to endorse or promote products derived from this software without specific prior + written permission.
  • +
+ +

+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +

+
+ +

+This licence allows usage in both Open Source and commercial software, and does not require any +reciprocal licencing or release of source code when incorporated into commercial software. +

+ + + + + +
+ + + +
+
+ +
+ + + + + + + + diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/css/refnum.css b/release_scripts/osx/refnum/dmgutil/Documentation/src/css/refnum.css new file mode 100644 index 0000000..0f5923d --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/Documentation/src/css/refnum.css @@ -0,0 +1,380 @@ +/* Global */ +html { + overflow-y: scroll; +} +body { + background: #600d0d url("../img/background.jpg") no-repeat fixed center top; + font: 12px "Lucida Grande", "Arial", sans-serif; +} + +#content { + width: 820px; + min-height: 500px; + margin: 75px auto 10px auto; +} + +#footer { + color: #eeeeee; + font: 9px "Monaco", "Courier", monospace; + text-align: center; + text-shadow: #444444 0px 2px 2px; +} + +#footer a { + color: #eeeeee; + border-bottom: none; + text-decoration: none; +} + +.caption { + color: #cccccc; + font: italic 11px "Lucida Grande", "Arial", sans-serif; +} + +h1, h2, h3, h4, h5 { + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.05); +} + +a img { border: none; } +a:focus { outline: none; } +a:link { border-bottom: 1px dotted; text-decoration: none; } +a:visited { border-bottom: 1px dotted; text-decoration: none; } +a:active { border-bottom: 1px dotted; text-decoration: none; } +a:hover { border-bottom: 1px dotted; text-decoration: none; } +a.plain { border-bottom: none; } + +h1 { font-size: x-large; } +h2 { font-size: large; } +h3 { font-size: medium; } +h4 { font-size: small; } +h5 { font-size: x-small; } +h6 { font-size: xx-small; } + + + + + +/* Navigation */ +#nav { + width: 820px; + height: 45px; + margin-top: 20px; + margin-bottom: 10px; +} + +#nav_bar { + float: right; + padding-right: 15px; +} + +#nav a { + display: -moz-inline-stack; + display: inline-block; + height: 45px; + border-bottom: none; +} + +#nav a#apps { width:78px; } +#nav a#apps { background-image:url("../img/nav_apps_normal.png"); } +#nav a#apps:hover { background-image:url("../img/nav_apps_hover.png"); } +#nav a#apps.selected { background-image:url("../img/nav_apps_selected.png"); } + +#nav a#projects { width:90px; } +#nav a#projects { background-image:url("../img/nav_projects_normal.png"); } +#nav a#projects:hover { background-image:url("../img/nav_projects_hover.png"); } +#nav a#projects.selected { background-image:url("../img/nav_projects_selected.png"); } + +#nav a#contact { width:86px; } +#nav a#contact { background-image:url("../img/nav_contact_normal.png"); } +#nav a#contact:hover { background-image:url("../img/nav_contact_hover.png"); } +#nav a#contact.selected { background-image:url("../img/nav_contact_selected.png"); } + +#nav a#dev { width:78px; } +#nav a#dev { background-image:url("../img/nav_dev_normal.png"); } +#nav a#dev:hover { background-image:url("../img/nav_dev_hover.png"); } +#nav a#dev.selected { background-image:url("../img/nav_dev_selected.png"); } + + + + + +/* Menu */ +#menu { + margin: 0px; + padding: 0px; + width: 140px; + font-size: 11px; + line-height: 17px; + list-style-type: none; +} + +#menu .subtitle { + margin-top: 10px; + font-weight: bold; + color: #222222; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.05); +} + +#menu a { + color: #444444; + text-decoration: none; + border-bottom: none; +} + +#menu li a:hover, +#menu li a:active { + border-bottom: 1px dotted; + text-decoration: none; +} + + + + + +/* Page */ +#page_strap_frame { + width: 820px; + height: 215px; +} + +#page_strap_content { + width: 820px; + height: 215px; +} + +#page_body { + background: url("../img/page_body.png") repeat-y; + width: 820px; + min-height: 190px; +} + +#page_content { + padding: 5px 40px; +} + +#page_footer { + background: url("../img/page_footer.png"); + width: 820px; + height: 30px; +} + + + + + +/* Home */ +#logo { + width: 440px; + height: 620px; + margin: auto; +} + +#logo_offset { + height: 120px; +} + + + + + +/* Tables */ +table.icons { + border-spacing: 40px 5px; +} + +table.icons td { + vertical-align: top; + text-align: center; + width: 128px; +} + +table.icons img { + width: 128px; + height: 128px; +} + +table.badges { + margin: 40px auto 20px auto; + width: 80%; +} + +table.list_header { + background: #ddddff; + font-weight: bold; + line-height: 200%; + margin: 20px 10px 0px 10px; + padding-left: 10px; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + width: 95%; + + -moz-border-radius-topright: 5px; + -moz-border-radius-topleft: 5px; + + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; +} + +table.list { + background: #eeeeff; + background: -webkit-gradient(linear, left top, left bottom, from(#eeeeff), to(#fcfcff)); + margin: 0px 10px 0px 10px; + padding-left: 10px; + width: 95%; + + -moz-border-radius-bottomright: 5px; + -moz-border-radius-bottomleft: 5px; + + -webkit-border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; +} + +table.list th { + font-weight: normal; + text-align: left; + width: 150px; +} + + + + + +/* Boxes */ +.box { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +.box_image { + border: 1px solid #888888; +} + +.box_button { + text-align: center; + margin: 24px; +} + +.box_code_yellow { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + font-family: monospace; + white-space: pre; + font-size: 12px; + border: 1px solid #bbbbbb; + padding: 10px; + background: #ffffe0; + background: -webkit-gradient(linear, left top, right top, from(#fffff0), to(#fffffd)); +} + +.box_licence { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + font-family: monospace; + font-size: 12px; + background-color: #eeeeff; + border: 1px solid #bbbbbb; + padding: 10px; + background: -webkit-gradient(linear, left top, right top, from(#eeeeff), to(#fefeff)); +} + + + + + +/* Layout */ +.padding20 { + padding: 20px; +} + +.width450 { + width: 450px; + height: auto; +} + + + + + +/* Buttons */ +a.button { + display: inline-block; + height: 23px; + padding: 0 0 0 3px; + font-size: 11px; + font-weight: bold; + color: #333333; + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.9); + background: url('../img/button_thin_cell.png') 0 0 no-repeat; + white-space: nowrap; + border: none; + overflow: visible; + cursor: pointer; + text-decoration: none; +} + +a.button>span { + display: block; + height: 23px; + padding: 0 10px 0 8px; + line-height: 23px; + background: url('../img/button_thin_cell.png') 100% 0 no-repeat; +} + +a.button:hover, +a.button:focus { + color: #ffffff; + text-decoration: none; + text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); + background-position: 0 -30px; +} +a.button:hover>span, +a.button:focus>span { + background-position: 100% -30px; +} + +a.button:active { + background-position: 0 -60px; +} + +a.button:active>span { + background-position: 100% -60px; +} + + +a.icon_download .icon, +a.icon_github .icon { + float: left; + margin-left: -4px; + width: 18px; + height: 22px; + background: url('../img/button_thin_icons.png') 0 0 no-repeat; +} + + +a.icon_download .icon { + background-position: -0px 0; +} + +a.icon_download:hover .icon, +a.icon_download:focus .icon { + background-position: -0px -25px; +} + + +a.icon_github .icon { + background-position: -20px 0; +} + +a.icon_github:hover .icon, +a.icon_github:focus .icon { + background-position: -20px -25px; +} + + + + + + + + + + \ No newline at end of file diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/background.jpg b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/background.jpg new file mode 100644 index 0000000..6d810a3 Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/background.jpg differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_cell.png b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_cell.png new file mode 100644 index 0000000..e69f0eb Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_cell.png differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_icons.png b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_icons.png new file mode 100644 index 0000000..15ca7ef Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/button_thin_icons.png differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_body.png b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_body.png new file mode 100644 index 0000000..e6fbaf8 Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_body.png differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_footer.png b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_footer.png new file mode 100644 index 0000000..f1f1f8f Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_footer.png differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.jpg b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.jpg new file mode 100644 index 0000000..81a576c Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.jpg differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.png b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.png new file mode 100644 index 0000000..5424b89 Binary files /dev/null and b/release_scripts/osx/refnum/dmgutil/Documentation/src/img/page_strap_dmgutil.png differ diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/src/js/refnum.js b/release_scripts/osx/refnum/dmgutil/Documentation/src/js/refnum.js new file mode 100644 index 0000000..cf70b43 --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/Documentation/src/js/refnum.js @@ -0,0 +1,34 @@ +function loadImage(theURL) +{ + theImage = new Image; + theImage.src = theURL; +} + + +function navSelect(theID) +{ + document.getElementById(theID).setAttribute("class", "selected"); +} + + +var prevOnLoad = window.onload; +window.onload = function() +{ + if (prevOnLoad) + prevOnLoad(); + + + // Preload images + if (document.domain != "") + { + loadImage("/src/img/nav_apps_hover.png"); + loadImage("/src/img/nav_apps_selected.png"); + loadImage("/src/img/nav_projects_hover.png"); + loadImage("/src/img/nav_projects_selected.png"); + loadImage("/src/img/nav_contact_hover.png"); + loadImage("/src/img/nav_contact_selected.png"); + loadImage("/src/img/nav_dev_hover.png"); + loadImage("/src/img/nav_dev_selected.png"); + } +} + diff --git a/release_scripts/osx/refnum/dmgutil/Documentation/version.html b/release_scripts/osx/refnum/dmgutil/Documentation/version.html new file mode 100644 index 0000000..f7177a4 --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/Documentation/version.html @@ -0,0 +1,109 @@ + + + + refNum › dmgutil › Version History + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ + + + + + + + +
+ + + + + +

Version History

+

dmgutil 1.3

+
    +
  • Released 2008/05/01 +
  • Added workaround for Finder bug when setting background image on 10.5 +
  • Added workaround for hdiutil bug when closing disk image on 10.5 +
+ + +

dmgutil 1.2

+
    +
  • Released 2007/03/07 +
  • Fixed typo in zlib-level flag, was defaulting to 1 not 9 +
+ + +

dmgutil 1.1

+
    +
  • Released 2006/07/31 +
  • Added --icon parameter to set custom icons +
  • Added --bgcol parameter to set background color +
  • Added --toolbar flag to control toolbar visibility +
+ + +

dmgutil 1.0

+
    +
  • Released 2006/07/22 +
  • Initial release +
+ + + + + +
+ + + +
+
+ +
+ + + + + + + + diff --git a/release_scripts/osx/refnum/dmgutil/dmgutil.pl b/release_scripts/osx/refnum/dmgutil/dmgutil.pl new file mode 100755 index 0000000..9904b5e --- /dev/null +++ b/release_scripts/osx/refnum/dmgutil/dmgutil.pl @@ -0,0 +1,738 @@ +#!/usr/bin/perl -w +#============================================================================ +# NAME: +# dmgutil.pl +# +# DESCRIPTION: +# Disk image creation utility. +# +# COPYRIGHT: +# Copyright (c) 2006-2009, refNum Software +# +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# o Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# o Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# o Neither the name of refNum Software nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================ +# Imports +#---------------------------------------------------------------------------- +use strict; +use Getopt::Long; + + + + + +#============================================================================ +# Constants +#---------------------------------------------------------------------------- +my $kLogging = "-quiet"; + +my $Rez = "/Developer/Tools/Rez"; +my $SetFile = "/Developer/Tools/SetFile"; + +my $kManPage = <$theFile") or die "Can't open $theFile for writing: $!\n"; + print OUTPUT $theScript; + close(OUTPUT); + + + + # And execute it + system("osascript", $theFile); + unlink($theFile); +} + + + + + +#============================================================================ +# isVolume : Is a path to the root of a volume? +#---------------------------------------------------------------------------- +sub isVolume +{ + + + # Retrieve our parameters + my ($thePath) = @_; + + + + # Check the state + # + # After stripping out the leading /Volumes, any further slashes + # indicate we have a folder rather than a volume. + $thePath =~ s/\/Volumes\///; + + my $isVolume = ($thePath =~ /.*\/.*/) ? 0 : 1; + + return($isVolume); +} + + + + + +#============================================================================ +# setFolderState : Set the state for a folder. +#---------------------------------------------------------------------------- +sub setFolderState +{ + + + # Retrieve our parameters + my ($thePath, $iconSize, $flagToolbar, $bgImage, $bgColor) = @_; + + + + # Initialise ourselves + my $cmdBackground = ""; + my $cmdIconSize = ""; + my $cmdToolbar = ""; + + + + # Prepare the background + # + # As of 10.5, the Finder refuses to manipulate files whose names start with + # a period (rdar://5582578). As such we need to use an underscore for the + # image, then make it invisible using SetFile. + if (-f $bgImage) + { + $bgImage =~ /.*\.(\w+)/; + my $dstImage = "$thePath/_Background.$1"; + + `cp "$bgImage" "$dstImage"`; + + $cmdBackground .= "set theImage to posix file \"$dstImage\"\n"; + $cmdBackground .= " set background picture of theOptions to theImage\n"; + $cmdBackground .= " do shell script \"/Developer/Tools/SetFile -a V '$dstImage'\"\n"; + } + + elsif ($bgColor ne "") + { + $cmdBackground = "set background color of theOptions to {$bgColor} as RGB color"; + } + + + + # Prepare the icon size + if ($iconSize != 0) + { + $cmdIconSize = "set icon size of theOptions to $iconSize"; + } + + + + # Prepare the toolbar + # + # The window must be made visible in order to change the toolbar state. + if ($flagToolbar ne "") + { + $cmdToolbar = " open theWindow \n"; + $cmdToolbar .= " set toolbar visible of theWindow to $flagToolbar \n"; + $cmdToolbar .= " close theWindow \n"; + } + + + + # Identify the target + # + # AppleScript requires the correct nomenclature for the target item. + my $theTarget = "folder \"$thePath\""; + + if (isVolume($thePath)) + { + $theTarget =~ s/folder "\/Volumes\//disk "/; + } + + + + # Set the folder state + # + # Once a change has been made, it must be flushed to disk with update. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= " set theWindow to window of theTarget \n"; + $theScript .= "\n"; + $theScript .= " set current view of theWindow to icon view \n"; + $theScript .= " set theOptions to icon view options of theWindow \n"; + $theScript .= " set arrangement of theOptions to not arranged \n"; + $theScript .= "\n"; + $theScript .= " $cmdBackground\n"; + $theScript .= " $cmdIconSize \n"; + $theScript .= " $cmdToolbar \n"; + $theScript .= "\n"; + $theScript .= " update theTarget\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# setCustomIcon : Set a custom icon. +#---------------------------------------------------------------------------- +sub setCustomIcon +{ + + + # Retrieve our parameters + my ($thePath, $theIcon) = @_; + + + + # Validate our state + # + # We require several tools inside /Developer/Tools. + die("Setting an icon requires $Rez") if (! -e $Rez); + die("Setting an icon requires $SetFile") if (! -e $SetFile); + + + + # Prepare the flags + # + # Prior to Mac OS X 10.4, SetFile can only set an attribute if it is + # first cleared (rdar://3738867). + my $sysVers = `uname -r`; + my $setHidden = ($sysVers =~ /^[0-7]\./) ? "vV" : "V"; + my $setIcon = ($sysVers =~ /^[0-7]\./) ? "cC" : "C"; + + + + # Set a volume icon + # + # Volume custom icons are contained in a .VolumeIcon.icns file. + if (isVolume($thePath)) + { + my $iconFile = "$thePath/.VolumeIcon.icns"; + + `cp "$theIcon" "$iconFile"`; + + `$SetFile -a $setHidden "$iconFile"`; + `$SetFile -a $setIcon "$thePath"`; + } + + + # Set a folder icon + # + # Folder custom icons are contained in an ('icns', -16455) resource, + # placed in an invisible "Icon\r" file inside the folder. + elsif (-d $thePath) + { + my $iconFile = "$thePath/Icon\r"; + my $tmpR = "/tmp/dmgutil.r"; + + `echo "read 'icns' (-16455) \\"$theIcon\\";\n" > $tmpR`; + `cd /tmp; $Rez dmgutil.r -append -o "$iconFile"`; + + `$SetFile -a $setHidden "$iconFile"`; + `$SetFile -a $setIcon "$thePath"`; + + unlink($tmpR); + } + + + # Set a file icon + # + # File custom icons are contained in an ('icns', -16455) resource. + else + { + my $tmpR = "/tmp/dmgutil.r"; + + `echo "read 'icns' (-16455) \\"$theIcon\\";\n" > $tmpR`; + `cd /tmp; $Rez dmgutil.r -append -o "$thePath"`; + + `$SetFile -a $setIcon "$thePath"`; + + unlink($tmpR); + } +} + + + + + +#============================================================================ +# setWindowPos : Set the position of a window. +#---------------------------------------------------------------------------- +sub setWindowPos +{ + + + # Retrieve our parameters + my ($thePath, $posX, $posY, $theWidth, $theHeight) = @_; + + + + # Initialise ourselves + my $bottom = $posY + $theHeight; + my $right = $posX + $theWidth; + + + + # Identify the target + # + # AppleScript requires the correct nomenclature for the target item. + my $theTarget = "folder \"$thePath\""; + + if (isVolume($thePath)) + { + $theTarget =~ s/folder "\/Volumes\//disk "/; + } + + + + # Set the window position + # + # In theory, the "set bounds" command is all that should be necessary + # to set the bounds of a Finder window. + # + # Unfortunately, under 10.4 this will result in a window that will be + # taller than the specified size when the window is next opened. + # + # To reliably set the bounds of a window we must open the window, show + # the status bar, and set the window bounds to be 20 pixels taller (the + # height of the status bar) than necessary. + # + # The status bar can then be hidden, the window closed, and the bounds + # bounds will be the desired size when the window is next opened. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= " set theWindow to window of theTarget \n"; + $theScript .= "\n"; + $theScript .= " open theWindow \n"; + $theScript .= " set statusbar visible of theWindow to true \n"; + $theScript .= " set bounds of theWindow to {$posX, $posY, $right, $bottom+20} \n"; + $theScript .= " set statusbar visible of theWindow to false \n"; + $theScript .= " close theWindow \n"; + $theScript .= "\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# setIconPos : Set the position of an icon. +#---------------------------------------------------------------------------- +sub setIconPos +{ + + + # Retrieve our parameters + my ($theFile, $posX, $posY) = @_; + + + + # Identify the target + # + # Since the 'posix file' command follows symlinks, in order to set the + # position of a symlink (vs its target) we need to use an HFS path and + # reference it as a file rather than an alias. + my $theTarget = "alias (posix file \"$theFile\")"; + + if (-l $theFile) + { + $theTarget = $theFile; + + $theTarget =~ s/\/Volumes\///; + $theTarget =~ s/\//:/g; + $theTarget = "file \"$theTarget\""; + } + + + + # Set the icon position + # + # Once a change has been made, it must be flushed to disk with update. + my $theScript = ""; + + $theScript .= "tell application \"Finder\"\n"; + $theScript .= " set theTarget to $theTarget \n"; + $theScript .= "\n"; + $theScript .= " set position of theTarget to {$posX, $posY} \n"; + $theScript .= " update theTarget\n"; + $theScript .= "end tell"; + + appleScript($theScript); +} + + + + + +#============================================================================ +# doOpen : Open a new disk image. +#---------------------------------------------------------------------------- +sub doOpen +{ + + + # Retrieve our parameters + my ($dmgFile, $volName) = @_; + + + + # Clean up any previous image + system("rm", "-f", "$dmgFile.sparseimage"); + system("rm", "-f", "$dmgFile"); + + + + # Create the image + # + # A large sparse disk image is created, which will be shrunk down + # and compressed when the disk image is finally closed. + print " creating $dmgFile\n" if ($kLogging eq "-quiet"); + + system("hdiutil", "create", $dmgFile, + "-volname", $volName, + "-megabytes", "1000", + "-type", "SPARSE", + "-fs", "HFS+", + $kLogging); + + system("hdiutil", "mount", $kLogging, "$dmgFile.sparseimage"); +} + + + + + +#============================================================================ +# doClose : Close a disk image. +#---------------------------------------------------------------------------- +sub doClose +{ + + + # Retrieve our parameters + my ($dmgFile, $volName, $theLicense) = @_; + + + + # Bless the volume + # + # Blessing the volume ensures that the volume always opens in the current + # view, overriding the user's "Open new windows in column view" preference. + system("bless", "--openfolder", "/Volumes/$volName"); + + + + # Compress the image + # + # On 10.5, the disk image must be ejected rather than unmounted to allow + # it to be converted from a sparse image to a compressed image. + print " compressing $dmgFile\n" if ($kLogging eq "-quiet"); + + system("hdiutil", "eject", $kLogging, "/Volumes/$volName"); + + if ($theLicense ne "") + { + system("hdiutil", "unflatten", $kLogging, "$dmgFile.sparseimage"); + `$Rez -a "$theLicense" -o "$dmgFile.sparseimage"`; + system("hdiutil", "flatten", $kLogging, "$dmgFile.sparseimage"); + } + + system("hdiutil", "convert", "$dmgFile.sparseimage", + "-format", "UDZO", + "-o", $dmgFile, + "-imagekey", "zlib-level=9", + $kLogging); + + + + # Clean up + system("rm", "-f", "$dmgFile.sparseimage"); +} + + + + + +#============================================================================ +# doSet : Set a file/folder state. +#---------------------------------------------------------------------------- +sub doSet +{ + + + # Retrieve our parameters + my ($thePath, $posX, $posY, $theWidth, $theHeight, $iconSize, $theIcon, $bgImage, $bgColor, $flagToolbar) = @_; + + + + # Set the custom icon + if ($theIcon ne "") + { + setCustomIcon($thePath, $theIcon); + } + + + + # Set the folder state + if ($iconSize != 0 || $bgImage ne "" || $bgColor ne "" || $flagToolbar ne "") + { + setFolderState($thePath, $iconSize, $flagToolbar, $bgImage, $bgColor); + } + + + + # Set the position + # + # Window position must be set after applying the folder state. + if ($posX != 0 && $posY != 0) + { + if ($theWidth != 0 && $theHeight != 0) + { + setWindowPos($thePath, $posX, $posY, $theWidth, $theHeight); + } + else + { + setIconPos($thePath, $posX, $posY); + } + } +} + + + + + +#============================================================================ +# dmgUtil : Manipulate a disk image. +#---------------------------------------------------------------------------- +sub dmgUtil +{ + + + # Retrieve our parameters + my ($doOpen, $doClose, $doSet) = (0, 0, 0); + my ($posX, $posY, $theWidth, $theHeight, $iconSize) = (0, 0, 0, 0, 0); + my ($volName, $theIcon, $bgImage, $bgColor, $flagToolbar, $theLicense) = ("", "", "", "", "", ""); + + GetOptions( "--open+", => \$doOpen, + "--close+", => \$doClose, + "--set+", => \$doSet, + "--volume=s", => \$volName, + "--x=i", => \$posX, + "--y=i", => \$posY, + "--width=i", => \$theWidth, + "--height=i", => \$theHeight, + "--iconsize=i", => \$iconSize, + "--icon=s", => \$theIcon, + "--background=s", => \$bgImage, + "--bgcol=s", => \$bgColor, + "--toolbar=s", => \$flagToolbar, + "--license=s", => \$theLicense); + + my ($thePath) = @ARGV; + + $thePath = "" if (!defined($thePath)); + + + + # Perform the action + if ($doOpen && $thePath ne "" && $volName ne "") + { + doOpen($thePath, $volName); + } + + elsif ($doClose && $thePath ne "" && $volName ne "") + { + doClose($thePath, $volName, $theLicense); + } + + elsif ($doSet && $thePath ne "") + { + doSet($thePath, $posX, $posY, $theWidth, $theHeight, $iconSize, $theIcon, $bgImage, $bgColor, $flagToolbar); + } + + else + { + print $kManPage; + } +} + + + + + +#============================================================================ +# Script entry point +#---------------------------------------------------------------------------- +dmgUtil(); diff --git a/release_scripts/osx/release.macx.sh b/release_scripts/osx/release.macx.sh new file mode 100755 index 0000000..376fdb6 --- /dev/null +++ b/release_scripts/osx/release.macx.sh @@ -0,0 +1,290 @@ +:#!/bin/bash +# -------------------------------------------------------------------- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# --------------------------------------------------------------------- + +SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_ROOT="$SCRIPT_PATH/../.." + + +APPLICATION_NAME="OpenBoard" +BASE_QT_DIR=~/Qt/5.15.0/clang_64 +# Executables +QMAKE=$BASE_QT_DIR/bin/qmake +MACDEPLOYQT=$BASE_QT_DIR/bin/macdeployqt +DMGUTIL="$PROJECT_ROOT/release_scripts/osx/refnum/dmgutil/dmgutil.pl" +DSYMUTIL=/usr/bin/dsymutil +STRIP=/usr/bin/strip +PLISTBUDDY=/usr/libexec/PlistBuddy +ICEBERG=/usr/local/bin/freeze +LRELEASE=$BASE_QT_DIR/bin/lrelease + +# Directories +BUILD_DIR="$PROJECT_ROOT/build/macx/release" +PRODUCT_DIR="$BUILD_DIR/product" +BASE_QT_TRANSLATIONS_DIRECTORY=$BASE_QT_DIR/translations + +function notify { + GROWLNOTIFY=`which growlnotify` + if [ -x "$GROWLNOTIFY" ]; then + $GROWLNOTIFY --name OpenBoard-build --iconpath /Developer/Applications/Xcode.app --message "$1" "OpenBoard" + fi + printf "\033[32m--->\033[0m $1\n" +} + +function abort { + printf "\033[31merror:\033[0m $1\n" + exit 1 +} + +function warn { + abort "$1" +} + +function checkExecutable { + if [ ! -x "$1" ]; then + abort "$1 not found" + fi +} + +function addQtTranslations { +for eachTranslation in `ls $BASE_QT_TRANSLATIONS_DIRECTORY/qt_??.qm` +do + # looking fo the language code for each qt translation file + languageCode=`echo $eachTranslation | sed 's/.*qt_\(.*\).qm/\1/'` + basicDir=$PRODUCT_DIR/$APPLICATION_NAME.app/Contents/Resources/ + for eachDirectory in `ls $basicDir` + do + # looping through the OpenBoard availables languages + directoryLanguageCode=`echo $eachDirectory | sed 's/\(.*\)\.lproj/\1/'` + if [ ! -z $directoryLanguageCode ]; then + if [[ $eachDirectory == *".lproj"* && $eachDirectory != "empty.lproj" && $directoryLanguageCode == *$languageCode* ]]; then + # OpenBoard translation found for qt translation file + cp $eachTranslation $basicDir/$eachDirectory + if [ $directoryLanguageCode != $languageCode ]; then + # handling fr and fr_CH code. + mv $basicDir/$eachDirectory/qt_$languageCode.qm $basicDir/$eachDirectory/qt_$directoryLanguageCode.qm + fi + fi + fi + done +done + +} + + +function addImporter { + importerDir="`pwd`/../OpenBoard-Importer" + importerName="OpenBoardImporter" + + if [ ! -e ${importerDir} ]; then + abort "${importerDir} not found" + fi + + cd ${importerDir} +# git reset --hard +# git pull + rm -rf ${importerName}.app + rm MakeFile* + rm -rf release + rm -rf debug + $QMAKE ${importerName}.pro + make -j4 release + $MACDEPLOYQT ${importerName}.app + cd - +} + +trap "defaults write org.oe-f.OpenBoard.release Running -bool NO" EXIT + +notify "Running OpenBoard release script (`date`)" + +cd $PROJECT_ROOT + +script_is_running=`defaults read org.oe-f.OpenBoard.release Running 2>/dev/null` +if [[ $? -eq 0 ]] && [[ "$script_is_running" = "1" ]]; then + trap EXIT + abort "another release script already running" +fi +defaults write org.oe-f.OpenBoard.release Running -bool YES + +# Check for executables +checkExecutable "$QMAKE" +checkExecutable "$MACDEPLOYQT" +checkExecutable "$DMGUTIL" +checkExecutable "$DSYMUTIL" +checkExecutable "$STRIP" +checkExecutable "$PLISTBUDDY" +checkExecutable "$ICEBERG" +checkExecutable "$LRELEASE" + +addImporter + +# delete the build directory +notify "Cleaning ..." +rm -rf "$BUILD_DIR" + +# application translations +notify "Generating applications translatons" +$LRELEASE "$APPLICATION_NAME.pro" + +# generate Makefiles +notify "Generating Makefile ..." + + +if [ "$1" == "1010" ]; then + QMAKE_CMD="$QMAKE \"DEFINES+=OS_NEWER_THAN_OR_EQUAL_TO_1010\" $APPLICATION_NAME.pro -spec macx-g++" +else + QMAKE_CMD="$QMAKE $APPLICATION_NAME.pro -spec macx-g++" +fi +$QMAKE_CMD + +# build +notify "Compiling ..." +make -j4 release + +notify "Qt Translations ..." +#$LRELEASE $BASE_QT_TRANSLATIONS_DIRECTORY/translations.pro +addQtTranslations + +cp -R resources/customizations $PRODUCT_DIR/$APPLICATION_NAME.app/Contents/Resources +cp -R $importerDir/$importerName.app $PRODUCT_DIR/$APPLICATION_NAME.app/Contents/Resources + +VERSION=`cat "$BUILD_DIR/version"` +if [ ! -f "$BUILD_DIR/version" ]; then + echo "version not found" + exit 1 +#else +# notify "Tagging ..." +# LAST_COMMITED_VERSION="`git describe $(git rev-list --tags --max-count=1)`" +# if [ "v$VERSION" != "$LAST_COMMITED_VERSION" ]; then +# echo creating a tag with the version $VERSION +# git tag -a "v$VERSION" -m "Generated setup for v$VERSION" +# git push origin --tags +# fi +fi + +#if [ $? != 0 ]; then +# abort "compilation failed" +#fi + +DMG="$APPLICATION_NAME.dmg" + +VOLUME="/Volumes/$APPLICATION_NAME" +APP="$PRODUCT_DIR/$APPLICATION_NAME.app" +DSYM_NAME="$APPLICATION_NAME (r$SVN_REVISION).dSYM" +DSYM="$PRODUCT_DIR/$DSYM_NAME" +GSYM_i386="$PRODUCT_DIR/$APPLICATION_NAME i386.sym" +INFO_PLIST="$APP/Contents/Info.plist" + +rm -f "$APP/Contents/Resources/empty.lproj" + +# set various version infomration in Info.plist +$PLISTBUDDY -c "Set :CFBundleVersion $VERSION" "$INFO_PLIST" +$PLISTBUDDY -c "Set :CFBundleShortVersionString $VERSION" "$INFO_PLIST" +$PLISTBUDDY -c "Set :CFBundleGetInfoString $APPLICATION_NAME" "$INFO_PLIST" + +# bundle Qt Frameworks into the app bundle +notify "Bulding frameworks ..." +cd "`pwd`/build/macx/release/product/" +$MACDEPLOYQT "`pwd`/$APPLICATION_NAME.app" +cd - + +# make sure libs installed via homebrew 2.0 refer to in-app libs + notify "relinking libs ..." +# libavformat +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavcodec.58.dylib @executable_path/../Frameworks/libavcodec.58.dylib +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +# libavcodec +install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib +install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +#libswresample +install_name_tool "$APP/Contents/Frameworks/libswresample.3.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +#libswscale +install_name_tool "$APP/Contents/Frameworks/libswscale.5.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +# libhogweed +install_name_tool "$APP/Contents/Frameworks/libhogweed.6.dylib" -change /usr/local/Cellar/nettle/3.6/lib/libnettle.8.dylib @executable_path/../Frameworks/libnettle.8.dylib + +# libssl +install_name_tool "$APP/Contents/Frameworks/libssl.1.1.dylib" -change /usr/local/Cellar/openssl@1.1/1.1.1h/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib + +# libvorbis +install_name_tool "$APP/Contents/Frameworks/libvorbisenc.2.dylib" -change /usr/local/Cellar/libvorbis/1.3.6/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib + +notify "Extracting debug information ..." +$DSYMUTIL "$APP/Contents/MacOS/$APPLICATION_NAME" -o "$DSYM" +$STRIP -S "$APP/Contents/MacOS/$APPLICATION_NAME" + +if [ "$1" == "pkg" ]; then + BASE_ICEBERG_CONFIG_FILE="$SCRIPT_PATH/$APPLICATION_NAME.packproj" + #copy the standard file for working with + ICEBERG_CONFIG_FILE="$APPLICATION_NAME-working.packproj" + cp -r $BASE_ICEBERG_CONFIG_FILE $ICEBERG_CONFIG_FILE + # set version information + $PLISTBUDDY -c "Set :Hierarchy:Attributes:Settings:Description:International:IFPkgDescriptionVersion $VERSION" "$ICEBERG_CONFIG_FILE" + $PLISTBUDDY -c "Set :Hierarchy:Attributes:Settings:Display\ Information:CFBundleShortVersionString $VERSION" "$ICEBERG_CONFIG_FILE" + $PLISTBUDDY -c "Set :Hierarchy:Attributes:Settings:Version:IFMajorVersion `echo $VERSION | awk 'BEGIN { FS = "." }; { print $1 }'`" "$ICEBERG_CONFIG_FILE" + $PLISTBUDDY -c "Set :Hierarchy:Attributes:Settings:Version:IFMinorVersion `echo $VERSION | awk 'BEGIN { FS = "." }; { print $2 }'`" "$ICEBERG_CONFIG_FILE" + + + PRODUCT_DIR="install/mac/" + + if [ ! -d "${PRODUCT_DIR}" ]; then + mkdir -p "${PRODUCT_DIR}" + fi + $ICEBERG $ICEBERG_CONFIG_FILE + + #clean up mess + rm -rf $ICEBERG_CONFIG_FILE + + exit 0 +fi + +notify "Creating dmg ..." +umount "$VOLUME" 2> /dev/null +$DMGUTIL --open --volume="$APPLICATION_NAME" "$DMG" + +#cp *.pdf "$VOLUME" +cp -R "$APP" "$VOLUME" +ln -s /Applications "$VOLUME" + +$DMGUTIL --set --iconsize=96 --toolbar=false --icon=resources/macx/OpenBoard.icns "$VOLUME" +$DMGUTIL --set --x=20 --y=60 --width=580 --height=440 "$VOLUME" +$DMGUTIL --set --x=180 --y=120 "$VOLUME/`basename \"$APP\"`" +$DMGUTIL --set --x=400 --y=120 "$VOLUME/Applications" + +$DMGUTIL --close --volume="$APPLICATION_NAME" "$DMG" + +notify "$APPLICATION_NAME is built" + +PRODUCT_DIR="install/mac/" + +if [ ! -d "${PRODUCT_DIR}" ]; then + mkdir -p "${PRODUCT_DIR}" +fi + + +if [ "$1" == "1010" ]; then + mv "$DMG" "${PRODUCT_DIR}/OpenBoard_for_1010.dmg" +else + mv "$DMG" "${PRODUCT_DIR}" +fi + + +exit 0 + diff --git a/release_scripts/osx/relink_libs.sh b/release_scripts/osx/relink_libs.sh new file mode 100755 index 0000000..7fdc0ee --- /dev/null +++ b/release_scripts/osx/relink_libs.sh @@ -0,0 +1,52 @@ +# Directories +PRODUCT_DIR="$BUILD_DIR/product" + +function notify { + GROWLNOTIFY=`which growlnotify` + if [ -x "$GROWLNOTIFY" ]; then + $GROWLNOTIFY --name OpenBoard-build --iconpath /Developer/Applications/Xcode.app --message "$1" "OpenBoard" + fi + printf "\033[32m--->\033[0m $1\n" +} + +function abort { + printf "\033[31merror:\033[0m $1\n" + exit 1 +} + +function warn { + abort "$1" +} + +function checkExecutable { + if [ ! -x "$1" ]; then + abort "$1 not found" + fi +} + +APP="$PRODUCT_DIR/$APPLICATION_NAME.app" +# make sure libs installed via homebrew 2.0 refer to in-app libs +notify "relinking libs ..." +# libavformat +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libavcodec.58.dylib @executable_path/../Frameworks/libavcodec.58.dylib +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib +install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +# libavcodec +install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib +install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +#libswresample +install_name_tool "$APP/Contents/Frameworks/libswresample.3.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +#libswscale +install_name_tool "$APP/Contents/Frameworks/libswscale.5.dylib" -change /usr/local/Cellar/ffmpeg/4.1.4_2/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib + +# libhogweed +install_name_tool "$APP/Contents/Frameworks/libhogweed.4.dylib" -change /usr/local/Cellar/nettle/3.4.1/lib/libnettle.6.dylib @executable_path/../Frameworks/libnettle.6.dylib + +# libssl +install_name_tool "$APP/Contents/Frameworks/libssl.1.1.dylib" -change /usr/local/Cellar/openssl@1.1/1.1.1c/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib + +# libvorbis +install_name_tool "$APP/Contents/Frameworks/libvorbisenc.2.dylib" -change /usr/local/Cellar/libvorbis/1.3.6/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib diff --git a/release_scripts/windows/OpenBoard.iss b/release_scripts/windows/OpenBoard.iss new file mode 100644 index 0000000..e9323a9 --- /dev/null +++ b/release_scripts/windows/OpenBoard.iss @@ -0,0 +1,189 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#define ApplicationVersion GetFileVersion("..\..\build\win32\release\product\OpenBoard.exe") + + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId={{8CCA6AC7-BBF9-4DD2-8E70-A907E0FCA38F}} +AppName=OpenBoard +AppVersion={#ApplicationVersion} +AppVerName=OpenBoard {#ApplicationVersion} +UninstallDisplayName=OpenBoard {#ApplicationVersion} +AppPublisher=Open Education Foundation +ArchitecturesInstallIn64BitMode=x64 + +AppPublisherURL=http://www.oe-f.org +AppSupportURL=http://www.openboard.org +AppUpdatesURL=http://get.openboard.org + +DefaultDirName={pf}\OpenBoard +DefaultGroupName=OpenBoard + +#define ProjectRoot GetEnv('PROJECT_ROOT') + +OutputDir={#ProjectRoot}\install\win32\ +OutputBaseFilename=OpenBoard +SetupIconFile={#ProjectRoot}\resources\win\OpenBoard.ico +Compression=lzma +SolidCompression=yes + +[Languages] +Name: "en"; MessagesFile: "compiler:Default.isl" +Name: "fr"; MessagesFile: "compiler:Languages\French.isl" +Name: "gr"; MessagesFile: "compiler:Languages\German.isl" +Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "sp"; MessagesFile: "compiler:Languages\Spanish.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[InstallDelete] + +Type: files ; Name: "{app}\OpenBoard.pdb" +Type: filesandordirs ; Name: "{app}\library" +Type: filesandordirs ; Name: "{app}\Microsoft.VC90.CRT" +Type: filesandordirs ; Name: "{app}\plugins" +Type: filesandordirs ; Name: "{app}\i18n" +Type: files ; Name: "{app}\*.dll" + + +#define QtLibs GetEnv('QT_BIN') +#define QtDir GetEnv('QT_DIR') + +[Files] +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\microsoft\vcredist_2013.x64.exe"; DestDir:"{tmp}" +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\microsoft\vcredist_2015_2019.x64.exe"; DestDir:"{tmp}" +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\microsoft\LAVFilters-0.74.1-Installer.exe"; DestDir:"{tmp}" +Source: "{#ProjectRoot}\build\win32\release\product\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + +;OpenSSL +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\openssl-1.1.1j-win64\bin\libssl-1_1-x64.dll"; DestDir:"{app}"; Flags: ignoreversion +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\openssl-1.1.1j-win64\bin\libcrypto-1_1-x64.dll"; DestDir:"{app}"; Flags: ignoreversion +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\win32\libeay32.dll"; DestDir:"{app}"; Flags: ignoreversion +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\openssl\win32\ssleay32.dll"; DestDir:"{app}"; Flags: ignoreversion + +;Qt base dll +;Source: "OpenBoard.exe"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Core.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Gui.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Multimedia.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5MultimediaWidgets.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Network.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Opengl.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5PrintSupport.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Qml.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Sql.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Svg.dll"; DestDir: "{app}" +;Source: "Qt5V8.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5WebKit.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5WebKitWidgets.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Widgets.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Xml.dll"; DestDir: "{app}" +Source: "{#QtLibs}\libGLESv2.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Quick.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Positioning.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Sensors.dll"; DestDir: "{app}" +Source: "{#QtLibs}\icuuc65.dll"; DestDir: "{app}" +Source: "{#QtLibs}\icuin65.dll"; DestDir: "{app}" +Source: "{#QtLibs}\icudt65.dll"; DestDir: "{app}" +Source: "{#QtLibs}\libxslt.dll"; DestDir: "{app}" +Source: "{#QtLibs}\libxml2.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5QmlModels.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5WebChannel.dll"; DestDir: "{app}" +Source: "{#QtLibs}\libEGL.dll"; DestDir: "{app}" +;Source: "/etc/freezedWidgetWrapper.html"; DestDir: "{app}" +;Source: "*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + +Source: "{#ProjectRoot}\..\OpenBoard-ThirdParty\zlib\1.2.11\bin\zlib.dll"; DestDir:"{app}"; Flags: ignoreversion + +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +;Qt windows plugins +Source: "{#QtDir}\plugins\platforms\qminimal.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion +Source: "{#QtDir}\plugins\platforms\qoffscreen.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion +Source: "{#QtDir}\plugins\platforms\qwindows.dll"; DestDir: "{app}\platforms"; Flags: ignoreversion + + +;Qt images formats plugins +Source: "{#QtDir}\plugins\imageformats\qgif.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#QtDir}\plugins\imageformats\qico.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#QtDir}\plugins\imageformats\qjpeg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#QtDir}\plugins\imageformats\qsvg.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion +Source: "{#QtDir}\plugins\imageformats\qtiff.dll"; DestDir: "{app}\imageformats"; Flags: ignoreversion + +;qt icon engine plugins +Source: "{#QtDir}\plugins\iconengines\qsvgicon.dll"; DestDir: "{app}\iconengines"; Flags: ignoreversion + +;qt multimedia plugins +Source: "{#QtDir}\plugins\mediaservice\dsengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion +Source: "{#QtDir}\plugins\mediaservice\dsengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion +Source: "{#QtDir}\plugins\mediaservice\qtmedia_audioengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion +Source: "{#QtDir}\plugins\mediaservice\qtmedia_audioengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion +Source: "{#QtDir}\plugins\mediaservice\wmfengine.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion +Source: "{#QtDir}\plugins\mediaservice\wmfengined.dll"; DestDir: "{app}\mediaservice"; Flags: ignoreversion + +;OpenBoardImporter +Source: "{#ProjectRoot}\..\OpenBoard-Importer\release\OpenBoardImporter.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#QtLibs}\Qt5Core.dll"; DestDir: "{app}" +Source: "{#QtLibs}\Qt5Gui.dll"; DestDir: "{app}" + +;fonts for xpdf +Source: "{#ProjectRoot}\resources\windows\xpdfrc"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#ProjectRoot}\resources\fonts\*"; DestDir: "{app}\fonts"; Flags: ignoreversion + +[Icons] +Name: "{group}\OpenBoard"; Filename: "{app}\OpenBoard.exe" +Name: "{group}\{cm:UninstallProgram,OpenBoard}"; Filename: "{uninstallexe}" +Name: "{commondesktop}\OpenBoard"; Filename: "{app}\OpenBoard.exe"; Tasks: desktopicon +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\OpenBoard"; Filename: "{app}\OpenBoard.exe"; Tasks: quicklaunchicon + +[Registry] +Root: HKCR; Subkey: ".ubz"; ValueType: string; ValueName: ""; ValueData: "OpenBoardFile"; Flags: uninsdeletevalue +Root: HKCR; Subkey: "OpenBoardFile"; ValueType: string; ValueName: ""; ValueData: "OpenBoard document"; Flags: uninsdeletekey +Root: HKCR; Subkey: "OpenBoardFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\OpenBoard.exe,1" +Root: HKCR; Subkey: "OpenBoardFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\OpenBoard.exe"" ""%1""" + +Root: HKLM; Subkey: "SOFTWARE\OpenBoard"; ValueType: string; ValueName: "Client application"; ValueData: "{app}\OpenBoard.exe"; Flags: uninsdeletevalue; Check: isProcessorNotX64 +Root: HKLM; Subkey: "SOFTWARE\OpenBoard"; ValueType: dword; ValueName: "Transfer mode"; ValueData: "0"; Flags: uninsdeletevalue; Check: isProcessorNotX64 +Root: HKLM; Subkey: "SOFTWARE\OpenBoard"; ValueType: dword; ValueName: "EMF: Hide page"; ValueData: "1"; Flags: uninsdeletevalue; Check: isProcessorNotX64 +Root: HKLM; Subkey: "SOFTWARE\OpenBoard\Defaults"; ValueType: dword; ValueName: "PDF: Enabled"; ValueData: "1"; Flags: uninsdeletevalue; Check: isProcessorNotX64 + +Root: HKLM; Subkey: "SOFTWARE\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: dword; ValueName: "Policy"; ValueData: "3"; Flags: uninsdeletevalue; Check: isProcessorNotX64 +Root: HKLM; Subkey: "SOFTWARE\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: string; ValueName: "AppName"; ValueData: "OpenBoard.exe"; Flags: uninsdeletevalue; Check: isProcessorNotX64 +Root: HKLM; Subkey: "SOFTWARE\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: string; ValueName: "AppPath"; ValueData: "{app}"; Flags: uninsdeletevalue; Check: isProcessorNotX64 + +Root: HKLM64; Subkey: "SOFTWARE\OpenBoard"; ValueType: string; ValueName: "Client application"; ValueData: "{app}\OpenBoard.exe"; Flags: uninsdeletevalue; Check: isProcessorX64 +Root: HKLM64; Subkey: "SOFTWARE\OpenBoard"; ValueType: dword; ValueName: "Transfer mode"; ValueData: "0"; Flags: uninsdeletevalue; Check: isProcessorX64 +Root: HKLM64; Subkey: "SOFTWARE\OpenBoard"; ValueType: dword; ValueName: "EMF: Hide page"; ValueData: "1"; Flags: uninsdeletevalue; Check: isProcessorX64 +Root: HKLM64; Subkey: "SOFTWARE\OpenBoard\Defaults"; ValueType: dword; ValueName: "PDF: Enabled"; ValueData: "1"; Flags: uninsdeletevalue; Check: isProcessorX64 + +Root: HKLM64; Subkey: "SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: dword; ValueName: "Policy"; ValueData: "3"; Flags: uninsdeletevalue; Check: isProcessorX64 +Root: HKLM64; Subkey: "SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: string; ValueName: "AppName"; ValueData: "OpenBoard.exe"; Flags: uninsdeletevalue; Check: isProcessorX64 +Root: HKLM64; Subkey: "SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Low Rights\DragDrop\{{E63D17F8-D9DA-479D-B9B5-0D101A03703B}"; ValueType: string; ValueName: "AppPath"; ValueData: "{app}"; Flags: uninsdeletevalue; Check: isProcessorX64 + +[Run] +Filename: "{tmp}\vcredist_2013.x64.exe";WorkingDir:"{tmp}"; Parameters: "/PASSIVE /VERYSILENT /SUPPRESSMSGBOXES /NORESTART"; StatusMsg: Installing CRT 2013... +Filename: "{tmp}\vcredist_2015_2019.x64.exe";WorkingDir:"{tmp}"; Parameters: "/PASSIVE /VERYSILENT /SUPPRESSMSGBOXES /NORESTART"; StatusMsg: Installing CRT 2015-2019 ... +Filename: "{tmp}\LAVFilters-0.74.1-Installer.exe";WorkingDir:"{tmp}"; Parameters: "/VERYSILENT /SUPPRESSMSGBOXES /NORESTART"; StatusMsg: Installing LAV Filters ... +Filename: "{app}\OpenBoard.exe"; Description: "{cm:LaunchProgram,OpenBoard}"; Flags: nowait postinstall skipifsilent + +[UninstallDelete] +; cleanup and delete whole installation directory +Name: {app}; Type: filesandordirs + +[Code] +function isProcessorX64: Boolean; +begin + Result := (ProcessorArchitecture = paX64); +end; + +function isProcessorNotX64: Boolean; +begin + Result := not isProcessorX64; +end; + diff --git a/release_scripts/windows/release.win7.vc9.bat b/release_scripts/windows/release.win7.vc9.bat new file mode 100644 index 0000000..1cade7b --- /dev/null +++ b/release_scripts/windows/release.win7.vc9.bat @@ -0,0 +1,102 @@ +@echo off +@echo off +REM -------------------------------------------------------------------- +REM This program is free software: you can redistribute it and/or modify +REM it under the terms of the GNU General Public License as published by +REM the Free Software Foundation, either version 2 of the License, or +REM (at your option) any later version. +REM +REM This program is distributed in the hope that it will be useful, +REM but WITHOUT ANY WARRANTY; without even the implied warranty of +REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +REM GNU General Public License for more details. +REM +REM You should have received a copy of the GNU General Public License +REM along with this program. If not, see . +REM --------------------------------------------------------------------- + +set SCRIPT_PATH=%~dp0 +set PROJECT_ROOT=%SCRIPT_PATH%\..\.. + +set APPLICATION_NAME=OpenBoard +set QT_DIR=C:\Qt\5.15.0\msvc2019_64 +set QT_BIN=%QT_DIR%\bin + +set PROGRAMS_FILE_PATH=C:\Program Files (x86) + +set GIT_BIN=C:\Program Files\Git\bin +set VS_BIN=%PROGRAMS_FILE_PATH%\Microsoft Visual Studio 14.0\VC\bin +set WIN_SDK_BIN=%PROGRAMS_FILE_PATH%\Microsoft SDKs\Windows\v6.0A\Bin +set INNO_EXE=%PROGRAMS_FILE_PATH%\Inno Setup 6\iscc.exe +set BUILD_DIR=%PROJECT_ROOT%\build\win32\release +set LRELEASE=%QT_DIR%\bin\lrelease.exe +set BASE_QT_TRANSLATIONS_DIRECTORY=%QT_DIR%\translations + +set PATH=%QT_BIN%;%PATH%;%WIN_SDK_BIN%;%GIT_BIN% + +REM call "%VS_BIN%\vcvars32.bat" + +echo %PATH% + +cd %PROJECT_ROOT% + +REM Third party impoter application +set IMPORTER_NAME=OpenBoardImporter +set IMPORTER_PATH="..\OpenBoard-Importer" + +IF NOT EXIST "%IMPORTER_PATH%" GOTO EXIT_WITH_ERROR + +set HOME_DIR="%cd%" +cd %IMPORTER_PATH% +IF EXIST "release" (del "release\*.*" /Q) +IF EXIST "debug" (del "debug\*.*" /Q) +IF EXIST "MakeFile" (del "MakeFile*" /Q) +IF EXIST "MakeFile" (del "MakeFile*" /Q) +IF EXIST "%IMPORTER_NAME%.exe" (del "%IMPORTER_NAME%.exe" /Q) +"%QT_BIN%\qmake.exe" %IMPORTER_NAME%.pro +nmake release +IF NOT EXIST release\"%IMPORTER_NAME%.exe" GOTO EXIT_WITH_ERROR +cd %HOME_DIR% + +REM this checks if the custom qt directory path +REM is correct. This is important because installer +REM pick up dll from this directory +REM IF NOT EXIST "%QT_DIR%\bin\Qt5Core.dll" GOTO EXIT_WITH_ERROR + +rmdir /S /Q %BUILD_DIR% +rmdir /S /Q install + +"%QT_BIN%\qmake.exe" %APPLICATION_NAME%.pro + +call "%LRELEASE%" "%APPLICATION_NAME%.pro" + +set /p VERSION= < build\win32\release\version +REM remove the last character that is a space +set VERSION=%VERSION: =% + + +nmake release-install +IF NOT EXIST build\win32\release\product\%APPLICATION_NAME%.exe GOTO EXIT_WITH_ERROR + +xcopy C:\%APPLICATION_NAME%\bin\*.dll build\win32\release\product\ +xcopy "%QT_DIR%\bin\Qt5OpenGL.dll" build\win32\release\product\ + +set CUSTOMIZATIONS=build\win32\release\product\customizations +mkdir %CUSTOMIZATIONS% +xcopy /s resources\customizations %CUSTOMIZATIONS% + +set I18n=build\win32\release\product\i18n +xcopy /s "%BASE_QT_TRANSLATIONS_DIRECTORY%\qt_*.qm" %I18n%\ + +call "%INNO_EXE%" "%SCRIPT_PATH%\%APPLICATION_NAME%.iss" /F"%APPLICATION_NAME%_Installer_%VERSION%" + +GOTO END + +:EXIT_WITH_ERROR +echo "Error found" +GOTO EOF + +:END +echo "%APPLICATION_NAME% build finished" + +:EOF diff --git a/resources/OpenBoard.qrc b/resources/OpenBoard.qrc new file mode 100644 index 0000000..ec853c6 --- /dev/null +++ b/resources/OpenBoard.qrc @@ -0,0 +1,375 @@ + + + images/OpenBoard.png + images/bigOpenBoard.png + images/line_doshed_style.pbm + images/close.svg + images/increase.svg + images/decrease.svg + images/resize.svg + images/play.svg + images/pause.svg + images/stop.svg + images/menu.svg + images/flash.svg + images/soundOn.svg + images/soundOff.svg + images/shape.png + images/font.svg + images/color.svg + images/eyeOpened.svg + images/eyeClosed.svg + images/locked.svg + images/unlocked.svg + images/duplicate.svg + images/resetAngle.svg + images/resizeButton.svg + images/resizeTop.svg + images/resizeLeft.svg + images/resizeBottom.svg + images/resizeRight.svg + images/rotate.svg + images/rotateTool.svg + images/rotateProtractor.svg + images/resizeTool.svg + images/resizeRuler.svg + images/resizeCompass.svg + images/closeTool.svg + images/hflipTool.svg + images/vflipTool.svg + images/resetTool.svg + images/angleMarker.svg + images/currentDocument.png + images/minus.svg + images/plus.svg + images/z_layer_up.svg + images/z_layer_down.svg + images/trash.png + images/pin.svg + images/unpin.svg + images/home.svg + images/reload.svg + images/frozen.svg + images/unfrozen.svg + images/toolbar/group.png + images/toolbar/ungroup.png + images/toolbar/window.png + images/toolbar/plusBlack.png + images/toolbar/plusBlackOn.png + images/toolbar/quit.png + images/toolbar/quitOn.png + images/toolbar/background.png + images/toolbar/documents.png + images/toolbar/newPage.png + images/toolbar/next.png + images/toolbar/nextPageOn.png + images/toolbar/previous.png + images/toolbar/previousPageOn.png + images/toolbar/redo.png + images/toolbar/redoOn.png + images/toolbar/stylus.png + images/toolbar/undo.png + images/toolbar/undoOn.png + images/toolbar/smallPen.png + images/toolbar/mediumPen.png + images/toolbar/largePen.png + images/toolbar/color.png + images/toolbar/smallEraser.png + images/toolbar/mediumEraser.png + images/toolbar/largeEraser.png + images/toolbar/solidLine.png + images/toolbar/dashedLine.png + images/toolbar/dottedLine.png + images/toolbar/web.png + images/toolbar/board.png + images/toolbar/home.png + images/toolbar/profile.png + images/toolbar/library.png + images/toolbar/clearPage.png + images/toolbar/reload.png + images/toolbar/addBookmark.png + images/toolbar/bookmarks.png + images/toolbar/settings.png + images/toolbar/eyeClosed.png + images/toolbar/eyeOpened.png + images/toolbar/pdf.png + images/toolbar/deleteDocument.png + images/toolbar/deleteFolder.png + images/toolbar/newDocument.png + images/toolbar/newFolder.png + images/toolbar/addToLibrary.png + images/toolbar/addInteractiveToLibrary.png + images/toolbar/addToolToLibrary.png + images/toolbar/duplicate.png + images/toolbar/export.png + images/toolbar/import.png + images/toolbar/setBackground.png + images/toolbar/removeBackground.png + images/toolbar/open.png + images/toolbar/addToPage.png + images/toolbar/menu.png + images/toolbar/addToDocument.png + images/toolbar/print.png + images/toolbar/addToWorkingDoc.png + images/toolbar/rename.png + images/toolbar/captureArea.png + images/toolbar/captureScreen.png + images/toolbar/captureWindow.png + images/toolbar/extraTool.png + images/toolbar/webUpload.png + images/toolbar/stop.png + images/toolbar/pause.png + images/toolbar/cut.png + images/toolbar/copy.png + images/toolbar/paste.png + images/toolbar/proto.png + images/toolbar/mic.png + images/toolbar/micOff.png + images/toolbar/remove.png + images/toolbar/pageSize.png + images/toolbar/eraserTool.png + images/toolbar/lineTool.png + images/toolbar/tools.png + images/stylusPalette/arrow.png + images/stylusPalette/arrowOn.png + images/stylusPalette/handPlay.png + images/stylusPalette/handPlayOn.png + images/stylusPalette/eraser.svg + images/stylusPalette/eraserOn.svg + images/stylusPalette/hand.png + images/stylusPalette/handOn.png + images/stylusPalette/laser.png + images/stylusPalette/laserOn.png + images/stylusPalette/marker.svg + images/stylusPalette/markerOn.svg + images/stylusPalette/pen.svg + images/stylusPalette/penOn.svg + images/stylusPalette/line.png + images/stylusPalette/lineOn.png + images/stylusPalette/zoomOut.png + images/stylusPalette/zoomOutOn.png + images/stylusPalette/zoomIn.png + images/stylusPalette/zoomInOn.png + images/stylusPalette/restoreZoom.png + images/stylusPalette/text.png + images/stylusPalette/textOn.png + images/stylusPalette/captureArea.png + images/stylusPalette/captureAreaOn.png + images/backgroundPalette/background1.svg + images/backgroundPalette/background1On.svg + images/backgroundPalette/background2.svg + images/backgroundPalette/background2On.svg + images/backgroundPalette/background3.svg + images/backgroundPalette/background3On.svg + images/backgroundPalette/background4.svg + images/backgroundPalette/background4On.svg + images/backgroundPalette/background5.svg + images/backgroundPalette/background5On.svg + images/backgroundPalette/background6.svg + images/backgroundPalette/background6On.svg + images/toolPalette/podcast.svg + images/toolPalette/podcastOn.svg + images/toolPalette/rulerTool.png + images/toolPalette/triangleTool.png + images/toolPalette/protractorTool.png + images/toolPalette/compassTool.png + images/toolPalette/aristoTool.png + images/toolPalette/maskTool.png + images/toolPalette/magnifierTool.png + images/extraPalette/blackout.png + images/extraPalette/keyboard.png + images/extraPalette/trapFlash.png + images/extraPalette/webTrap.png + images/extraPalette/webTrapEnabled.png + images/extraPalette/oEmbed.png + images/erasePalette/eraseAll.svg + images/erasePalette/eraseItem.svg + images/erasePalette/eraseAnnotation.svg + images/erasePalette/eraseBackground.svg + images/cursors/eraser.png + images/cursors/laser.png + images/cursors/marker.png + images/cursors/zoomIn.png + images/cursors/zoomOut.png + images/cursors/rotate.png + images/cursors/resize.png + images/cursors/drawCompass.png + images/cursors/drawRulerLine.png + images/cursors/play.png + images/print/onepage.png + images/print/thumbnails.png + images/print/twopages.png + images/defaultWidgetIcon.png + images/favorites.png + images/myContent.png + images/myFolder.png + images/online.png + images/tools.png + images/folder.png + images/addItemToCurrentPage.svg + images/addItemToNewPage.svg + images/addItemToLibrary.svg + style/treeview-branch-closed.png + style/treeview-branch-open.png + webbrowser/closetab.png + webbrowser/loading.gif + webbrowser/notfound.html + webbrowser/object-wrapper.html + macx/PowerPointImport.applescript + podcast/OpenBoard.prx + www/OpenBoard-web-player.html + images/toolbar/tutorial.png + images/edit-mode.svg + images/save.svg + images/libpalette/social.png + images/navig_arrow.png + images/flags/ar.png + images/flags/bg.png + images/flags/ca.png + images/flags/cs.png + images/flags/da.png + images/flags/de.png + images/flags/el.png + images/flags/en.png + images/flags/eo.png + images/flags/es.png + images/flags/et.png + images/flags/eu.png + images/flags/fa.png + images/flags/fi.png + images/flags/fo.png + images/flags/fr.png + images/flags/ga.png + images/flags/gl.png + images/flags/he.png + images/flags/hr.png + images/flags/hu.png + images/flags/id.png + images/flags/is.png + images/flags/it.png + images/flags/ja.png + images/flags/km.png + images/flags/lb.png + images/flags/lt.png + images/flags/lv.png + images/flags/nb.png + images/flags/nl.png + images/flags/nn.png + images/flags/pl.png + images/flags/pt-br.png + images/flags/pt-pt.png + images/flags/ro.png + images/flags/ru.png + images/flags/sco.png + images/flags/se.png + images/flags/sk.png + images/flags/sl.png + images/flags/sq.png + images/flags/sv.png + images/flags/tg.png + images/flags/th.png + images/flags/tl.png + images/flags/tr.png + images/flags/uk.png + images/flags/vi.png + images/flags/zh-hans.png + images/flags/zh-hant.png + images/libpalette/notFound.png + images/libpalette/trash_favorite.svg + images/libpalette/back.png + images/libpalette/loading.png + images/stylusPalette/eraserArrow.svg + images/stylusPalette/eraserOnArrow.svg + images/stylusPalette/markerArrow.svg + images/stylusPalette/markerOnArrow.svg + images/stylusPalette/penArrow.svg + images/stylusPalette/penOnArrow.svg + images/libpalette/AudiosCategory.svg + images/libpalette/PicturesCategory.svg + images/libpalette/ShapesCategory.svg + images/libpalette/InteractivesCategory.svg + images/libpalette/movieIcon.svg + images/libpalette/soundIcon.svg + images/libpalette/folder.svg + images/libpalette/TrashCategory.svg + images/libpalette/FavoritesCategory.svg + images/libpalette/ApplicationsCategory.svg + images/libpalette/miniSearch.png + images/libpalette/miniTrash.png + images/libpalette/miniNewFolder.png + images/libpalette/miniFavorite.png + images/libpalette/home.png + images/toolbar/updates.png + images/paletteLibrary.png + images/paletteNavigator.png + images/toolbar/display.png + images/toolbar/hide.png + images/toolbar/record.png + images/libpalette/MoviesCategory.svg + images/virtual.keyboard/41/centre-passive.png + images/virtual.keyboard/41/left-passive.png + images/virtual.keyboard/41/right-passive.png + images/virtual.keyboard/41/centre-active.png + images/virtual.keyboard/41/left-active.png + images/virtual.keyboard/41/right-active.png + images/virtual.keyboard/41/backspace.png + images/virtual.keyboard/41/capslock.png + images/virtual.keyboard/41/shift.png + images/virtual.keyboard/41/tab.png + images/virtual.keyboard/29/centre-passive.png + images/virtual.keyboard/29/left-passive.png + images/virtual.keyboard/29/right-passive.png + images/virtual.keyboard/29/centre-active.png + images/virtual.keyboard/29/left-active.png + images/virtual.keyboard/29/right-active.png + images/virtual.keyboard/29/backspace.png + images/virtual.keyboard/29/capslock.png + images/virtual.keyboard/29/shift.png + images/virtual.keyboard/29/tab.png + images/toolPalette/cacheTool.png + images/libpalette/FlashCategory.svg + images/libpalette/FlashIcon.svg + images/toolbar/stylusTab.png + images/library_close.png + images/library_open.png + images/pages_close.png + images/pages_open.png + images/cache_close.png + images/cache_open.png + images/cache_circle.png + images/cache_square.png + images/down_arrow.png + images/up_arrow.png + images/left_arrow.png + images/right_arrow.png + images/moveUp.svg + images/moveDown.svg + images/moveDownDisabled.svg + images/closeDisabled.svg + images/menuDisabled.svg + images/moveUpDisabled.svg + style.qss + images/libpalette/WebSearchCategory.svg + images/download_close.png + images/download_open.png + images/tab_mask.png + images/duplicateDisabled.svg + images/roundeRrectangle.svg + images/circle.svg + images/rightAligned.svg + images/centerAligned.svg + images/leftAligned.svg + images/notAligned.svg + images/groupItems.svg + images/ungroupItems.svg + images/setAsBackground.svg + images/backgroundPalette/resetDefaultGridSize.svg + images/collapse-all.png + images/expand-all.png + images/asc.png + images/desc.png + images/toolPalette/axesTool.png + images/numbersTool.svg + images/stylusPalette/pen.svg + + diff --git a/resources/customizations/fonts/AndBasR.ttf b/resources/customizations/fonts/AndBasR.ttf new file mode 100755 index 0000000..d785cc9 Binary files /dev/null and b/resources/customizations/fonts/AndBasR.ttf differ diff --git a/resources/customizations/fonts/Bstgreek.ttf b/resources/customizations/fonts/Bstgreek.ttf new file mode 100755 index 0000000..31a5d73 Binary files /dev/null and b/resources/customizations/fonts/Bstgreek.ttf differ diff --git a/resources/customizations/fonts/EcritureA-Italique-Ligne.otf b/resources/customizations/fonts/EcritureA-Italique-Ligne.otf new file mode 100644 index 0000000..72dd6c2 Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Italique-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Italique-Orne-Ligne.otf b/resources/customizations/fonts/EcritureA-Italique-Orne-Ligne.otf new file mode 100644 index 0000000..f1789ce Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Italique-Orne-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Italique-Orne.otf b/resources/customizations/fonts/EcritureA-Italique-Orne.otf new file mode 100644 index 0000000..89b6962 Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Italique-Orne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Italique.otf b/resources/customizations/fonts/EcritureA-Italique.otf new file mode 100644 index 0000000..1853c97 Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Italique.otf differ diff --git a/resources/customizations/fonts/EcritureA-Romain-Ligne.otf b/resources/customizations/fonts/EcritureA-Romain-Ligne.otf new file mode 100644 index 0000000..36de5ce Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Romain-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Romain-Orne-Ligne.otf b/resources/customizations/fonts/EcritureA-Romain-Orne-Ligne.otf new file mode 100644 index 0000000..c7f8d9d Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Romain-Orne-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Romain-Orne.otf b/resources/customizations/fonts/EcritureA-Romain-Orne.otf new file mode 100644 index 0000000..07ea2a0 Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Romain-Orne.otf differ diff --git a/resources/customizations/fonts/EcritureA-Romain.otf b/resources/customizations/fonts/EcritureA-Romain.otf new file mode 100644 index 0000000..f439fde Binary files /dev/null and b/resources/customizations/fonts/EcritureA-Romain.otf differ diff --git a/resources/customizations/fonts/EcritureB-Italique-Ligne.otf b/resources/customizations/fonts/EcritureB-Italique-Ligne.otf new file mode 100644 index 0000000..a27028b Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Italique-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Italique-Orne-Ligne.otf b/resources/customizations/fonts/EcritureB-Italique-Orne-Ligne.otf new file mode 100644 index 0000000..dca9e48 Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Italique-Orne-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Italique-Orne.otf b/resources/customizations/fonts/EcritureB-Italique-Orne.otf new file mode 100644 index 0000000..f6b56bd Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Italique-Orne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Italique.otf b/resources/customizations/fonts/EcritureB-Italique.otf new file mode 100644 index 0000000..83b432b Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Italique.otf differ diff --git a/resources/customizations/fonts/EcritureB-Romain-Ligne.otf b/resources/customizations/fonts/EcritureB-Romain-Ligne.otf new file mode 100644 index 0000000..d28d337 Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Romain-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Romain-Orne-Ligne.otf b/resources/customizations/fonts/EcritureB-Romain-Orne-Ligne.otf new file mode 100644 index 0000000..638b18e Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Romain-Orne-Ligne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Romain-Orne.otf b/resources/customizations/fonts/EcritureB-Romain-Orne.otf new file mode 100644 index 0000000..ca13e7a Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Romain-Orne.otf differ diff --git a/resources/customizations/fonts/EcritureB-Romain.otf b/resources/customizations/fonts/EcritureB-Romain.otf new file mode 100644 index 0000000..8fd3e84 Binary files /dev/null and b/resources/customizations/fonts/EcritureB-Romain.otf differ diff --git a/resources/customizations/fonts/GETypoLibre.otf b/resources/customizations/fonts/GETypoLibre.otf new file mode 100644 index 0000000..e0df967 Binary files /dev/null and b/resources/customizations/fonts/GETypoLibre.otf differ diff --git a/resources/customizations/fonts/ec_cour.ttf b/resources/customizations/fonts/ec_cour.ttf new file mode 100644 index 0000000..571571e Binary files /dev/null and b/resources/customizations/fonts/ec_cour.ttf differ diff --git a/resources/customizations/fonts/ecl_cour.ttf b/resources/customizations/fonts/ecl_cour.ttf new file mode 100644 index 0000000..af61c8e Binary files /dev/null and b/resources/customizations/fonts/ecl_cour.ttf differ diff --git a/resources/etc/OpenBoard.config b/resources/etc/OpenBoard.config new file mode 100644 index 0000000..5a2615e --- /dev/null +++ b/resources/etc/OpenBoard.config @@ -0,0 +1,161 @@ +[App] +AngleTolerance=4 +HideCheckForSoftwareUpdate=false +HideSwapDisplayScreens=true +EnableAutomaticSoftwareUpdates=true +EnableSoftwareUpdates=true +EnableStartupHints=true +FavoriteToolURIs=openboardtool://openboard/mask, openboardtool://ruler, openboardtool://compass, openboardtool://protractor, openboardtool://triangle, openboardtool://magnifier, openboardtool://cache +IsInSoftwareUpdateProcess=false +LastSessionDocumentUUID= +LastSessionPageIndex=0 +LookForOpenSankoreInstall=true +OnlineUserName= +PageCacheSize=20 +PreferredLanguage=fr_CH +ProductWebAddress=http://www.openboard.ch +SoftwareUpdateURL=http://www.openboard.ch/update.json +StartMode= +SwapControlAndDisplayScreens=false +ToolBarDisplayText=true +ToolBarOrientationVertical=false +ToolBarPositionedAtTop=true +TutorialUrl=http://www.openboard.ch +UseMultiscreenMode=true +UseSystemOnScreenKeyboard=true + +[Board] +AutoSaveIntervalInMinutes=3 +CrossColorDarkBackground=#C8C0C0C0 +CrossColorLightBackground=#A5E1FF +DarkBackground=0 +DefaultPageSize=@Size(1280 960) +EnableIntermediateLines=false +EnableToolAxes=false +EraserCircleWidthIndex=1 +LineStyleIndex=0 +FeatureSliderPosition=40 +GridDarkBackgroundColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00, #B68360, #FF497E, #8D69FF, #C8C0C0C0 +GridLightBackgroundColors=#000000, #FF0000, #004080, #008000, #FFDD00, #C87400, #800040, #008080, #5F2D0A, #A5E1FF +InterpolateMarkerStrokes=true +InterpolatePenStrokes=true +KeyboardPaletteKeyBtnSize=16x16 +LeftLibPaletteBoardModeIsCollapsed=true +LeftLibPaletteBoardModeWidth=270 +LeftLibPaletteDesktopModeIsCollapsed=true +LeftLibPaletteDesktopModeWidth=270 +MagnifierDrawingMode=0 +MarkerAlpha=0.5 +MarkerColorIndex=0 +MarkerDarkBackgroundColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360, #FF497E, #8D69FF, #FFFFFF +MarkerDarkBackgroundSelectedColors=#FFFF00, #FF4400, #66C0FF, #81FF5C, #B68360 +MarkerFineWidth=12 +MarkerLightBackgroundColors=#E3FF00, #FF0000, #004080, #008000, #C87400, #800040, #008080, #000000 +MarkerLightBackgroundSelectedColors=#E3FF00, #FF0000, #004080, #008000, #C87400 +MarkerMediumWidth=24 +MarkerPressureSensitive=false +MarkerStrongWidth=48 +pageDpi=0 +PenColorIndex=0 +PenDarkBackgroundColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00, #B68360, #FF497E, #8D69FF, #000000 +PenDarkBackgroundSelectedColors=#FFFFFF, #FF3400, #66C0FF, #81FF5C, #FFFF00 +PenFineWidth=1.5 +PenLightBackgroundColors=#000000, #FF0000, #004080, #008000, #FFDD00, #C87400, #800040, #008080, #5F2D0A, #FFFFFF +PenLightBackgroundSelectedColors=#000000, #FF0000, #004080, #008000, #FFDD00 +PenLineWidthIndex=0 +PenMediumWidth=3 +PenPressureSensitive=true +PenStrongWidth=8 +PointerDiameter=40 +RightLibPaletteBoardModeIsCollapsed=true +RightLibPaletteBoardModeWidth=270 +RightLibPaletteDesktopModeIsCollapsed=true +RightLibPaletteDesktopModeWidth=270 +ShowEraserPreviewCircle=true +ShowMarkerPreviewCircle=true +ShowPenPreviewCircle=true +PenPreviewFromSize=5 +ShowToolsPalette=false +SimplifyMarkerStrokes=true +SimplifyPenStrokes=true +SimplifyPenStrokesThresholdAngle=3 +SimplifyPenStrokesThresholdWidthDifference=2 +StartupKeyboardLocale=0 +UseHighResTabletEvent=true +ZoomFactor=1.4099999999999999 + +[Community] +CredentialsPersistence=false +Password= +Username= + +[Document] +EmptyGroupNames=@Invalid() +emptyTrashForOlderDocuments=false +emptyTrashDaysValue=30 +ThumbnailWidth=150 +SortKind=0 +SortOrder=0 +SplitterLeftSize=200 +SplitterRightSize=800 +ShowDateColumnOnAlphabeticalSort=false + +[IntranetPodcast] +Author= +PublishToIntranet=false +PublishingUrl= + +[Library] +AnimationsDirectory=./library/animations +ApplicationsDirectory=./library/applications +AudiosDirectory=./library/audios +ImageDirectory=./library/pictures +ImageThumbnailWidth=150 +InteractivitiesDirectory=./library/interactivities +LibIconSize=80 +ShapeDirectory=./library/shape +ShapeThumbnailWidth=50 +ShowDetailsForLocalItems=false +SoundThumbnailWidth=50 +VideoThumbnailWidth=80 +VideosDirectory=./library/videos + +[Mirroring] +RefreshRateInFramePerSecond=2 + +[PDF] +enableQualityLossToIncreaseZoomPerfs=true +Margin=20 +PageFormat=A4 +Resolution=300 +ZoomBehavior=4 + +[Podcast] +AudioRecordingDevice=Default +FramesPerSecond=10 +PublishToYouTube=false +QuickTimeQuality=High +VideoSize=Medium +WindowsMediaBitsPerSecond=1700000 + +[SVG] +ViewBoxMargin=50 + +[Voting] +ReplyPlusAddressingMode=static +ReplyPlusConnectionURL=USB +ReplyPlusMaxKeypads=100 +ReplyWWSerialPort=3 + +[Web] +AddBookmarkURL="http://www.myuniboard.com/bookmarks/save/?url=" +BookmarksPage=http://www.myuniboard.com +HistoryLimit=15 +Homepage=http://www.openboard.ch +ShowAddBookmarkButton=true +ShowPageImediatelyOnMirroredScreen=false +UseExternalBrowser=false + +[YouTube] +CredentialsPersistence=false +UserEMail= diff --git a/resources/etc/OpenBoard.css b/resources/etc/OpenBoard.css new file mode 100644 index 0000000..33963c9 --- /dev/null +++ b/resources/etc/OpenBoard.css @@ -0,0 +1,390 @@ +QWidget:enabled +{ + color: #3F3F3F; +} + +QWidget:disabled +{ + color: #777777; +} + +QComboBox, +QPushButton, +QComboBox QAbstractItemView +{ + background: #dddddd; +} + +QTextEdit, +QLineEdit, +QComboBox#DockPaletteWidgetComboBox QAbstractItemView +{ + selection-background-color: lightgreen; + selection-color: black; +} +QProgressBar:horizontal { + border: 1px solid gray; + border-radius: 3px; + background: white; + padding: 1px; +} +QProgressBar::chunk:horizontal { + /*background: qlineargradient(x1: 0, y1: 0.5, x2: 1, y2: 0.5, stop: 0 green, stop: 1 lightgreen);*/ + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4); +} + +QMainWindow +{ + background-color: #F1F1F1; +} + +QDialog +{ + background-color: #dddddd; +} + +QMenu +{ + border: none; + font-size: 12px; + background-color: #dddddd; +} + +QMenu::item +{ + background-color: #b3b3b3; +} + +QMenu::item:selected +{ + background-color: #9f9f9f; +} + +QMenu::separator +{ + background-color: #b3b3b3; + border: 1px dotted #888888; +} + +QToolBar +{ + spacing: 0px; + background-color: #b3b3b3; + border: none; + border-bottom: 1px solid #888888; +} + +QToolBar::handle +{ + margin: 2px; + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d3d3d3, stop: 1 #c4c4c4); +} + +QToolBar::separator +{ + border: 1px dotted #888888; border-left: none; margin-left: 5px; margin-right: 5px; width: 1px; +} + +QToolBar QToolButton +{ + + margin: 4px; + margin-left: 0px; + margin-right: 0px; + padding: 0px; + border: none; + height: 58px; +} + +QToolBar QToolButton:pressed +{ + margin: 4px; + margin-left: 0px; + margin-right: 0px; + padding: 0px; + border: none; + height: 58px; + + background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, + fx:0.5, fy:0.5, stop: 0 #d3d3d3, stop: 1 #b3b3b3); +} + +QDialog QToolButton:pressed +{ + background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, + fx:0.5, fy:0.5, stop: 0 #ffffff, stop: 1 #dddddd); +} + +QToolButton#ubButtonGroupLeft +{ + background: qlineargradient(x1: 0, y1: 0.49, x2: 0, y2: 0.5, stop: 0 #d3d3d3, stop: 1 #c4c4c4); + margin-top: 1px; + margin-right: 0px; + padding: 5px; + + border: 1px solid #444444; + border-right: none; + border-top-left-radius : 3px; + border-bottom-left-radius : 3px; + height: 14px; +} + +QToolButton#ubButtonGroupCenter +{ + background: qlineargradient(x1: 0, y1: 0.49, x2: 0, y2: 0.5, stop: 0 #d3d3d3, stop: 1 #c4c4c4); + margin-top: 1px; + margin-right: 0px; + margin-left: 0px; + padding: 5px; + + border: 1px solid #444444; + border-right: none; + border-left: none; + height: 14px; +} + +QToolButton#ubButtonGroupRight +{ + background: qlineargradient(x1: 0, y1: 0.49, x2: 0, y2: 0.5, stop: 0 #d3d3d3, stop: 1 #c4c4c4); + margin-top: 1px; + margin-left: 0px; + padding: 5px; + + border: 1px solid #444444; + border-left: none; + border-top-right-radius : 3px; + border-bottom-right-radius : 3px; + height: 14px; +} + +QToolButton#ubButtonGroupLeft:checked, +QToolButton#ubButtonGroupCenter:checked, +QToolButton#ubButtonGroupRight:checked +{ + background: qlineargradient(x1: 0, y1: 0.49, x2: 0, y2: 0.5, stop: 0 #c3c3c3, stop: 1 #b4b4b4); +} + +QToolButton#ubButtonGroupLeft:checked +{ + border-right: 1px solid #444444; + padding-right: 4px; +} + +QToolButton#ubButtonGroupCenter:checked +{ + border-left: 1px solid #444444; + border-right: 1px solid #444444; + padding-right: 4px; + padding-left: 4px; +} + +QToolButton#ubButtonGroupRight:checked +{ + border-left: 1px solid #444444; + padding-left: 4px; +} + +QToolButton#ubButtonMenu +{ + margin-right: 2px; + padding-right: 12px; +} + +QToolButton#ubButtonMenu:pressed, +QToolButton#ubButtonMenu:checked +{ + background-color: #b3b3b3; +} + +QToolButton#ubActionPaletteButton +{ + margin: 0px; +} + +QFrame#newDocumentFolderFrame, +QFrame#newDocumentFrame, +QFrame#newFolderFrame +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e6eaf0, stop: 1 #dbe0e8); + margin: 0px; + padding: 0px; + border: none; +} + +QFrame#topLeftFrame, +QFrame#imageTopLeftFrame, +QFrame#interactiveTopLeftFrame, +QFrame#videoTopLeftFrame, +QFrame#toolTopLeftFrame +{ + border: none; + border-right: 1px solid #888888; +} + +QWidget#topRightFrame +{ + background-color: #d3d3d3; +} + +QFrame#toolFrame +{ + border-top: 1px solid #888888; +} + +QTreeView +{ + background-color: rgb(209, 215, 226); +} + +QTreeView::item:selected:active +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #AAB7C4, stop: 1 #7e8eA0); + border: none; +} + +QTreeView::item +{ + padding-top: 1.5 px; + padding-bottom: 1.5 px; +} + +QTreeView::item:selected, +QTreeView::branch:selected +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #AAB7C4, stop: 1 #7e8eA0); + border: none; +} + +QTreeView::branch:has-siblings:!adjoins-item, +QTreeView::branch:!has-children:!has-siblings:adjoins-item, +QTreeView::branch:has-siblings:adjoins-item +{ + border-image: none; + image: none; +} + +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings +{ + border-image: none; + image: url(:/style/treeview-branch-closed.png); +} + +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings +{ + border-image: none; + image: url(:/style/treeview-branch-open.png); +} + +QSlider::groove:horizontal +{ + border: 1px solid #999999; + height: 2px; + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4); + margin: 2px 0; +} + +QSlider::handle:horizontal +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 1 #b8b8b8); + border: 1px solid #5c5c5c; + + width: 18px; + margin: -2px 0; + border-radius: 6px; +} + +QTabWidget::pane +{ + border: 1px solid #888888; + margin-top: -2px; +} + +QTabWidget::pane#libraryTabWidget +{ + border: none; + border-top: 1px solid #888888; +} + +QTabWidget::tab-bar +{ + alignment: center; +} + +QTabWidget::tab-bar#ubWebBrowserTabWidget +{ + background: #dddddd; + alignment: left; +} + +QTabBar::tab +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d3d3d3, stop: 1 #c4c4c4); + + border: 1px solid #888888; + + border-bottom: none; + + border-top-left-radius: 3px; + border-top-right-radius: 3px; + + min-width: 12ex; + margin: 2px; + margin-top: 6px; + margin-bottom: 2px; + padding: 4px; + + height: 14px; +} + +QTabBar::tab:first +{ + border-left: 1px solid #888888; +} + +QTabBar::tab:last +{ + border-right: 1px solid #888888; +} + +QTabBar::tab:selected +{ + border-right: 1px solid #888888; + border-left: 1px solid #888888; + border-bottom: none; +} + +QTabBar::tab:first:selected +{ + border-right: 1px solid #888888; +} + +QTabBar::tab:last:selected +{ + border-left: 1px solid #888888; +} + +QTabBar::tab:selected +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaaaaa, stop: 1 #b8b8b8); +} + +QTabBar::tab#ubWebBrowserTabBar +{ + background: #dddddd; + min-width: 150px; +} + +QTabBar::tab:selected#ubWebBrowserTabBar +{ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #b3b3b3, stop: 1 #dddddd); +} + +QLineEdit#ubWebBrowserLineEdit +{ + border: 1px solid #888888; + border-radius: 3px; + padding: 2 2px; + background: white; +} diff --git a/resources/etc/freezedWidgetWrapper.html b/resources/etc/freezedWidgetWrapper.html new file mode 100644 index 0000000..00aaeb1 --- /dev/null +++ b/resources/etc/freezedWidgetWrapper.html @@ -0,0 +1,57 @@ + + + ololo + + + + +
Loading ...
+ + \ No newline at end of file diff --git a/resources/etc/img/loading.gif b/resources/etc/img/loading.gif new file mode 100644 index 0000000..feb4229 Binary files /dev/null and b/resources/etc/img/loading.gif differ diff --git a/resources/etc/intranet-podcast-metadata.template b/resources/etc/intranet-podcast-metadata.template new file mode 100644 index 0000000..d02e135 --- /dev/null +++ b/resources/etc/intranet-podcast-metadata.template @@ -0,0 +1,12 @@ + + + {title} + {description} + {author} + {publicationISODateTime} + {duration} + {fileName} + {filePath} + {computerName} + {fileSize} + diff --git a/resources/etc/npapi-wrapper.application.x-shockwave-flash.swf.htm b/resources/etc/npapi-wrapper.application.x-shockwave-flash.swf.htm new file mode 100644 index 0000000..909d19d --- /dev/null +++ b/resources/etc/npapi-wrapper.application.x-shockwave-flash.swf.htm @@ -0,0 +1,29 @@ + + + + Flash Widget + + + + + +
+ + + + + +
+ + diff --git a/resources/etc/npapi-wrapper.config.xml b/resources/etc/npapi-wrapper.config.xml new file mode 100644 index 0000000..dc3d721 --- /dev/null +++ b/resources/etc/npapi-wrapper.config.xml @@ -0,0 +1,12 @@ + + + {in.name} + + + diff --git a/resources/fonts/COPYRIGHT b/resources/fonts/COPYRIGHT new file mode 100644 index 0000000..d19eac2 --- /dev/null +++ b/resources/fonts/COPYRIGHT @@ -0,0 +1,24 @@ +The fonts on this directory are a subset the fonts contained on the gsfonts package. + +All the fonts are under the license above + + +Upstream Authors: URW++ Design & Development GmbH + Valek Filippov et. al. + +Copyright: Copyright (c) 2001- Valek Filippov, All Rights Reserved. + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This package 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301, USA. + diff --git a/resources/fonts/d050000l.pfb b/resources/fonts/d050000l.pfb new file mode 100644 index 0000000..4a3c386 Binary files /dev/null and b/resources/fonts/d050000l.pfb differ diff --git a/resources/fonts/n019003l.pfb b/resources/fonts/n019003l.pfb new file mode 100644 index 0000000..c2a9e86 Binary files /dev/null and b/resources/fonts/n019003l.pfb differ diff --git a/resources/fonts/n019004l.pfb b/resources/fonts/n019004l.pfb new file mode 100644 index 0000000..726f91f Binary files /dev/null and b/resources/fonts/n019004l.pfb differ diff --git a/resources/fonts/n019023l.pfb b/resources/fonts/n019023l.pfb new file mode 100644 index 0000000..66467fb Binary files /dev/null and b/resources/fonts/n019023l.pfb differ diff --git a/resources/fonts/n019024l.pfb b/resources/fonts/n019024l.pfb new file mode 100644 index 0000000..e95c48c Binary files /dev/null and b/resources/fonts/n019024l.pfb differ diff --git a/resources/fonts/n021003l.pfb b/resources/fonts/n021003l.pfb new file mode 100644 index 0000000..1f6f6d8 Binary files /dev/null and b/resources/fonts/n021003l.pfb differ diff --git a/resources/fonts/n021004l.pfb b/resources/fonts/n021004l.pfb new file mode 100644 index 0000000..b5b6aac Binary files /dev/null and b/resources/fonts/n021004l.pfb differ diff --git a/resources/fonts/n021023l.pfb b/resources/fonts/n021023l.pfb new file mode 100644 index 0000000..911d62f Binary files /dev/null and b/resources/fonts/n021023l.pfb differ diff --git a/resources/fonts/n021024l.pfb b/resources/fonts/n021024l.pfb new file mode 100644 index 0000000..f24f480 Binary files /dev/null and b/resources/fonts/n021024l.pfb differ diff --git a/resources/fonts/n022003l.pfb b/resources/fonts/n022003l.pfb new file mode 100644 index 0000000..7daba4a Binary files /dev/null and b/resources/fonts/n022003l.pfb differ diff --git a/resources/fonts/n022004l.pfb b/resources/fonts/n022004l.pfb new file mode 100644 index 0000000..c269502 Binary files /dev/null and b/resources/fonts/n022004l.pfb differ diff --git a/resources/fonts/n022023l.pfb b/resources/fonts/n022023l.pfb new file mode 100644 index 0000000..d8c7dab Binary files /dev/null and b/resources/fonts/n022023l.pfb differ diff --git a/resources/fonts/n022024l.pfb b/resources/fonts/n022024l.pfb new file mode 100644 index 0000000..979698e Binary files /dev/null and b/resources/fonts/n022024l.pfb differ diff --git a/resources/fonts/s050000l.pfb b/resources/fonts/s050000l.pfb new file mode 100644 index 0000000..d0505e4 Binary files /dev/null and b/resources/fonts/s050000l.pfb differ diff --git a/resources/forms/blackoutWidget.ui b/resources/forms/blackoutWidget.ui new file mode 100644 index 0000000..372d5c9 --- /dev/null +++ b/resources/forms/blackoutWidget.ui @@ -0,0 +1,195 @@ + + + BlackoutWidget + + + + 0 + 0 + 723 + 838 + + + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + + 512 + 512 + + + + + 512 + 512 + + + + background: url(:/images/bigOpenBoard.png); border: none; + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + + + 113 + 113 + 113 + + + + + + + + + 20 + + + + Click to Return to Application + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + diff --git a/resources/forms/brushProperties.ui b/resources/forms/brushProperties.ui new file mode 100644 index 0000000..5c4de12 --- /dev/null +++ b/resources/forms/brushProperties.ui @@ -0,0 +1,552 @@ + + + brushProperties + + + + 0 + 0 + 605 + 808 + + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Pen is Pressure Sensitive + + + + + + + Qt::Horizontal + + + + 198 + 20 + + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + Qt::Horizontal + + + + 154 + 20 + + + + + + + + Opacity + + + + + + + 20 + + + 100 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 20 + + + + + + + Qt::Horizontal + + + + 156 + 20 + + + + + + + + + + + Qt::LeftToRight + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + On Light Background + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 32 + 32 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + On Dark Background + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 32 + 32 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + + + + + 0 + 0 + + + + Line Width + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + 5 + + + 500 + + + 5 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 100 + + + + + + + Medium + + + + + + + 5 + + + 500 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 100 + + + + + + + Strong + + + + + + + 5 + + + 500 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 100 + + + + + + + + 60 + 60 + + + + + 60 + 60 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + 60 + 60 + + + + + 60 + 60 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + 60 + 60 + + + + + 60 + 60 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + Fine + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + Show preview circle from + + + + + + + + + + px + + + + + + + + + + Qt::Horizontal + + + + 198 + 20 + + + + + + + + + UBColorPicker + QFrame +
gui/UBColorPicker.h
+ 1 +
+ + UBCircleFrame + QFrame +
gui/UBCircleFrame.h
+ 1 +
+
+ + +
diff --git a/resources/forms/capturePublishing.ui b/resources/forms/capturePublishing.ui new file mode 100644 index 0000000..aed192f --- /dev/null +++ b/resources/forms/capturePublishing.ui @@ -0,0 +1,108 @@ + + + capturePublishingDialog + + + Qt::WindowModal + + + + 0 + 0 + 607 + 362 + + + + Dialog + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Title + + + + + + + 60 + + + + + + + E-mail + + + + + + + + + + Author + + + + + + + + + + Description + + + + + + + + 0 + 0 + + + + + 0 + 168 + + + + + + + + Qt::Vertical + + + + 20 + 10 + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + diff --git a/resources/forms/documents.ui b/resources/forms/documents.ui new file mode 100644 index 0000000..efec7a6 --- /dev/null +++ b/resources/forms/documents.ui @@ -0,0 +1,363 @@ + + + documents + + + true + + + + 0 + 0 + 796 + 646 + + + + + 0 + 0 + + + + Qt::DefaultContextMenu + + + OpenBoard Documents + + + + + + + + + + + + + 400 + 0 + + + + Qt::Horizontal + + + true + + + 6 + + + false + + + + + 0 + 0 + + + + + + + QLayout::SetMinimumSize + + + + + + 4 + 0 + + + + + 200 + 16777215 + + + + + + + QComboBox::AdjustToMinimumContentsLength + + + 0 + + + + Creation date + + + + + Update date + + + + + Alphabetical order + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + 0 + 0 + + + + Sort Order + + + QToolButton { border-style:none; border-width: 0px;margin-left:2px;margin-right:2px} + + + + + + + :/images/asc.png + :/images/desc.png:/images/asc.png + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + QFrame::NoFrame + + + QFrame::Plain + + + true + + + 65 + + + QAbstractItemView::ExtendedSelection + + + QAbstractItemView::SelectRows + + + QAbstractItemView::ScrollPerItem + + + true + + + true + + + false + + + + + + + + + + + + + + Qt::NoContextMenu + + + + + + QFrame::NoFrame + + + QFrame::Plain + + + 1 + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAlwaysOff + + + QGraphicsView::NoDrag + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + 300 + 20 + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + + + 50 + + + 500 + + + 10 + + + 150 + + + Qt::Horizontal + + + false + + + false + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 40 + 20 + + + + + + + + + + + + + + + + + + + + UBDocumentThumbnailWidget + QGraphicsView +
gui/UBDocumentThumbnailWidget.h
+
+ + UBDocumentTreeView + QTreeView +
document/UBDocumentController.h
+
+
+ + + + +
diff --git a/resources/forms/intranetPodcastPublishingDialog.ui b/resources/forms/intranetPodcastPublishingDialog.ui new file mode 100644 index 0000000..01a8ece --- /dev/null +++ b/resources/forms/intranetPodcastPublishingDialog.ui @@ -0,0 +1,90 @@ + + + IntranetPodcastPublishingDialog + + + Qt::WindowModal + + + + 0 + 0 + 540 + 303 + + + + Publish Podcast to YouTube + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Title + + + + + + + 60 + + + + + + + Description + + + + + + + + 0 + 0 + + + + + 0 + 168 + + + + + + + + Author + + + + + + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + diff --git a/resources/forms/mainWindow.ui b/resources/forms/mainWindow.ui new file mode 100644 index 0000000..3d6c7de --- /dev/null +++ b/resources/forms/mainWindow.ui @@ -0,0 +1,1758 @@ + + + MainWindow + + + + 0 + 0 + 1342 + 268 + + + + OpenBoard + + + + :/images/OpenBoard.png:/images/OpenBoard.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + false + + + + + Qt::PreventContextMenu + + + Board + + + false + + + Qt::BottomToolBarArea|Qt::TopToolBarArea + + + + 48 + 32 + + + + false + + + TopToolBarArea + + + false + + + + + + + + + + + + + + + + + + + + + Qt::PreventContextMenu + + + Web + + + false + + + Qt::BottomToolBarArea|Qt::TopToolBarArea + + + + 48 + 32 + + + + false + + + TopToolBarArea + + + true + + + + + + + + + + + + + + + + + + + + + Qt::PreventContextMenu + + + Documents + + + false + + + Qt::BottomToolBarArea|Qt::TopToolBarArea + + + + 48 + 32 + + + + false + + + TopToolBarArea + + + true + + + + + + + + + + + + + + + + + + + + + + + + + true + + + true + + + + :/images/toolbar/stylus.png:/images/toolbar/stylus.png + + + Stylus + + + Stylus + + + Ctrl+T + + + + + true + + + + :/images/toolbar/background.png:/images/toolbar/background.png + + + Backgrounds + + + Change Background + + + + + + :/images/toolbar/undoOn.png:/images/toolbar/undoOn.png + + + Undo + + + Ctrl+Z + + + + + + :/images/toolbar/redoOn.png:/images/toolbar/redoOn.png + + + Redo + + + Ctrl+Y + + + + + + :/images/toolbar/previousPageOn.png:/images/toolbar/previousPageOn.png + + + Previous + + + Previous Page + + + PgUp + + + + + + :/images/toolbar/nextPageOn.png:/images/toolbar/nextPageOn.png + + + Next + + + Next Page + + + PgDown + + + + + false + + + + :/images/toolbar/documents.png:/images/toolbar/documents.png + + + Documents + + + Manage Documents + + + Ctrl+D + + + + + + :/images/toolbar/web.png:/images/toolbar/web.png + + + Web + + + Web Browsing + + + Ctrl+W + + + + + true + + + true + + + + :/images/toolbar/smallPen.png:/images/toolbar/smallPen.png + + + Line + + + Small Line + + + + + true + + + + :/images/toolbar/mediumPen.png:/images/toolbar/mediumPen.png + + + Line + + + Medium Line + + + + + true + + + + :/images/toolbar/largePen.png:/images/toolbar/largePen.png + + + Line + + + Large Line + + + + + + :/images/toolbar/quitOn.png:/images/toolbar/quitOn.png + + + Quit + + + Quit OpenBoard + + + Qt::WindowShortcut + + + QAction::NoRole + + + + + true + + + + :/images/toolbar/smallEraser.png:/images/toolbar/smallEraser.png + + + Eraser + + + Small Eraser + + + + + true + + + true + + + + :/images/toolbar/mediumEraser.png:/images/toolbar/mediumEraser.png + + + Eraser + + + Medium Eraser + + + + + true + + + + :/images/toolbar/largeEraser.png:/images/toolbar/largeEraser.png + + + Eraser + + + Large Eraser + + + + + true + + + + :/images/toolbar/color.png:/images/toolbar/color.png + + + Color 1 + + + Color 1 + + + + + true + + + + :/images/toolbar/color.png:/images/toolbar/color.png + + + Color 2 + + + Color 2 + + + + + true + + + + :/images/toolbar/color.png:/images/toolbar/color.png + + + Color 3 + + + Color 3 + + + + + true + + + + :/images/toolbar/color.png:/images/toolbar/color.png + + + Color 4 + + + Color 4 + + + + + true + + + + :/images/toolbar/color.png:/images/toolbar/color.png + + + Color 5 + + + Color 5 + + + + + + :/images/toolbar/previous.png:/images/toolbar/previous.png + + + Back + + + Previous Page + + + Left + + + + + + :/images/toolbar/next.png:/images/toolbar/next.png + + + Forward + + + Next Page + + + Right + + + + + + :/images/toolbar/reload.png:/images/toolbar/reload.png + + + Reload + + + Reload Current Page + + + + + + :/images/toolbar/home.png:/images/toolbar/home.png + + + Home + + + Load Home Page + + + + + + :/images/toolbar/bookmarks.png:/images/toolbar/bookmarks.png + + + Bookmarks + + + Show Bookmarks + + + + + + :/images/toolbar/addBookmark.png:/images/toolbar/addBookmark.png + + + Bookmark + + + Add Bookmark + + + + + + :/images/toolbar/board.png:/images/toolbar/board.png + + + Board + + + Display Board + + + Ctrl+B + + + + + true + + + + :/images/toolbar/clearPage.png:/images/toolbar/clearPage.png + + + Erase + + + Erase Content + + + + + + :/images/toolbar/settings.png:/images/toolbar/settings.png + + + Preferences + + + Display Preferences + + + + + true + + + + :/images/toolbar/library.png:/images/toolbar/library.png + + + Library + + + Show Library + + + Ctrl+L + + + + + + :/images/toolbar/menu.png:/images/toolbar/menu.png + + + OpenBoard + + + OpenBoard + + + + + + :/images/toolbar/display.png:/images/toolbar/display.png + + + Show Desktop + + + Show Computer Desktop + + + Ctrl+Shift+H + + + + + + :/images/stylusPalette/zoomIn.png:/images/stylusPalette/zoomIn.png + + + Bigger + + + Zoom In + + + Ctrl++ + + + + + + :/images/stylusPalette/zoomOut.png:/images/stylusPalette/zoomOut.png + + + Smaller + + + Zoom Out + + + Ctrl+- + + + + + + :/images/toolbar/newFolder.png:/images/toolbar/newFolder.png + + + New Folder + + + Create a New Folder + + + + + + :/images/toolbar/newDocument.png:/images/toolbar/newDocument.png + + + New Document + + + Create a New Document + + + + + + :/images/toolbar/import.png:/images/toolbar/import.png + + + Import + + + Import a Document + + + + + + :/images/toolbar/export.png:/images/toolbar/export.png + + + Export + + + Export a Document + + + + + + :/images/toolbar/open.png:/images/toolbar/open.png + + + Open in Board + + + Open Page in Board + + + Ctrl+O + + + + + + :/images/toolbar/duplicate.png:/images/toolbar/duplicate.png + + + Duplicate + + + Duplicate Selected Content + + + + + + :/images/toolbar/deleteDocument.png:/images/toolbar/deleteDocument.png + + + Delete + + + Delete Selected Content + + + Del + + + + + + :/images/toolbar/addToWorkingDoc.png:/images/toolbar/addToWorkingDoc.png + + + Add to Working Document + + + Add Selected Content to Open Document + + + + + + :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png + + + Add + + + Add Content to Document + + + + + + :/images/toolbar/rename.png:/images/toolbar/rename.png + + + Rename + + + Rename Content + + + QAction::TextHeuristicRole + + + + + + :/images/toolbar/tools.png:/images/toolbar/tools.png + + + Tools + + + Display Tools + + + + + true + + + + :/images/toolbar/tools.png:/images/toolbar/tools.png + + + Tools + + + Display Tools + + + + + true + + + true + + + + :/images/toolbar/display.png:/images/toolbar/display.png + + + Multi Screen + + + + + true + + + + :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png + + + Wide Size (16/9) + + + Wide Size (16/9) + + + Use Document Wide Size (16/9) + + + false + + + + + true + + + + :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png + + + Regular Size (4/3) + + + Regular Size (4/3) + + + Use Document Regular Size (4/3) + + + false + + + + + true + + + false + + + + :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png + + + Custom Size + + + Custom Size + + + Use Custom Document Size + + + false + + + + + + :/images/toolbar/deleteDocument.png:/images/toolbar/deleteDocument.png + + + Stop Loading + + + Stop Loading Web Page + + + + + + :/images/toolbar/cut.png:/images/toolbar/cut.png + + + Cut + + + Qt::ApplicationShortcut + + + + + + :/images/toolbar/copy.png:/images/toolbar/copy.png + + + Copy + + + Qt::ApplicationShortcut + + + + + + :/images/toolbar/paste.png:/images/toolbar/paste.png + + + Paste + + + Qt::ApplicationShortcut + + + QAction::TextHeuristicRole + + + + + + :/images/extraPalette/blackout.png + :/images/extraPalette/blackoutOn.png:/images/extraPalette/blackout.png + + + Sleep + + + Put Presentation to Sleep + + + + + true + + + + :/images/extraPalette/keyboard.png + :/images/extraPalette/keyboardOn.png:/images/extraPalette/keyboard.png + + + Virtual Keyboard + + + Display Virtual Keyboard + + + + + true + + + + :/images/backgroundPalette/background1.svg + :/images/backgroundPalette/background1On.svg:/images/backgroundPalette/background1.svg + + + Plain Light Background + + + Light + + + Plain Light Background + + + + + true + + + + :/images/backgroundPalette/background2.svg + :/images/backgroundPalette/background2On.svg:/images/backgroundPalette/background2.svg + + + Grid Light Background + + + Light + + + Grid Light Background + + + + + true + + + + :/images/backgroundPalette/background5.svg + :/images/backgroundPalette/background5On.svg:/images/backgroundPalette/background5.svg + + + Ruled Light Background + + + Light + + + Ruled Light Background + + + + + true + + + + :/images/backgroundPalette/background3.svg + :/images/backgroundPalette/background3On.svg:/images/backgroundPalette/background3.svg + + + Plain Dark Background + + + Dark + + + Plain Dark Background + + + + + true + + + + :/images/backgroundPalette/background4.svg + :/images/backgroundPalette/background4On.svg:/images/backgroundPalette/background4.svg + + + Grid Dark Background + + + Dark + + + Grid Dark Background + + + + + true + + + + :/images/backgroundPalette/background6.svg + :/images/backgroundPalette/background6On.svg:/images/backgroundPalette/background6.svg + + + Ruled Dark Background + + + Dark + + + Ruled Dark Background + + + + + true + + + + :/images/toolbar/record.png:/images/toolbar/record.png + + + Podcast + + + Record Presentation to Video + + + + + true + + + + :/images/toolbar/record.png + :/images/toolbar/stop.png:/images/toolbar/record.png + + + Record + + + Start Screen Recording + + + + + + :/images/erasePalette/eraseItem.svg:/images/erasePalette/eraseItem.svg + + + Erase Items + + + Erase All Items + + + + + + :/images/erasePalette/eraseAnnotation.svg:/images/erasePalette/eraseAnnotation.svg + + + Erase Annotations + + + Erase All Annotations + + + + + + :/images/erasePalette/eraseAll.svg:/images/erasePalette/eraseAll.svg + + + Clear Page + + + Clear All Elements + + + + + + :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png + + + Add + + + + + true + + + true + + + + :/images/stylusPalette/pen.svg + :/images/stylusPalette/penOn.svg:/images/stylusPalette/pen.svg + + + Pen + + + Annotate Document + + + Ctrl+I + + + + + true + + + + :/images/stylusPalette/eraser.svg + :/images/stylusPalette/eraserOn.svg:/images/stylusPalette/eraser.svg + + + Eraser + + + Erase Annotation + + + Ctrl+E + + + + + true + + + + :/images/stylusPalette/marker.svg + :/images/stylusPalette/markerOn.svg:/images/stylusPalette/marker.svg + + + Marker + + + Highlight + + + Ctrl+M + + + + + true + + + + :/images/stylusPalette/arrow.png + :/images/stylusPalette/arrowOn.png:/images/stylusPalette/arrow.png + + + Selector + + + Select And Modify Objects + + + Ctrl+F + + + + + true + + + + :/images/stylusPalette/hand.png + :/images/stylusPalette/handOn.png:/images/stylusPalette/hand.png + + + Hand + + + Scroll Page + + + + + true + + + + :/images/stylusPalette/zoomIn.png + :/images/stylusPalette/zoomInOn.png:/images/stylusPalette/zoomIn.png + + + Zoom In + + + + + true + + + + :/images/stylusPalette/zoomOut.png + :/images/stylusPalette/zoomOutOn.png:/images/stylusPalette/zoomOut.png + + + Zoom Out + + + + + true + + + + :/images/stylusPalette/laser.png + :/images/stylusPalette/laserOn.png:/images/stylusPalette/laser.png + + + Laser Pointer + + + Virtual Laser Pointer + + + Ctrl+G + + + + + true + + + + :/images/stylusPalette/line.png + :/images/stylusPalette/lineOn.png:/images/stylusPalette/line.png + + + Line + + + Draw Lines + + + Ctrl+J + + + + + true + + + + :/images/stylusPalette/text.png + :/images/stylusPalette/textOn.png:/images/stylusPalette/text.png + + + Text + + + Write Text + + + Ctrl+K + + + + + true + + + + :/images/stylusPalette/captureArea.png + :/images/stylusPalette/captureAreaOn.png:/images/stylusPalette/captureArea.png + + + Capture + + + Capture Part of the Screen + + + + + + :/images/addItemToCurrentPage.svg:/images/addItemToCurrentPage.svg + + + Add To Current Page + + + Add To Current Page + + + Add Item To Current Page + + + + + + :/images/addItemToNewPage.svg:/images/addItemToNewPage.svg + + + Add To New Page + + + Add Item To New Page + + + + + + :/images/addItemToLibrary.svg:/images/addItemToLibrary.svg + + + Add To Library + + + Add Item To Library + + + + + false + + + + :/images/toolbar/newDocument.png:/images/toolbar/newDocument.png + + + Pages + + + Create a New Page + + + + + + :/images/addItemToCurrentPage.svg:/images/addItemToCurrentPage.svg + + + New Page + + + Create a New Page + + + + + + :/images/addItemToNewPage.svg:/images/addItemToNewPage.svg + + + Duplicate Page + + + Duplicate the Current Page + + + + + + :/images/addItemToLibrary.svg:/images/addItemToLibrary.svg + + + Import Page + + + Import an External Page + + + + + true + + + false + + + + :/images/toolbar/pause.png:/images/toolbar/pause.png + + + Pause + + + Pause Podcast Recording + + + + + + :/images/toolbar/settings.png:/images/toolbar/settings.png + + + Podcast Config + + + Configure Podcast Recording + + + + + + :/images/toolbar/addToolToLibrary.png:/images/toolbar/addToolToLibrary.png + + + Flash Trap + + + Trap Flash Content + + + + + true + + + + :/images/extraPalette/webTrap.png + :/images/extraPalette/webTrapEnabled.png:/images/extraPalette/webTrap.png + + + Web Trap + + + Trap Web Content + + + + + + :/images/toolbar/captureArea.png:/images/toolbar/captureArea.png + + + Custom Capture + + + Capture Part of the Screen + + + + + + :/images/toolbar/captureWindow.png:/images/toolbar/captureWindow.png + + + Window Capture + + + Capture a Window + + + + + false + + + + :/images/extraPalette/oEmbed.png:/images/extraPalette/oEmbed.png + + + Embed Web Content + + + Capture Embeddable Web Content + + + + + true + + + + :/images/toolbar/eyeClosed.png + :/images/toolbar/eyeOpened.png:/images/toolbar/eyeClosed.png + + + Show on Display + + + Show Main Screen on Display Screen + + + false + + + QAction::TextHeuristicRole + + + + + + :/images/erasePalette/eraseAnnotation.svg:/images/erasePalette/eraseAnnotation.svg + + + Erase Annotations + + + Erase all Annotations + + + + + + :/images/toolbar/addToolToLibrary.png:/images/toolbar/addToolToLibrary.png + + + eduMedia + + + Import eduMedia simulation + + + + + + :/images/toolbar/updates.png:/images/toolbar/updates.png + + + Check Update + + + + + + :/images/toolbar/hide.png:/images/toolbar/hide.png + + + Hide OpenBoard + + + Hide OpenBoard Application + + + Ctrl+H + + + + + true + + + + :/images/stylusPalette/handPlay.png + :/images/stylusPalette/handPlayOn.png:/images/stylusPalette/handPlay.png + + + Play + + + Interact with items + + + + + + :/images/erasePalette/eraseBackground.svg:/images/erasePalette/eraseBackground.svg + + + Erase Background + + + Remove the backgound + + + + + + :/images/toolbar/tutorial.png:/images/toolbar/tutorial.png + + + Open Tutorial + + + Open the tutorial web page + + + + + + :/images/backgroundPalette/resetDefaultGridSize.svg:/images/backgroundPalette/resetDefaultGridSize.svg + + + Reset grid size + + + Reset grid size + + + + + true + + + + :/images/minus.svg + :/images/save.svg:/images/minus.svg + + + Draw intermediate grid lines + + + Draw intermediate grid lines + + + + + true + + + + :/images/toolbar/solidLine.png:/images/toolbar/solidLine.png + + + Style + + + Solid Line + + + + + true + + + + :/images/toolbar/dottedLine.png:/images/toolbar/dottedLine.png + + + Style + + + Dotted Line + + + + + true + + + + :/images/toolbar/dashedLine.png:/images/toolbar/dashedLine.png + + + Style + + + Dashed Line + + + QAction::NoRole + + + + + + + + diff --git a/resources/forms/preferences.ui b/resources/forms/preferences.ui new file mode 100644 index 0000000..0948830 --- /dev/null +++ b/resources/forms/preferences.ui @@ -0,0 +1,3344 @@ + + + preferencesDialog + + + + 0 + 0 + 825 + 830 + + + + Preferences + + + + + + version : … + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Default Settings + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Close + + + true + + + + + + + + + + + + 6 + + + + Display + + + + + + + 0 + 0 + + + + Mode + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + + + Mode to start in: + + + + + + + + Board + + + + + Desktop + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 40 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + PDF Rendering + + + + + + + + Improve zoom execution time (can slightly affect rendering quality) + + + true + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + 0 + 0 + + + + Toolbar + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 40 + 20 + + + + + + + + Display Text Under Button + + + + + + + + + Positioned at the Bottom (recommended for white boards) + + + + + + + Positioned at the Top (recommended for tablets) + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + Stylus Palette + + + + 12 + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + QLayout::SetDefaultConstraint + + + + + + 1 + 0 + + + + + 0 + 0 + + + + Horizontal + + + false + + + + + + + Vertical + + + true + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + 0 + 0 + + + + Documents Mode + + + + + + + + + 0 + 0 + + + + Display date column on alphabetical sort + + + + + + + Empty trash for documents older than + + + + + + + + + + days + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + Multi display + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + Swap control display and view display + + + + + + + Show internal web page content on secondary screen or projector + + + + + + + Swap first and second view displays + + + + + + + + + + + 0 + 0 + + + + Virtual Keyboard + + + + + + + + + + + Built-in virtual keyboard button size: + + + + + + + Use system keyboard (recommended) + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Grid + + + + + + true + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + On Light Background + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 32 + 32 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + Qt::Horizontal + + + + 154 + 20 + + + + + + + + Opacity + + + + + + + 20 + + + 100 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 20 + + + + + + + Qt::Horizontal + + + + 156 + 20 + + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + On Dark Background + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 32 + 32 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + Qt::Horizontal + + + + 154 + 20 + + + + + + + + Opacity + + + + + + + 20 + + + 100 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 20 + + + + + + + Qt::Horizontal + + + + 156 + 20 + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 342 + + + + + + + + + Pen + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + + + Marker + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + + + + + Network + + + + + + + 0 + 0 + + + + Internet + + + + + + + + Show Page with External Browser + + + + + + + + + + + + 0 + 0 + + + + + + + + Home Page: + + + + + + + Proxy User: + + + + + + + + 5 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Pass: + + + + + + + QLineEdit::Password + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Preferred + + + + 40 + 20 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + true + + + Licences + + + + + + + 0 + 1 + + + + 4 + + + + OpenSSL + + + + + + false + + + false + + + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact openssl-core@openssl.org. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" + * + * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called "OpenSSL" + * nor may "OpenSSL" appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/)" + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * "This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com)" + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] + */ + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + zlib + + + + + + false + + + + + + false + + + Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + +Jean-loup Gailly Mark Adler +jloup@gzip.org madler@alumni.caltech.edu + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + Xpdf + + + + + + false + + + + + + false + + + Copyright (C) 1996-2011 Glyph & Cog, LLC. + +Xpdf is licensed under the GNU General Public License (GPL), version 2 +or 3. This means that you can distribute derivatives of Xpdf under +any of the following: + - GPL v2 only + - GPL v3 only + - GPL v2 or v3 + +Here is the full text of the GNU General Public License version 3. + +--8<---------------cut here---------------start------------->8--- + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 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 General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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 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 General Public License for more details. + + You should have received a copy of the GNU 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 the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. +--8<---------------cut here---------------end--------------->8--- + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + QuaZIP + + + + + + false + + + false + + + Copyright (C) 2005-2007 Sergey A. Tachenov + +QuaZIP is licensed under the GNU General Pulbic License (GPL), either +version 2 or (at your option) any later version. + +Here is the full text of the GNU General Public License version 2. + +--8<---------------cut here---------------start------------->8--- + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + 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 +this service 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. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +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 +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE 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. + + 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 +convey 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 General Public License as published by + the Free Software Foundation; either version 2 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. +--8<---------------cut here---------------end--------------->8--- + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + OpenBoard + + + + + + false + + + + + + OpenBoard is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 3 of the License, +with a specific linking exception for the OpenSSL project's +"OpenSSL" library (or with modified versions of it that use the +same license as the "OpenSSL" library). + +Here is the full text of the GNU General Public License version 3. + +--8<---------------cut here---------------start------------->8--- + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 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 General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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 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 General Public License for more details. + + You should have received a copy of the GNU 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 the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. +--8<---------------cut here---------------end--------------->8--- + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + + + + Credits + + + + + + false + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:12pt; font-weight:600;">Translations</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">A special thanks to:</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Alexander Angelov and Iva Ninova for Bulgarian</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Francesc Busquets and Toni Hortal for Catalan</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Jaroslav Krejčí, Janek Wagner for Czech</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Geert Kraeye and Derk Klomp for Dutch</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Christian Oïhénart and François Bocquet for French</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Félix Díaz López for Galician </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Hans-Peter Zahno, Klaus Tenner and Yves Kaiser for German</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Yannis Kiolalis for Greek</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Imre Fekete for Hungarian</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Antonello Comi, Marco Menardi and Salvatore Cristaldi for Italian</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Didier Clerc for Japanese</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Faraniaina Domoina Rabarijaona for Malagasy</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Patricia Fisch and César Marques for Portuguese</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Ilia Ryabokon for Russian</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Jaroslav Ryník for Slovak</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Dorian Fuentes, Juan José Gutiérrez Aparicio and Félix Díaz López for Spanish</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Anki Chen for Traditional Chinese</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Ferhat Ozkasgarli for Turkish</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">• Alex Compit for Ukrainian</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:12pt; font-weight:600;">Resources added in OpenBoard</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">AndBasR.ttf </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Sil Open Font License</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://scripts.sil.org/OFL"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://scripts.sil.org/OFL</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">(c) 2004-2008, SIL International (</span><a href="http://scripts.sil.org"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://scripts.sil.org</span></a><span style=" font-family:'Cantarell'; font-size:10pt;">), </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">with Reserved Font Names 'Andika' and 'SIL'.</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">ec_cour.ttf </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Open Font License</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://scripts.sil.org/OFL"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://scripts.sil.org/OFL</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">© Jean-Marie Douteau (</span><a href="mailto:douteau.ecolier@sfr.fr"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">douteau.ecolier@sfr.fr</span></a><span style=" font-family:'Cantarell'; font-size:10pt;">)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Source : </span><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">ecl_cour.ttf</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Open Font License</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://scripts.sil.org/OFL"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://scripts.sil.org/OFL</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">© Jean-Marie Douteau (</span><a href="mailto:douteau.ecolier@sfr.fr"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">douteau.ecolier@sfr.fr</span></a><span style=" font-family:'Cantarell'; font-size:10pt;">)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Source : </span><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;">EcritureA and EcritureB</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://creativecommons.org/licenses/by/3.0/"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">Creative Commons BY-ND</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;">DGESCO (</span></a><a href="mailto:degre.numerique@education.gouv.fr"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">degre.numerique@education.gouv.fr</span></a><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;">)</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://douteau.ecolier.perso.sfr.fr/page_ecolier.htm"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#000000;">Source: </span></a><a href="http://eduscol.education.fr/cid72979/polices-de-caracteres-cursives-pour-l-enseignement-de-l-ecriture.html"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://eduscol.education.fr/cid72979/polices-de-caracteres-cursives-pour-l-enseignement-de-l-ecriture.html</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:13pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">GeTypo Libre</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Creative Commons BY-NC-ND</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.ge.ch/sem/cc/by-nc-nd/"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.ge.ch/sem/cc/by-nc-nd/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">© 2005-2015, Vista Multimedia SA, Droit de diffusion Etat de Genève - DIP</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://edu.ge.ch/sem/node/1294"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://edu.ge.ch/sem/node/1294</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt;">GraphMe Widget 2.1</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt;">Yannick Vessaz</span></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:10pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Papier.wgt 2.5.4</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Developed by F. Le Cléac’h </span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://creativecommons.org/licenses/by-nc-sa/3.0/"><span style=" font-family:'Ubuntu'; font-size:11pt; text-decoration: underline; color:#0000ff;">Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="https://www.openedu.fr"><span style=" font-family:'Ubuntu'; font-size:11pt; text-decoration: underline; color:#0000ff;">https://www.openedu.fr</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt; text-decoration: underline; color:#0000ff;"><br /></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt; text-decoration: underline; color:#0000ff;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt;">QR-Code Widget</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt;">Basilstotz</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt;">Licence: CCO</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt; color:#000000;">Sonata para piano (.mp3)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt; color:#000000;">Óscar G. Villegas</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://creativecommons.org/licenses/by-nc-sa/3.0/es"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">Creative Commons Attribution-NonCommercial-Share Alike 3.0 Unported</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://recursostic.educacion.es/bancoimagenes/web/"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://recursostic.educacion.es/bancoimagenes/web/</span></a><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">wannaworktogether (.mp4)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Creative Commons</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://creativecommons.org/licenses/by/2.5/"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">Creative Commons Attribution</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://creativecommons.org/videos/wanna-work-together"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://creativecommons.org/videos/wanna-work-together</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;"><br /></span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Worldmap_wdb_combined (.svg)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">David Eccles (gringer)</span></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://creativecommons.org/licenses/by-sa/3.0/deed.en"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">Creative Commons Attribution-Share Alike 3.0 Unported</span></a></p> +<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/File:Worldmap_wdb_combined.svg"><span style=" font-family:'Cantarell'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://commons.wikimedia.org/wiki/File:Worldmap_wdb_combined.svg</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p></body></html> + + + true + + + + + + + + true + + + About + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<table border="0" style="-qt-table-type: root; margin-top:4px; margin-bottom:4px; margin-left:4px; margin-right:4px;"> +<tr> +<td style="border: none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">OpenBoard 1.6.1</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">OpenBoard is copyright © 2021. All rights reserved.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">OpenBoard is derived from Open-Sankoré. Open-Sankoré is copyright © 2010-2015 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA). All right reserved.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">OpenBoard is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License, with a specific linking exception for the OpenSSL project's &quot;OpenSSL&quot; library (or with modified versions of it that use the same license as the &quot;OpenSSL&quot; library). You can find the source code of this software at </span><a href="https://github.com/DIP-SEM/OpenBoard"><span style=" font-family:'.Helvetica Neue DeskInterface'; font-size:10pt; text-decoration: underline; color:#0000ff;">github.com/OpenBoard-org</span></a><span style=" font-family:'Cantarell'; font-size:10pt;">. </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">OpenBoard 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 General Public License below for more details.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Cantarell'; font-size:10pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Contact :</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Service écoles-médias</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Rue des Gazomètres 5</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Case Postale 241</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">1211 Genève 8</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Cantarell'; font-size:10pt;">Switzerland</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.openboard.ch"><span style=" font-family:'.Helvetica Neue DeskInterface'; font-size:11pt; text-decoration: underline; color:#0000ff;">openboard.ch</span></a></p></td></tr></table></body></html> + + + true + + + + + + + + 0 + 70 + + + + + 16777215 + 70 + + + + Software Update + + + + true + + + + 10 + 30 + 551 + 21 + + + + Check software update at launch + + + true + + + + + + + + + 0 + 70 + + + + + 16777215 + 70 + + + + Open-Sankoré Importer + + + + true + + + + 10 + 30 + 551 + 21 + + + + Check if Open-Sankoré data could be imported at launch + + + true + + + + + + + + + + + + + UBColorPicker + QFrame +
gui/UBColorPicker.h
+ 1 +
+
+ + useExternalBrowserCheckBox + displayBrowserPageCheckBox + toolbarAtTopRadioButton + toolbarAtBottomRadioButton + defaultSettingsButton + closeButton + + + +
diff --git a/resources/forms/trapFlash.ui b/resources/forms/trapFlash.ui new file mode 100644 index 0000000..2a7f4a6 --- /dev/null +++ b/resources/forms/trapFlash.ui @@ -0,0 +1,130 @@ + + + trapFlashDialog + + + + 0 + 0 + 508 + 417 + + + + Trap flash + + + + + + + + Select a flash to trap + + + + + + + + + + + + true + + + + + 0 + 0 + 488 + 298 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + about:blank + + + + + + + + + + + + + + + + Application name + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Create Application + + + + + + + + + + QWebView + QWidget +
QtWebKitWidgets/QWebView
+
+
+ + +
diff --git a/resources/forms/youTubePublishingDialog.ui b/resources/forms/youTubePublishingDialog.ui new file mode 100644 index 0000000..e6a78c7 --- /dev/null +++ b/resources/forms/youTubePublishingDialog.ui @@ -0,0 +1,170 @@ + + + YouTubePublishingDialog + + + Qt::WindowModal + + + + 0 + 0 + 540 + 534 + + + + Publish Podcast to YouTube + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + Title + + + + + + + 60 + + + + + + + Description + + + + + + + + 0 + 0 + + + + + 0 + 168 + + + + + + + + Keywords + + + + + + + OpenBoard + + + + + + + Category + + + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 40 + + + + + + + + YouTube Username + + + + + + + + + + YouTube Password + + + + + + + QLineEdit::Password + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + true + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + Restore credentials on reboot + + + true + + + + + + + + + + + diff --git a/resources/i18n/Localizable.strings b/resources/i18n/Localizable.strings new file mode 100644 index 0000000..88a7d29 --- /dev/null +++ b/resources/i18n/Localizable.strings @@ -0,0 +1 @@ +/* Intentionally empty */ \ No newline at end of file diff --git a/resources/i18n/OpenBoard_ar.ts b/resources/i18n/OpenBoard_ar.ts new file mode 100644 index 0000000..9ad98c6 --- /dev/null +++ b/resources/i18n/OpenBoard_ar.ts @@ -0,0 +1,2942 @@ + + + + + BlackoutWidget + + Click to Return to Application + النقر للعودة الى التطبيق + + + + DownloadDialog + + Downloads + التنزيلات + + + Clean Up + تنظيف + + + 0 Items + 0 عنصر + + + + DownloadItem + + Form + استمارة + + + Filename + اسم الملف + + + Try Again + المحاولة مرة أخرى + + + Stop + توقف + + + Open + فتح + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + نشر البودكاست على يوتيوب + + + Title + العنوان + + + Description + الوصف + + + Author + الناشر + + + + MainWindow + + Board + لوحة + + + Web + الويب + + + Documents + وثائق + + + Stylus + قلم الراسمة + + + Ctrl+T + Ctrl+T + + + Backgrounds + الخلفيات + + + Change Background + تغيير الخلفية + + + Undo + تراجع + + + Ctrl+Z + Ctrl+Z + + + Redo + إعادة + + + Ctrl+Y + Ctrl+Y + + + Previous + السابق + + + Previous Page + الصفحة السابقة + + + PgUp + PgUp + + + Next + التالي + + + Next Page + الصفحة التالية + + + PgDown + PgDown + + + Manage Documents + إدارة الوثائق + + + Ctrl+D + Ctrl+D + + + Web Browsing + تصفح مواقع الإنترنت + + + Ctrl+W + Ctrl+W + + + Line + سطر + + + Small Line + سطر صغير + + + Medium Line + سطر متوسط + + + Large Line + سطر كبير + + + Quit + مغادرة + + + Eraser + ممحاة + + + Smalle Eraser + ممحاة صغيرة + + + Medium Eraser + ممحاة متوسطة + + + Large Eraser + ممحاة كبيرة + + + Color + لون + + + Back + العودة + + + Left + يسار + + + Forward + أمام + + + Right + يمين + + + Reload + تحديث + + + Reload Current Page + تحديث الصفحة الحالية + + + Home + الصفحة البدء + + + Load Home Page + تحديث الصفحة البدء + + + Bookmarks + اشارات مرجعية + + + Show Bookmarks + اظهار الاشارات المرجعية + + + Bookmark + اشارة مرجعية + + + Add Bookmark + اضافة اشارة مرجعية + + + Display Board + عرض اللوحة + + + Ctrl+B + Ctrl+B + + + Erase + مسح + + + Erase Content + مسح المحتوى + + + Preferences + تفضيلات + + + Display Preferences + عرض التفضيلات + + + Library + المكتبة + + + Show Library + اظهار المكتبة + + + Ctrl+L + Ctrl+L + + + Show Desktop + اظهار سطح المكتب + + + Show Computer Desktop + اظهار سطح مكتب الحاسوب + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + حجم أكبر + + + Zoom In + تكبير + + + Ctrl++ + Ctrl++ + + + Smaller + حجم أصغر + + + Zoom Out + تصغير + + + Ctrl+- + Ctrl+- + + + New Folder + مجلد جديد + + + Create a New Folder + انشاء مجلد جديد + + + New Document + وثيقة جديدة + + + Create a New Document + انشاء وثيقة جديدة + + + Import + استيراد + + + Import a Document + استيراد وثيقة + + + Export + تصدير + + + Export a Document + تصدير وثيقة + + + Open in Board + الفتح في اللوحة + + + Open Page in Board + فتح الصفحة في اللوحة + + + Ctrl+O + Ctrl+O + + + Duplicate + تكرار + + + Duplicate Selected Content + تكرار المحتوى المحدد + + + Delete + حذف + + + Delete Selected Content + حذف المحتوى المحدد + + + Del + حذف + + + Add to Working Document + اضافة الى وثيقة العمل + + + Add Selected Content to Open Document + اضافة المحتوى المحدد الى الوثيقة المفتوحة + + + Add + اضافة + + + Add Content to Document + اضافة المحتوى الى الوثيقة + + + Rename + إعادة تسمية + + + Rename Content + إعادة تسمية المحتوى + + + Tools + أدوات + + + Display Tools + عرض الأدوات + + + Multi Screen + شاشات متعددة + + + Wide Size (16/9) + حجم كبير (16/9) + + + Use Document Wide Size (16/9) + استعمال الوثيقة في حجم كبير (16/9) + + + Regular Size (4/3) + حجم عادي (4/3) + + + Use Document Regular Size (4/3) + استعمال الوثيقة في حجم عادي(4/3) + + + Custom Size + حجم مخصص + + + Use Custom Document Size + استعمال حجم الوثيقة المخصص + + + Stop Loading + توقيف التحميل + + + Stop Loading Web Page + توقيف تحميل صفحة الويب + + + Cut + قص + + + Copy + نسخ + + + Paste + الصاق + + + Sleep + سكون + + + Put Presentation to Sleep + وضع التقديم في وضع السكون + + + Virtual Keyboard + لوحة مفاتيح افتراضية + + + Display Virtual Keyboard + عرض مفاتيح افتراضية + + + Plain Light Background + خلفية بضوء عادي + + + Light + ضوء + + + Grid Light Background + خلفية بضوء شبكي + + + Plain Dark Background + خلفية داكنة عادية + + + Dark + داكن + + + Grid Dark Background + خلفية داكنة شبكية + + + Podcast + بودكاست + + + Record Presentation to Video + تسجيل التقديم بالفيديو + + + Record + تسجيل + + + Start Screen Recording + بدء تسجيل الشاشة + + + Erase Items + فسخ العناصر + + + Erase All Items + فسخ كل العناصر + + + Erase Annotations + فسخ الملاحظات + + + Erase All Annotations + فسخ كل الملاحظات + + + Clear Page + مسح الصفحة + + + Clear All Elements + مسح كل المكونات + + + Pen + قلم + + + Annotate Document + تعليم الوثيقة + + + Ctrl+I + Ctrl+I + + + Erase Annotation + فسخ الملاحظة + + + Ctrl+E + Ctrl+E + + + Marker + علامة + + + Highlight + تمييز + + + Ctrl+M + Ctrl+M + + + Selector + أداء انتقاء + + + Select And Modify Objects + انتقاء وتغيير أشياء + + + Ctrl+F + Ctrl+F + + + Hand + يد + + + Scroll Page + الانتقال ضمن الصفحة + + + Laser Pointer + مؤشر ليزر + + + Virtual Laser Pointer + مؤشر ليزر افتراضي + + + Ctrl+G + Ctrl+G + + + Draw Lines + رسم خطوط + + + Ctrl+J + Ctrl+J + + + Text + نص + + + Write Text + كتابة نص + + + Ctrl+K + Ctrl+K + + + Capture + التقاط + + + Capture Part of the Screen + التقاط جزء من الشاشة + + + Add To Current Page + الاضافة الى الصفحة الحالية + + + Add Item To Current Page + اضافة العنصر الى الصفحة الحالية + + + Add To New Page + الاضافة الى الصفحة الجديدة + + + Add Item To New Page + اضافة العنصر الى الصفحة الجديدة + + + Add To Library + الاضافة الى المكتبة + + + Add Item To Library + اضافة العنصر الى المكتبة + + + Pages + صفحات + + + Create a New Page + انشاء صفحة جديدة + + + New Page + صفحة جديدة + + + Duplicate Page + تكرار صفحة + + + Duplicate the Current Page + تكرار الصفحة الحالية + + + Import Page + استيراد صفحة + + + Import an External Page + استيراد صفحة خارجية + + + Pause + وقفة قصيرة + + + Pause Podcast Recording + ايقاف تسجيل البودكاست مؤقتا + + + Podcast Config + تكوين البودكاست + + + Configure Podcast Recording + ضبط تسجيل البودكاست + + + Flash Trap + قلاش تراب + + + Trap Flash Content + محتوى فلاش تراب + + + Web Trap + ويب تراب + + + Trap Web Content + محتوى ويب تراب + + + Custom Capture + التقاط مخصص + + + Window Capture + التقاط نافذة + + + Capture a Window + التقاط نافذة + + + Embed Web Content + تضمين محتوى ويب + + + Capture Embeddable Web Content + التقاط محتوى ويب قابل للتضمين + + + Show on Display + اظهار العرض + + + Show Main Screen on Display Screen + اظهار الشاشة الرئيسية على شاشة العرض + + + Erase all Annotations + فسخ كل الملاحظات + + + eduMedia + eduMedia + + + Import eduMedia simulation + استيراد محاكاة eduMedia + + + Check Update + البحث عن تحديث + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + مغادرة فتح Sankoré + + + Hide OpenBoard + إخفاء فتح Sankoré + + + Hide OpenBoard Application + إخفاء تطبيق فتح Sankoré + + + Play + تشغيل + + + Interact with items + التفاعل مع العناصر + + + Erase Background + فسخ الخلفية + + + Remove the backgound + إزالة الخلفية + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + مطلوب مصادقة + + + Username: + اسم المتخدم: + + + Password: + كلمة السر: + + + + ProxyDialog + + Proxy Authentication + مصادقة بروكسي + + + Connect to Proxy + الاتصال ببروكسي + + + Username: + اسم المتخدم: + + + Password: + كلمة السر: + + + Save username and password for future use + تسجيل اسم المستخدم وكلمة السر للاستعمالات المقبلة + + + + QObject + + Element ID = + معرّف المكوّن = + + + Content is not supported in destination format. + المحتوى غير مدعوم في النسق الهدف. + + + Remove Page + ازالة الصفحة + + + Are you sure you want to remove 1 page from the selected document '%0'? + هل تريدون حقا إزالة صفحة واحدة من الوثيقة '%0' المختارة؟ + + + + UBApplication + + Page Size + حجم الصفحة + + + Podcast + بودكاست + + + + UBApplicationController + + Web + الويب + + + New update available, would you go to the web page ? + تحديث جديد متوفر، هل تريدون الذهاب الى صفحة الويب؟ + + + No update available + ليس هناك تحديثات + + + Update available + تحديث متوفّر + + + Update + التحيين + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + فشل تنزيل المحتوى 1% + + + Download finished + انتهاء التنزيل + + + Unknown tool type %1 + نوع أداة مجهول 1% + + + Unknown content type %1 + نوع محتوى مجهول 1% + + + Add Item + اضافة عنصر + + + All Supported (%1) + دعم الجميع (1%) + + + Delete page %1 from document + إزالة صفحة%1 من الوثيقة + + + Page %1 deleted + تمت إزالة صفحة%1 + + + Add file operation failed: file copying error + فشلت عملية إضافة الملف: خطأ في نسخ الملف + + + Group + تجميع + + + Ungroup + تفريق + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + لون + + + + UBBoardPaletteManager + + Error Adding Image to Library + خطأ عند اضافة الصورة الى المكتبة + + + CapturedImage + صورة ملتقطة + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + خصائص التخزين المؤقت + + + Color: + اللون: + + + Shape: + الشكل: + + + Size: + الحجم: + + + Close + اغلاق: + Close + + + + UBDesktopPalette + + Capture Part of the Screen + التقاط جزء من الشاشة + + + Capture the Screen + التقاط الشاشة + + + Show the stylus palette + اظهار لوحة قلم الراسمة + + + Show Board on Secondary Screen + اظهار اللوحة على الشاشة الثانوية + + + Show Desktop on Secondary Screen + اظهار سطح المكتب على الشاشة الثانوية + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + مجلد جديد + + + Page %1 + صفحة 1% + + + Add Folder of Images + اضافة مجلد صور + + + Add Images + اضافة صور + + + Add Pages from File + اضافة صفخات من ملف + + + Duplicating Document %1 + تكرار الوثيقة 1% + + + Document %1 copied + وقع نسخ الوثيقة 1% + + + Remove Page + ازالة الصفحة + + + Remove Document + ازالة الوثيقة + + + Are you sure you want to remove the document '%1'? + هل تريدون حقا ازالة الوثيقة '1%'؟ + + + Empty Trash + إفراغ سلة المهملات + + + Are you sure you want to empty trash? + هل تريدون حقا إفراغ سلة المهملات؟ + + + Emptying trash + يجري افراغ سلة المهملات + + + Emptied trash + تمّ افراغ سلة المهملات + + + Remove Folder + ازالة مجلد + + + Are you sure you want to remove the folder '%1' and all its content? + هل تريدون حقا ازالة المجلد '1%' وكل محتوياته؟ + + + No document selected! + لم يقع اختيار وثيقة! + + + Open Supported File + فتح الملف المدعوم + + + Importing file %1... + استيراد ملف 1%... + + + Failed to import file ... + فشل في استيراد الملف... + + + Import all Images from Folder + استيراد كل الصور من المجلد + + + Delete + حذف + + + Empty + افراغ + + + Trash + سلة المهملات + + + Open Document + فتح وثيقة + + + Add all Images to Document + اضافة كل الصور الى الوثيقة + + + All Images (%1) + كل الصور (1%) + + + Selection does not contain any image files! + الاختيار لا يحتوي على ملفات صور! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + هل تريدون حقّا إزالة %n صفحة من الوثيقة المختارة '%1' ؟ + + + + + + + + + Folder does not contain any image files + المجلد لا يحتوي على ملفات صور + + + Untitled Documents + وثائق غير معنونة + + + duplicated %1 page + duplicated %1 pages + + + + + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + صور + + + videos + فيديو + + + objects + أشياء + + + widgets + نماذج مصغرة + + + All supported files (*.%1) + كل الملفات المدعومة (*.%1) + + + File %1 saved + حفظ الملف 1% + + + Inserting page %1 of %2 + إدراج صفحة %1 من أصل %2 + + + Import successful. + استيراد ناجح. + + + Import of file %1 successful. + نجح استيراد الملف %1 + + + Importing file %1 + استيراد ملف 1% + + + + UBDocumentNavigator + + Page %0 + صفحة %0 + + + + UBDocumentPublisher + + Export failed. + فشل التصدير. + + + + UBDocumentReplaceDialog + + Accept + موافقة + + + Cancel + إلغاء + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + سلة المهملات + + + %1 pages copied + + %1 صفحة منسوخة + + + + + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 صفحة منسوخة + + + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + نسخ الصفحة 1% / 2% + + + + UBDocumentTreeWidget + + %1 (copy) + 1 % (نسخ) + + + Copying page %1/%2 + نسخ الصفحة 1% / 2% + + + %1 pages copied + + %1 صفحة منسوخة + + + + + + + + + + UBDownloadWidget + + Downloading files + تحميل الملفات + + + Cancel + إلغاء + + + + UBDraggableThumbnail + + Page %0 + صفحة %0 + + + + UBDraggableThumbnailView + + Page %0 + صفحة %0 + + + + UBExportAdaptor + + Warnings during export was appeared + ظهر تحذير أثناء التصدير + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + التصدير للـIWB + + + Export as IWB File + التصدير كملف IWB + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Export failed. + فشل التصدير. + + + + UBExportDocument + + Page + صفحة + + + Export as UBZ File + التصدير كملف UBZ + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Exporting %1 %2 of %3 + تصدير 1% 2% من 3% + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Export failed. + فشل التصدير. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + التصدير كملف PDF + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Export to PDF + التصدير للـPDF + + + + UBExportPDF + + Export as PDF File + التصدير كملف PDF + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Exporting page %1 of %2 + تصدير الصفحة 1% من 2% + + + Export to PDF + التصدير للـPDF + + + + UBExportWeb + + Page + صفحة + + + Export as Web data + التصدير كبيانات ويب + + + Exporting document... + تصدير الوثيقة... + + + Export successful. + تصدير ناجح. + + + Export failed. + فشل التصدير. + + + Export to Web Browser + التصدير لمتصفح الويب + + + + UBFeatureProperties + + Add to page + الاضافة الى الصفحة + + + Set as background + تعيين كخلفية + + + Add to library + الاضافة الى المكتبة + + + Object informations + معلومات حول الأشياء + + + + UBFeaturesActionBar + + Add to favorites + الاضافة الى المفضلة + + + Share + تقاسم + + + Search + بحث + + + Delete + حذف + + + Back to folder + العودة الى المجلد + + + Remove from favorites + الحذف من المفضلة + + + Create new folder + انشاء مجلد جديد + + + Rescan file system + إعادة مسح نظام الملفات + + + + UBFeaturesController + + ImportedImage + الصورة المستوردة + + + Audios + ملفات صوتية + + + Movies + أفلام + + + Pictures + صور + + + Animations + حركات + + + Interactivities + تفاعلات + + + Applications + تطبيقات + + + Shapes + أشكال + + + Favorites + مفضلة + + + Web search + بحث على الويب + + + Trash + سلة المهملات + + + + UBFeaturesNewFolderDialog + + Accept + موافقة + + + Cancel + إلغاء + + + Enter a new folder name + إدخال اسم مجلد جديد + + + + UBFeaturesProgressInfo + + Loading + تحميل + + + + UBGraphicsGroupContainerItemDelegate + + Locked + مقفل + + + Visible on Extended Screen + مرئي على الشاشة الكبيرة + + + + UBGraphicsItemDelegate + + Locked + مقفل + + + Visible on Extended Screen + مرئي على الشاشة الكبيرة + + + Go to Content Source + الذهاب الى مصدر المحتوى + + + Set as background + تعيين كخلفية + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Type Text Here> + + + + UBGraphicsTextItemDelegate + + Text Color + لون النص + + + Editable + قابل للنشر + + + + UBGraphicsW3CWidgetItem + + Web + الويب + + + + UBGraphicsWidgetItem + + Loading ... + تحميل... + + + + UBGraphicsWidgetItemDelegate + + Frozen + مجمد + + + Transform as Tool + التحويل كأداة + + + + UBImportCFF + + Common File Format ( + شكل ملف مشترك ( + + + Importing file %1... + استيراد ملف 1%... + + + Import of file %1 failed. + فشل تصدير الملف 1% + + + Import successful. + استيراد ناجح + + + Import failed. + استيراد فاشل. + + + + UBImportDocument + + Importing file %1... + استيراد ملف 1%... + + + Import successful. + استيراد ناجح + + + Import of file %1 failed. + فشل تصدير الملف 1% + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + شكل الصورة ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + فشل استيراد PDF. + + + Importing page %1 of %2 + استيراد الصفحة 1% من 2% + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + خطأ عند نشر الفيديو على الشبكة الداخلية (1%) + + + Publishing to Intranet in progress %1 % + يجري النشر على الشبكة الداخلية %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + نشر + + + + UBKeyboardPalette + + Enter + دخول + + + + UBMainWindow + + Yes + نعم + + + No + لا + + + Ok + موافق + + + + UBMessagesDialog + + Close + غلق + + + + UBNetworkAccessManager + + Failed to log to Proxy + فشل الاتصال ببروكسي + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + أخطاء SSL: %1 %2 هل تريدون تجاهل هذه الأخطاء بالنسبة لهذا المضيف؟ + + + <qt>Enter username and password for "%1" at %2</qt> + <qt>إدخال اسم مستعمل وكلمة مرور لـ "%1" في %2 </qt> + + + Yes + نعم + + + No + لا + + + + UBOpenSankoreImporterWidget + + Cancel + إلغاء + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (نسخ) + + + Document Repository Loss + خسارة سجل الوثيقة + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + انجليزي + + + Russian + روسي + + + German + ألماني + + + French + فرنسي + + + Swiss French + فرنسي سويسري + + + + UBPodcastController + + Failed to start encoder ... + فشل بدء التشفير... + + + No Podcast encoder available ... + لا يوجد مشفر بودكاست... + + + Part %1 + جزء 1% + + + on your desktop ... + على سطح مكتبكم + + + in folder %1 + في المجلد 1% + + + Podcast created %1 + انشاء البودكاست 1% + + + Podcast recording error (%1) + خطأ تسجيل البودكاست (1%) + + + Default Audio Input + مدخل الصوت الافتراضي + + + No Audio Recording + لا توجد تسجيلات صوتية + + + Small + صغير + + + Medium + متوسط + + + Full + كامل + + + Publish to Intranet + النشر على الشبكة الداخلية + + + Publish to Youtube + النشر على اليوتوب + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + نسخة: + + + Marker is pressure sensitive + العلامة حساسة للضغط + + + + UBProxyLoginDlg + + Proxy Login + دخول بروكسي + + + Username: + اسم المتخدم: + + + Password: + كلمة السر: + + + + UBPublicationDlg + + Publish document on the web + نشر الوثيقة على الويب + + + Title: + العنوان: + + + Description: + الوصف: + + + Publish + نشر + + + + UBSettings + + My Movies + أفلامي + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + توليد صور معاينة مصغرة... + + + %1 thumbnails generated ... + 1 % صور مصغرة مولّدة + + + + UBThumbnailTextItem + + Page %0 + صفحة %0 + + + + UBToolsManager + + Mask + قناع + + + Ruler + مسطرة + + + Compass + بوصلة + + + Protractor + منقلة + + + Triangle + مثلث + + + Magnifier + مكبرة + + + Cache + تخزين مؤقت + + + Axes + + + + + UBTrapFlashController + + Whole page + صفحة كاملة + + + Web + الويب + + + + UBUpdateDlg + + Document updater + محدّث الوثيقة + + + files require an update. + تحتاج الملفات الى تحديث. + + + Backup path: + مسار النسخ الاحتياطي: + + + Browse + تصفح + + + Update + التحيين + + + Select a backup folder + اختيار مجلد النسخ الاحتياطي + + + An error occured during the update. The files have not been affected. + حدث خطأ أثناء التحديث. لم يقع التأثير على الملفات. + + + Files update results + نتائج تحديث الملفات + + + Updating file + تحديث الملف + + + Please wait the import process will start soon... + يرجى الانتظار، ستبدأ عملية الاستيراد عن قريب... + + + Files update successful! +Please reboot the application to access the updated documents. + نجاح تحديث الملفات! +يرجى إعادة تشغيل التطبيق للوصول إلى الوثائق المحدثة. + + + + Remind me later + التذكير لاحقا + + + + UBWebPluginWidget + + Loading... + تحميل... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 called (method=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + فشلت المصادقة في اليوتوب + + + Error while uploading video to YouTube (%1) + خطأ عند تحميل الفيديو على اليوتوب (1%) + + + Upload to YouTube in progress %1 % + يجري التحميل على الشبكة اليوتوب %1 % + + + + UBYouTubePublishingDialog + + Upload + التحميل + + + Music + موسيقى + + + Sports + رياضة + + + Gaming + لعب فيديو + + + Comedy + كوميديا + + + Entertainment + ترفيه + + + Education + تعليم + + + Autos & Vehicles + سيارات وعربات + + + Pets & Animals + حيوانات وحيوانات أليفة + + + Travel & Events + سفر ومناسبات + + + People & Blogs + شخصيات ومدونات + + + News & Politics + أخبار وسياسة + + + Howto & Style + دليل وستايل + + + Nonprofits & Activism + أعمال خيرية وأنشطة + + + Science & Technology + علوم وتكنولوجيا + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + مسح + + + + WBDownloadItem + + Save File + حفظ الملف + + + Download canceled: %1 + الغاء التنزيل: %1 + + + Error opening saved file: %1 + خطأ فتح الملف المسجل: %1 + + + Error saving: %1 + خطأ تسجيل: %1 + + + Network Error: %1 + خطأ شبكة: %1 + + + seconds + ثواني + + + minutes + دقائق + + + - %4 %5 remaining + - %4 %5 متبقية + + + %1 of %2 (%3/sec) %4 + %1 من %2 (%3/ثواني) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 من %2 - متوقف + + + bytes + بايت + + + KB + كيلوبايت + + + MB + ميجابايت + + + + WBDownloadManager + + 1 Download + 1 تنزيل + + + %1 Downloads + always >= 2 + %1 تنزيلات + + + + WBHistoryModel + + Title + الاسم + + + Address + العنوان + + + + WBHistoryTreeModel + + Earlier Today + في وقت سابق اليوم + + + %1 items + %1 عناصر + + + + WBSearchLineEdit + + Search + بحث + + + + WBTabBar + + Clone Tab + استنساخ علامة التبويب + + + &Close Tab + واغلاق علامة التبويب + + + Close &Other Tabs + اغلاق وعلامات تبويب أخرى + + + Reload Tab + تحديث علامة التبويب + + + Reload All Tabs + تحديث كل علامات التبويب + + + New &Tab + New &Tab + + + + WBTabWidget + + Recently Closed Tabs + علامات التبويب التي تم فتحها مؤخرا + + + (Untitled) + (دون عنوان) + + + + WBToolbarSearch + + Search + بحث + + + No Recent Searches + لا توجد عمليات بحث حديثة + + + Recent Searches + عمليات بحث حديثة + + + Clear Recent Searches + مسح عمليات البحث الحديثة + + + + WBWebPage + + Download + تنزيل + + + Add to Current Document + اضافة الى الوثيقة الحالية + + + PDF + PDF + + + Error loading page: %1 + خطأ تحميل الصفحة: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + فتح في علامة تبويب جديدة + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + نشر البودكاست على يوتيوب + + + Title + العنوان + + + Description + الوصف + + + Keywords + الكلمات الرئيسية + + + Category + فئة + + + YouTube Username + اسم مستخدم اليوتوب + + + YouTube Password + كلمة سر اليوتوب + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">بالضغط على 'تحميل'، تشهدون أنكم تملكون كل حقوق المحتوى أو أنكم تملكون رخصة من مالك الحقوق لنشر المحتوى على اليوتوب، وأنه يخترم شروط استعمال لبيوتوب الموجودة في </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + في خلفية مضيئة + + + On Dark Background + في خلفية داكنة + + + Opacity + معدل الشفافية + + + Line Width + عرض الخط + + + Medium + متوسط + + + Strong + قوي + + + Fine + دقيق + + + Pen is Pressure Sensitive + القلم حساس للضغط + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + حوار + + + Title + الاسم + + + E-mail + البريد الالكتروني + + + Author + الناشر + + + Description + الوصف + + + + documentPublishingDialog + + Dialog + حوار + + + E-mail + البريد الالكتروني + + + Author + الناشر + + + Description + الوصف + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + تفضيلات + + + Default Settings + Default Settings + + + Close + Close + + + Display + Display + + + Internet + Internet + + + Show Page with External Browser + عرض الصفحة على متصفح خارجي + + + Home Page: + الصفحة الرئيسية: + + + Virtual Keyboard + لوحة مفاتيح افتراضية + + + Keyboard button size: + حجم أزرار لوحة المفاتيح: + + + Toolbar + شريط الأدوات + + + Positioned at the Top (recommended for tablets) + متمركز في الأعلى (منصوح به للكمبيوتر اللوحي) + + + Positioned at the Bottom (recommended for white boards) + متمركز في الأسفل (منصوح به اللوحات البيضاء) + + + Display Text Under Button + عرض النص أسفل الزر + + + Stylus Palette + لوح الرسم + + + Horizontal + أفقي + + + Vertical + عمودي + + + Pen + قلم + + + Marker + علامة + + + Licences + رخص + + + About + حول + + + Software Update + تحيين البرنامج + + + Check software update at launch + التحقق من تحيين البرنامج عن الانطلاق + + + Network + شبكة + + + version : … + نسخة: + + + Show internal web page content on secondary screen or projector + عرض محتوى صفحة الويب الداخلية على الشاشة الثانوية أو جهاز العرض + + + Multi display + عرض متعدد + + + Swap control display and view display + تبديل عرض التحكم ومشاهدة العرض + + + Mode + نسق + + + Mode to start in: + نسق البداية: + + + Board + لوحة + + + Desktop + سطح المكتب + + + Proxy User: + مستعمل بروكسي: + + + Pass: + المرور: + + + Credits + الشكر إلى + + + On Dark Background + في خلفية داكنة + + + Opacity + معدل الشفافية + + + On Light Background + في خلفية مضيئة + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + إمساك فلاش + + + Select a flash to trap + اختيار فلاش للامساك به + + + about:blank + about:blank + + + Application name + اسم التطبيق + + + Create Application + إنشاء تطبيق + + + diff --git a/resources/i18n/OpenBoard_bg.ts b/resources/i18n/OpenBoard_bg.ts new file mode 100644 index 0000000..303f13a --- /dev/null +++ b/resources/i18n/OpenBoard_bg.ts @@ -0,0 +1,2922 @@ + + + + + BlackoutWidget + + Click to Return to Application + Натисни, за да се върнеш към приложението + + + + DownloadDialog + + Downloads + Изтегляни файлове + + + Clean Up + Почистване + + + 0 Items + 0 обекта + + + + DownloadItem + + Form + Форма + + + Filename + Име на файла + + + Try Again + Опитай отново + + + Stop + Стоп + + + Open + Отвори + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Публикувай подкаст в YouTube + + + Title + Заглавие + + + Description + Описание + + + Author + Автор + + + + MainWindow + + Board + Дъска + + + Web + Мрежа + + + Documents + Документи + + + Stylus + Писалка + + + Ctrl+T + Натиснете Ctrl+T + + + Backgrounds + Фонове + + + Change Background + Смени фона + + + Undo + Отмени последното действие + + + Ctrl+Z + Натиснете Ctrl+Z + + + Redo + Преработване + + + Ctrl+Y + Натиснете Ctrl+Y + + + Previous + Предишен + + + Previous Page + Предишна страница + + + PgUp + PgUp + + + Next + Следващ + + + Next Page + Следваща страница + + + PgDown + PgDown + + + Manage Documents + Управление на документи + + + Ctrl+D + Натиснете Ctrl+D + + + Web Browsing + Търсене в мрежата + + + Ctrl+W + Натиснете Ctrl+W + + + Quit + Изход + + + Back + Назад + + + Left + На ляво + + + Forward + Напред + + + Right + На дясно + + + Reload + Презареждане + + + Home + Home + + + Bookmarks + Отметки + + + Bookmark + Отметка + + + Ctrl+B + Натиснете Ctrl+B + + + Erase + Заличи + + + Preferences + Опции + + + Library + Библиотека + + + Show Desktop + Покажи десктоп + + + Bigger + По-голям + + + Ctrl++ + Натиснете Ctrl++ + + + Smaller + По-малък + + + Ctrl+- + Натиснете Ctrl+- + + + New Folder + Нова папка + + + New Document + Нов Документ + + + Import + Вмъкване + + + Export + Екпортиране + + + Open in Board + Отвори в режим на дъска + + + Ctrl+O + Натиснете Ctrl+O + + + Duplicate + Копирай + + + Delete + Изтрий + + + Del + Del + + + Add to Working Document + Добави в работен документ + + + Add Selected Content to Open Document + Добави избраното в отворен документ + + + Add + Добави + + + Rename + Преименувай + + + Tools + Инструменти + + + Multi Screen + Много екрани + + + Wide Size (16/9) + Широк размер (16/9) + + + Regular Size (4/3) + Нормален размер (4/3) + + + Custom Size + Размер по избор + + + Stop Loading + Спри зареждането + + + Cut + Изрежи + + + Copy + Копирай + + + Paste + Постави + + + Sleep + Заспиване + + + Virtual Keyboard + Виртуална клавиатура + + + Plain Light Background + Обикновен Светъл фон + + + Light + Светъл + + + Grid Light Background + Светъл фон - решетка + + + Plain Dark Background + Обикновен тъмен фон + + + Dark + Тъмен + + + Grid Dark Background + Тъмен фон - решетка + + + Podcast + Подкаст + + + Record + Запиши + + + Start Screen Recording + Започни записване на екрана + + + Erase Items + Изтрий обектите + + + Erase Annotations + Изтрий анотациите + + + Clear Page + Изчисти страницата + + + Pen + Химикалка + + + Check Update + Провери за обновления + + + Ctrl+H + Натиснете Ctrl+H + + + Eraser + Гума + + + Marker + Маркер + + + Selector + Инструмент за маркиране + + + Hand + Ръка + + + Zoom In + Приближавам + + + Zoom Out + Отдалечавам + + + Line + Линия + + + Small Line + Малка линия + + + Medium Line + Средна линия + + + Large Line + Голяма линия + + + Smalle Eraser + Малка гума + + + Medium Eraser + средна гума + + + Large Eraser + Голяма гума + + + Color + Цвят + + + Reload Current Page + Презареди текущата страница + + + Load Home Page + Зареди началната страница + + + Show Bookmarks + Покажи отметките + + + Add Bookmark + Добави отметка + + + Display Board + Покажи дъската + + + Erase Content + Изтрий съдържанието + + + Display Preferences + Покажи опциите + + + Show Library + Покажи библиотека + + + Show Computer Desktop + Покажи десктоп + + + Ctrl+Shift+H + Натиснете Ctrl+Shift+W + + + Create a New Folder + Създай нова папка + + + Create a New Document + Създай нов документ + + + Import a Document + Вмъкни документ + + + Export a Document + Експортирай документ + + + Open Page in Board + Отвори страница в режим Дъска + + + Duplicate Selected Content + Дублирай избраното съдържание + + + Delete Selected Content + Изтрий избраното съдържание + + + Add Content to Document + Добави съдържане към документа + + + Rename Content + Преименувай съдържанието + + + Display Tools + Покажи инструменти + + + Use Document Wide Size (16/9) + Широк формат на документа (16/9) + + + Use Document Regular Size (4/3) + Нормален формат на документа (4/3) + + + Use Custom Document Size + Формат на документа по избор + + + Stop Loading Web Page + Спиране на зареждането на страницата + + + Put Presentation to Sleep + Презентация в режим на сън + + + Display Virtual Keyboard + Покажи виртуалната клавиатура + + + Record Presentation to Video + Запиши презентацията като видео + + + Erase All Items + Изтрий всички обекти + + + Erase All Annotations + Изтрий всички анотации + + + Clear All Elements + Изчисти всички елементи + + + Annotate Document + Анотация на документ + + + Ctrl+I + Натиснете Ctrl+I + + + Erase Annotation + Изтрий анотация + + + Ctrl+E + Натиснете Ctrl+E + + + Highlight + Подчертаване + + + Ctrl+M + Натиснете Ctrl+M + + + Select And Modify Objects + Избиране и променяне на обекти + + + Ctrl+F + Натиснете Ctrl+F + + + Scroll Page + Превъртане на страницата + + + Laser Pointer + Лазерна показалка + + + Virtual Laser Pointer + Виртуална лазерна показалка + + + Ctrl+G + Натиснете Ctrl+G + + + Draw Lines + Рисуване на линии + + + Ctrl+J + Натиснете Ctrl+J + + + Text + Текст + + + Write Text + Въведи текст + + + Ctrl+K + Натиснете Ctrl+K + + + Capture + Записване + + + Add To Current Page + Добави към текущата страница + + + Add Item To Current Page + Добави обекта на настоящата страница + + + Add To New Page + Добави на нова страница + + + Add Item To New Page + Добави обекта на нова страница + + + Add To Library + Добави в библиотека + + + Add Item To Library + Добави обекта в галерията + + + Pages + Страници + + + Create a New Page + Създай нова страница + + + New Page + Нова страница + + + Duplicate Page + Дублирай страница + + + Duplicate the Current Page + Дублирай текущата страница + + + Import Page + Вмъкни страница + + + Import an External Page + Вмъкни външна страница + + + Pause + Пауза + + + Pause Podcast Recording + Пауза на записа на подкаст + + + Podcast Config + Конфигурации на подкаста + + + Configure Podcast Recording + Конфигурации на записа на подкаст + + + Flash Trap + Инструмент за Flash съдържание + + + Trap Flash Content + Съдържание на Flash + + + Web Trap + Инструмент за съдържание от мрежата + + + Trap Web Content + Съдържание от мрежата + + + Capture Part of the Screen + Снимане на част от екрана + + + Custom Capture + Снимане по избор + + + Capture a Window + Снимане на прозорец + + + Embed Web Content + Вмъкване на съдържание от мрежата + + + Capture Embeddable Web Content + Снимане на съдържание от мрежата + + + Show Main Screen on Display Screen + Покажи главния екран + + + Erase all Annotations + Изтрий всички анотации + + + eduMedia + eduMedia + + + Import eduMedia simulation + вмъкни eduMedia симулация + + + Window Capture + Снимане на прозореца + + + Show on Display + Покажи на екрана + + + OpenBoard + Отворено-Санкоре + + + Quit OpenBoard + Излез от Санкоре + + + Hide OpenBoard + Скрий Санкоре + + + Hide OpenBoard Application + Скрий приложението Санкоре + + + Play + Пусни + + + Interact with items + Работи с обектите + + + Erase Background + Изтрий фона + + + Remove the backgound + Премахни фона + + + Ctrl+L + + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Изисква се проверка за достоверност + + + Username: + Потребителско име: + + + Password: + Парола: + + + + ProxyDialog + + Proxy Authentication + Проверка на Proxy + + + Connect to Proxy + Свържи се към Proxy + + + Username: + Потребителско име: + + + Password: + Парола: + + + Save username and password for future use + Запомни потребителско име и парола за бъдеща употреба + + + + QObject + + Element ID = + Номер на елемента = + + + Content is not supported in destination format. + Това съдържание не се поддържа вкрайния формат. + + + Remove Page + Премахни страницата + + + Are you sure you want to remove 1 page from the selected document '%0'? + Сигурни ли сте ,че искате да премахнете 1 страница от избрания документ '%0'? + + + + UBApplication + + Page Size + Големина на страницата + + + Podcast + Подкаст + + + + UBApplicationController + + Web + Мрежа + + + New update available, would you go to the web page ? + Има ново обновление, ще отидете ли на интернет страницата? + + + No update available + Няма нови обновления + + + Update available + Има нови обновления + + + Update + Обновления + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Изтеглянето %1 прекъсна + + + Download finished + Изтеглянето завърши + + + Unknown tool type %1 + Непознат инструмент %1 + + + Unknown content type %1 + Непознато съдържание %1 + + + Add Item + Добави обект + + + All Supported (%1) + Всички поддържани (%1) + + + Delete page %1 from document + Изтрий страница %1 от документа + + + Page %1 deleted + Страница %1 изтрита + + + Add file operation failed: file copying error + Грешка при операцията:грешка при копирането на файл + + + Group + Групирай + + + Ungroup + Премахни групирането + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Цвят + + + + UBBoardPaletteManager + + Error Adding Image to Library + Грешка при добавяне на изображение в библиотеката + + + CapturedImage + Уловени изображения + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Настройки на щората + + + Color: + Цвят: + + + Shape: + Форма: + + + Size: + Размер: + + + Close + Затвори + + + + UBDesktopPalette + + Capture Part of the Screen + Снимай част от екрана + + + Capture the Screen + Снимай екрана + + + Show the stylus palette + Покажи палитрата на маркера + + + Show Board on Secondary Screen + Покажи дъската на втория екран + + + Show Desktop on Secondary Screen + Покажи работния плот на втория екран + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Нова папка + + + Page %1 + Страница %1 + + + Add Folder of Images + Добави папка с изображения + + + Add Images + Добави изображения + + + Add Pages from File + Добави страници към документа + + + Duplicating Document %1 + Копирай документа %1 + + + Document %1 copied + Документът %1 е копиран + + + Remove Page + Премахни страницата + + + Remove Document + Премахни документа + + + Are you sure you want to remove the document '%1'? + Сигурни ли сте, че искате да премахнете документа '%1'? + + + Empty Trash + Изпразни кошчето + + + Are you sure you want to empty trash? + Сигурни ли сте, че искате да изпразните кошчето? + + + Emptying trash + Изпразване на кошче + + + Emptied trash + Кошчето е изпразнено + + + Remove Folder + Премахни папка + + + Are you sure you want to remove the folder '%1' and all its content? + Сигурни ли сте, че искате да премахнете папка '%1' и всичко което съдържа? + + + No document selected! + Не е избран документ! + + + Open Supported File + Отвори поддържани файлове + + + Importing file %1... + Вмъкване на файлове %1... + + + Failed to import file ... + Греша при внъкването на файловете ... + + + Import all Images from Folder + Вмъкни всички изображения от папката + + + Delete + Изтрий + + + Empty + Изпразни + + + Trash + Кошче + + + Open Document + Отвори документ + + + Add all Images to Document + Добави всички изображения към документа + + + All Images (%1) + Всички изображения (%1) + + + Selection does not contain any image files! + Избраните файлове не са изображения! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + We do not understand the warning marks here, please clarify what the problem is, to: a.angelov@cct.bg and iva.ninova@cct.bg Thanks! + + Сигурни ли сте, че искате на премахнете %n страница от избрания документ '%1'? + Сигурни ли сте, че искате на премахнете %n страници от избрания документ '%1'? + + + + Folder does not contain any image files + В папката няма файлове с изображения + + + Untitled Documents + Неозаглавени документи + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + Изображения + + + videos + Видео + + + objects + обекти + + + widgets + widgets + + + All supported files (*.%1) + Всички поддържани файлове (*.%1) + + + File %1 saved + Файлът %1 е запазен + + + Inserting page %1 of %2 + Вмъкване на страница %1 от %2 + + + Import successful. + Вмъкването успешно. + + + Import of file %1 successful. + Вмъкване на файл %1 успешно. + + + Importing file %1 + Вмъква файл %1 + + + + UBDocumentNavigator + + Page %0 + Страница %0 + + + + UBDocumentReplaceDialog + + Accept + Приеми + + + Replace + + + + Cancel + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Кошче + + + %1 pages copied + + %1 страница копирана + %1 страници копирани + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 страница копирана + %1 страници копирани + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Копиране на страница %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (копиране) + + + Copying page %1/%2 + Копиране на страница %1/%2 + + + %1 pages copied + + %1 страница копирана + %1 страници копирани + + + + + UBDownloadWidget + + Downloading files + Изтегляне на файлове + + + Cancel + Отмени + + + + UBDraggableThumbnail + + Page %0 + Страница %0 + + + + UBDraggableThumbnailView + + Page %0 + Страница %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Появиха се предупреждения по време на експортирането на страницата + + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + + UBExportCFF + + Export to IWB + Експортирай към интерактивната дъска + + + Export as IWB File + Експортирай като файл за интерактивна дъска + + + Exporting document... + Експортиране на документ... + + + Export successful. + Експортирането успешно. + + + Export failed. + Експортирането се провали. + + + + UBExportDocument + + Page + Страница + + + Export as UBZ File + Експортирай като UBZ файл + + + Exporting document... + Експортиране на документ... + + + Export successful. + Експортирането е успешно. + + + Exporting %1 %2 of %3 + Експортиране на %1 %2 от %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Експортирай като PDF файл + + + Exporting document... + Експортиране на документа... + + + Export successful. + Експортирането е успешно. + + + Export to PDF + Експортиране към PDF + + + + UBExportPDF + + Export as PDF File + Експортиране като PDF файл + + + Exporting document... + Експортиране на документ... + + + Export successful. + Експортирането успешно. + + + Exporting page %1 of %2 + Експортиране на страница %1 от %2 + + + Export to PDF + Експортиране като PDF + + + + UBExportWeb + + Page + Страница + + + Export as Web data + Експортиране като Web data + + + Exporting document... + Експортиране на документ... + + + Export successful. + Експортирането успешно. + + + Export failed. + Грешка при експортирането. + + + Export to Web Browser + Експортирането към интернет браузър + + + + UBFeatureProperties + + Add to page + Добави към страница + + + Set as background + Задай като фон + + + Add to library + Добави към библиотека + + + Object informations + Информация за обекта + + + + UBFeaturesActionBar + + Add to favorites + Добави в любими + + + Share + Сподели + + + Search + Търсене + + + Delete + Изтрий + + + Back to folder + Обратно в папката + + + Remove from favorites + Премахване от любими + + + Create new folder + Създаване на нова папка + + + Rescan file system + Сканирай файловата система отново + + + + UBFeaturesController + + ImportedImage + Вмъкнати изображения + + + Audios + Звук + + + Movies + Филми + + + Pictures + Изображения + + + Animations + Анимации + + + Interactivities + Интерактивни обекти + + + Applications + Приложения + + + Shapes + Форми + + + Favorites + Любими + + + Web search + Търсене в интернет + + + Trash + Кошче + + + + UBFeaturesNewFolderDialog + + Accept + Приеми + + + Cancel + Откажи + + + Enter a new folder name + Въведете ново име на папка + + + + UBFeaturesProgressInfo + + Loading + Зареждане + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Заключено + + + Visible on Extended Screen + Видим на втория екран + + + + UBGraphicsItemDelegate + + Locked + Заключено + + + Visible on Extended Screen + Видим на втория екран + + + Go to Content Source + Отиди към източника на съдържанието + + + Set as background + Задай като фон + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Напишете текст тук> + + + + UBGraphicsTextItemDelegate + + Text Color + Цвят на текста + + + Editable + Възможност за редактиране + + + + UBGraphicsW3CWidgetItem + + Web + Мрежа + + + + UBGraphicsWidgetItem + + Loading ... + Зареждане... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Замръзнал + + + Transform as Tool + Трансформирай като Инструмент + + + + UBImportCFF + + Common File Format ( + Общ формат на файла ( + + + Importing file %1... + Импортиране на файл %1... + + + Import of file %1 failed. + Импортирането на файл %1 се провали. + + + Import successful. + Импортирането успешно. + + + Import failed. + Грешка при импортирането. + + + + UBImportDocument + + Importing file %1... + Импортиране на файл %1... + + + Import successful. + Импортирането успешно. + + + Import of file %1 failed. + Грешка при импортирането на файл %1. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Формат на изображението ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Грешка при вмъкване на PDF . + + + Importing page %1 of %2 + Вмъкване на страница %1 от %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Грешка при публикуването на видеото (%1) + + + Publishing to Intranet in progress %1 % + Видеото се публикува %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Публикувай + + + + UBKeyboardPalette + + Enter + Вход + + + + UBMainWindow + + Yes + Да + + + No + Не + + + Ok + Добре + + + + UBMessagesDialog + + Close + Затвори + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Въведи потребителско име и парола"%1" на %2</qt> + + + Failed to log to Proxy + Грешка при свързването към Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL грешки: + +%1 + +%2 + +Искате ли да прескочите тези грешки? + + + Yes + Да + + + No + Не + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Cancel + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (копирай) + + + Document Repository Loss + Загубено е хранилището за документи + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Английски + + + Russian + Руски + + + German + Немски + + + French + Френски + + + Swiss French + Щвейцарски френски + + + + UBPodcastController + + Failed to start encoder ... + Грешка при стартирането на encoder ... + + + No Podcast encoder available ... + Не е наличен encoder за подкаст ... + + + Part %1 + Част %1 + + + on your desktop ... + на вашия работен плот... + + + in folder %1 + в папка %1 + + + Podcast created %1 + Създаден подкаст %1 + + + Podcast recording error (%1) + Грешка при записа на подкаст (%1) + + + Default Audio Input + Аудио вход по подразбиране + + + No Audio Recording + Няма аудио разпис + + + Small + Малък + + + Medium + Среден + + + Full + Пълен + + + Publish to Intranet + Публикувай в мрежата + + + Publish to Youtube + Публикувай в YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + версия: + + + Marker is pressure sensitive + Чувствителен на натиск маркер + + + + UBProxyLoginDlg + + Proxy Login + Прокси свързване + + + Username: + Потребителско име: + + + Password: + Парола: + + + + UBPublicationDlg + + Publish document on the web + Публикувай документ в мрежата + + + Title: + Заглавие: + + + Description: + Описание: + + + Publish + Публикувай + + + + UBSettings + + My Movies + Моите филми + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Създаване на икомите за предварителен преглед ... + + + %1 thumbnails generated ... + %1 икони са създадени ... + + + + UBThumbnailTextItem + + Page %0 + Страница %0 + + + + UBToolsManager + + Mask + Маска + + + Ruler + Линия + + + Compass + Компас + + + Protractor + Транспортир + + + Triangle + Триъгълник + + + Magnifier + Лупа + + + Cache + Кеш + + + Axes + + + + + UBTrapFlashController + + Whole page + Цялата страница + + + Web + Мрежа + + + + UBUpdateDlg + + Document updater + Обновяване на документ + + + files require an update. + Файлове, които имат нужда от обновяване. + + + Backup path: + Място на архив: + + + Browse + Разгледай + + + Update + Обнови + + + Select a backup folder + Избери папка за архив + + + Files update successful! +Please reboot the application to access the updated documents. + Обновяването на файловете е успешно! Моля рестартирайте приложението, за да имате достъп до обновените документи. + + + An error occured during the update. The files have not been affected. + Възникна грешка по време на обновяването. Файловете не са засегнати. + + + Files update results + Резултат от обновяването на файловете + + + Updating file + Файлът се обновява + + + Please wait the import process will start soon... + Моля, изчакайте, процесът на вмъкване ще започне след малко... + + + Remind me later + Напомни ми по-късно + + + + UBWebPluginWidget + + Loading... + Зареждане... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 извикани (метод=%1, статус=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Проверката за достоверност в YouTube не е завършена. + + + Error while uploading video to YouTube (%1) + Грешка при зареждане на видео от YouTube (%1) + + + Upload to YouTube in progress %1 % + Качване в YouTube %1 % + + + + UBYouTubePublishingDialog + + Upload + Качване + + + Autos & Vehicles + Коли & превозни средства + + + Music + Музика + + + Pets & Animals + Домашни любимци & животни + + + Sports + Спорт + + + Travel & Events + Пътуване & събития + + + Gaming + Игри + + + Comedy + Комедия + + + People & Blogs + Хора & блогове + + + News & Politics + Новини & политика + + + Entertainment + Забавление + + + Education + Образование + + + Howto & Style + Направи си сам & стил + + + Nonprofits & Activism + Организации с нетърговска цел & активизъм + + + Science & Technology + Наука & технологии + + + + UBZoomPalette + + %1 x + %1 х + + + + WBClearButton + + Clear + Изчисти + + + + WBDownloadItem + + Save File + Запиши файл + + + Download canceled: %1 + Изтеглянето е отменено: %1 + + + Error opening saved file: %1 + Грешка при отваряне на запазен файл: %1 + + + Error saving: %1 + Грешка при запазване: %1 + + + Network Error: %1 + Грешка в мрежата: %1 + + + seconds + секунди + + + minutes + минути + + + - %4 %5 remaining + -%4 %5 остават + + + %1 of %2 (%3/sec) %4 + %1 от %2 (%3/сек) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 от %2 - спряни + + + bytes + байтове + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 изтегляне + + + %1 Downloads + always >= 2 + %1 изтегляне + + + + WBHistoryModel + + Title + Заглавие + + + Address + Адрес + + + + WBHistoryTreeModel + + Earlier Today + По-рано днес + + + %1 items + %1 обекта + + + + WBSearchLineEdit + + Search + Търсене + + + + WBTabBar + + New &Tab + Нов & Разделител + + + Clone Tab + Копирай разделията + + + &Close Tab + & Затвори разделителя + + + Close &Other Tabs + Затвори &други разделители + + + Reload Tab + Презариди разделителя + + + Reload All Tabs + Презареди всички разделители + + + + WBTabWidget + + Recently Closed Tabs + Скоро затворени разделители + + + (Untitled) + (неименуван) + + + + WBToolbarSearch + + Search + Търсене + + + No Recent Searches + Няма скорошни търсения + + + Recent Searches + Скорошни търсения + + + Clear Recent Searches + Изчисти скорошните търсения + + + + WBWebPage + + Download + Изтегляне + + + Add to Current Document + Добави към текущия документ + + + PDF + PDF + + + Error loading page: %1 + Грешка при зареждане на страница: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Отвори в нов раздел + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Публикувай подкат в YouTube + + + Title + Заглавие + + + Description + Описание + + + Keywords + Ключови думи + + + Category + Категория + + + YouTube Username + потребителско име за YouTube + + + YouTube Password + парола за YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">С натискането на бутона "Качи" вие удостоверявате, че притежавате всички права върху съдържанието или че законния собственик ви е разрешил да разпространите публично съдържанието в YouTube и че не е в разрез с условията на YouTube </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + Отворено-Санкоре + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + Непрозрачност + + + On Light Background + На светъл фон + + + On Dark Background + На тъмен фон + + + Line Width + Ширина на линията + + + Medium + Средна + + + Strong + Голяма + + + Fine + тънка + + + Pen is Pressure Sensitive + Химикалката е чувствителна на натиск + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Диалог + + + Title + Заглавие + + + E-mail + електронна поща + + + Author + Автор + + + Description + Описание + + + + documentPublishingDialog + + Dialog + Диалог + + + Title + Заглавие + + + E-mail + електронна поща + + + Author + Автор + + + Description + Описание + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Настройки + + + Default Settings + Настройки по подразбиране + + + Close + Затвори + + + Display + Дисплей + + + Show Page with External Browser + Покажи страницата с външен браузър + + + Virtual Keyboard + Виртуална клавиатура + + + Keyboard button size: + Големина на бутоните на клавиатурата: + + + Positioned at the Top (recommended for tablets) + Поставена отгоре (препоръчва се за таблети) + + + Positioned at the Bottom (recommended for white boards) + Поставена от долу (препоръчва се за бели дъски) + + + Display Text Under Button + Покажи текста под бутона + + + Stylus Palette + Палитна на стилуса + + + Horizontal + Хоризонтално + + + Vertical + Вертикално + + + About + Информация + + + Software Update + Оновяване на софтуера + + + Check software update at launch + Проверявай за обновления при стартиране + + + Internet + Интернет + + + Home Page: + начална страница: + + + Toolbar + Лента с инструменти + + + Pen + Химикалка + + + Marker + Маркер + + + version : … + версия: ... + + + Licences + Лиценз + + + Network + мрежа + + + Show internal web page content on secondary screen or projector + Покажи вътрешната страница на втори екран на проектора + + + Multi display + Много екрани + + + Swap control display and view display + Размени контролния екран и екрана за гледане + + + Mode + Начин + + + Mode to start in: + Начин на започване: + + + Board + Дъска + + + Desktop + Десктоп + + + Proxy User: + Потребител на прокси: + + + Pass: + Парола: + + + Credits + Изготвили + + + On Dark Background + На тъмен фон + + + Opacity + Непрозрачност + + + On Light Background + На светъл фон + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Използване на флаш + + + Select a flash to trap + Избери флаш , който ще използваш + + + about:blank + about:blank + + + Application name + Име на приложението + + + Create Application + Създаване на приложение + + + diff --git a/resources/i18n/OpenBoard_ca.ts b/resources/i18n/OpenBoard_ca.ts new file mode 100644 index 0000000..e7b01e8 --- /dev/null +++ b/resources/i18n/OpenBoard_ca.ts @@ -0,0 +1,2922 @@ + + + + + BlackoutWidget + + Click to Return to Application + Feu clic per tornar a l'aplicació + + + + DownloadDialog + + Downloads + Baixades + + + Clean Up + Neteja + + + 0 Items + 0 elements + + + + DownloadItem + + Form + Formulari + + + Filename + Fitxer + + + Try Again + Torneu-ho a intentar + + + Stop + Atura + + + Open + Obre + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publica un podcast al YouTube + + + Title + Títol + + + Description + Descripció + + + Author + Autor/a + + + + MainWindow + + Board + Tauler + + + Web + Web + + + Documents + Documents + + + Stylus + Estris + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fons + + + Text + Text + + + Capture + Captura + + + Add To Current Page + Afegeix a la pàgina actual + + + Add To New Page + Afegeix a una pàgina nova + + + Add To Library + Afegeix a la biblioteca + + + Pages + Pàgines + + + New Page + Pàgina nova + + + Change Background + Canvia el fons + + + Undo + Desfés + + + Ctrl+Z + Ctrl+Z + + + Redo + Refés + + + Ctrl+Y + Ctrl+Y + + + Previous + Anterior + + + Previous Page + Pàgina anterior + + + PgUp + Tecla de retrocedir pàgina + + + Next + Següent + + + Next Page + Pàgina següent + + + PgDown + Tecla d'avançar pàgina + + + Manage Documents + Gestiona els documents + + + Ctrl+D + Ctrl+D + + + Web Browsing + Navegació web + + + Ctrl+W + Ctrl+W + + + Line + Línia + + + Small Line + Línia petita + + + Medium Line + Línia mitjana + + + Large Line + Línia gran + + + Quit + Surt + + + Eraser + Esborrador + + + Smalle Eraser + Esborrador petit + + + Medium Eraser + Esborrador mitjà + + + Large Eraser + Esborrador gran + + + Color + Color + + + Back + Enrere + + + Left + Esquerra + + + Forward + Cap endavant + + + Right + Dreta + + + Reload + Torna a carregar + + + Reload Current Page + Torna a carregar la pàgina actual + + + Home + Inici + + + Load Home Page + Carrega la pàgina d'inici + + + Bookmarks + Adreces d'interès + + + Show Bookmarks + Mostra les adreces d'interès + + + Bookmark + Adreça d'interès + + + Add Bookmark + Afegeix una adreça d'interès + + + Display Board + Mostra el tauler + + + Ctrl+B + Ctrl+B + + + Erase + Esborra + + + Erase Content + Esborra el contingut + + + Preferences + Preferències + + + Display Preferences + Visualitza les preferències + + + Library + Biblioteca + + + Show Library + Mostra la biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + Mostra l'escriptori + + + Show Computer Desktop + Mostra l'escriptori de l'ordinador + + + Ctrl+Shift+H + Ctrl+Maj+H + + + Bigger + Més gran + + + Zoom In + Apropa + + + Ctrl++ + Ctrl++ + + + Smaller + Més petit + + + Zoom Out + Allunya + + + Ctrl+- + Ctrl+- + + + New Folder + Carpeta nova + + + Create a New Folder + Crea una carpeta nova + + + New Document + Document nou + + + Create a New Document + Crea un document nou + + + Import + Importa + + + Import a Document + Importa un document + + + Export + Exporta + + + Export a Document + Exporta un document + + + Open in Board + Obre al tauler + + + Open Page in Board + Obre la pàgina al tauler + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplica + + + Duplicate Selected Content + Duplica el contingut seleccionat + + + Delete + Elimina + + + Delete Selected Content + Elimina el contingut seleccionat + + + Del + Elimina + + + Add to Working Document + Afegeix al document de treball + + + Add Selected Content to Open Document + Afegeix el contingut seleccionat al document obert + + + Add + Afegeix + + + Add Content to Document + Afegeix contingut al document + + + Rename + Canvia el nom + + + Rename Content + Canvia el nom del contingut + + + Tools + Eines + + + Display Tools + Mostra les eines + + + Multi Screen + Multipantalla + + + Wide Size (16/9) + Mida ampla (16:9) + + + Use Document Wide Size (16/9) + Utilitza la mida de document ampla (16:9) + + + Regular Size (4/3) + Mida normal (4:3) + + + Use Document Regular Size (4/3) + Utilitza la mida de document normal (4:3) + + + Custom Size + Mida personalitzada + + + Use Custom Document Size + Utilitza la mida de document personalitzada + + + Stop Loading + Atura la càrrega + + + Stop Loading Web Page + Atura la càrrega de la pàgina web + + + Cut + Retalla + + + Copy + Copia + + + Paste + Enganxa + + + Sleep + Adorm + + + Put Presentation to Sleep + Adorm la presentació + + + Virtual Keyboard + Teclat virtual + + + Display Virtual Keyboard + Mostra el tecla virtual + + + Plain Light Background + Fons clar llis + + + Light + Clar + + + Grid Light Background + Fons clar quadriculat + + + Plain Dark Background + Fons fosc llis + + + Dark + Fosc + + + Grid Dark Background + Fons fosc quadriculat + + + Podcast + Podcast + + + Record Presentation to Video + Enregistra la presentació en vídeo + + + Record + Enregistra + + + Start Screen Recording + Inicia l'enregistrament de la pantalla + + + Erase Items + Esborra els elements + + + Erase All Items + Esborra tots els elements + + + Erase Annotations + Esborra les anotacions + + + Erase All Annotations + Esborra totes les anotacions + + + Clear Page + Esborra la pàgina + + + Clear All Elements + Esborra tots els elements + + + Pen + Llapis + + + Annotate Document + Anota al document + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Esborra l'anotació + + + Ctrl+E + Ctrl+E + + + Marker + Marcador + + + Highlight + Ressalta + + + Ctrl+M + Ctrl+M + + + Selector + Selector + + + Select And Modify Objects + Selecciona i modifica objectes + + + Ctrl+F + Ctrl+F + + + Hand + + + + Capture Part of the Screen + Captura part de la pantalla + + + Custom Capture + Captura personalitzada + + + Capture a Window + Captura una finestra + + + Embed Web Content + Incrusta contingut web + + + Capture Embeddable Web Content + Captura contingut web incrustable + + + Show Main Screen on Display Screen + Mostra la pantalla principal a la pantalla + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importa una simulació eduMedia + + + Check Update + Comprova si hi ha actualitzacions + + + Scroll Page + Desplaça la pàgina + + + Laser Pointer + Punter làser + + + Virtual Laser Pointer + Punter làser virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Dibuixa línies + + + Ctrl+J + Ctrl+J + + + Write Text + Escriu text + + + Ctrl+K + Ctrl+K + + + Add Item To Current Page + Afegeix l'element a la pàgina actual + + + Add Item To New Page + Afegeix l'element a una pàgina nova + + + Add Item To Library + Afegeix l'element a la biblioteca + + + Create a New Page + Crea una pàgina nova + + + Duplicate Page + Duplica la pàgina + + + Duplicate the Current Page + Duplica la pàgina actual + + + Import Page + Importa una pàgina + + + Import an External Page + Importa una pàgina externa + + + Pause + Posa en pausa + + + Pause Podcast Recording + Posa en pausa l'enregistrament del podcast + + + Podcast Config + Configuració del podcast + + + Configure Podcast Recording + Configura l'enregistrament del podcast + + + Flash Trap + Captura d'objectes Flash + + + Trap Flash Content + Captura un objecte Flash + + + Web Trap + Captura de contingut web + + + Trap Web Content + Captura d'un contingut web + + + Window Capture + Captura de finestra + + + Show on Display + Mostra a la pantalla + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Surt de l'OpenBoard + + + Erase all Annotations + Esborra totes les anotacions + + + Hide OpenBoard + Amaga l'OpenBoard + + + Hide OpenBoard Application + Amaga l'aplicació OpenBoard + + + Ctrl+H + Ctrl+H + + + Play + Inicia + + + Interact with items + Interactua amb els elements + + + Erase Background + Esborra el fons + + + Remove the backgound + Elimina el fons + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Cal autenticació + + + Username: + Usuari: + + + Password: + Contrasenya: + + + + ProxyDialog + + Proxy Authentication + Autenticació del servidor intermediari + + + Connect to Proxy + Connecta al servidor intermediari + + + Username: + Usuari: + + + Password: + Contrasenya: + + + Save username and password for future use + Desa el nom d'usuari i la contrasenya per a un ús futur + + + + QObject + + Element ID = + ID de l'element = + + + Content is not supported in destination format. + Aquest contingut no està suportat pel format escollit. + + + Remove Page + Suprimeix la pàgina + + + Are you sure you want to remove 1 page from the selected document '%0'? + Esteu segur que voleu eliminar 1 pàgina del document seleccionat '%0'? + + + + UBApplication + + Page Size + Mida de la pàgina + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Hi ha disponible una actualització. Voleu visitar la web per descarregar-la? + + + No update available + No hi ha cap actualització disponible + + + Update available + Hi ha una actualització disponible + + + Update + Actualitza + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Ha fallat la baixada del contingut %1 + + + Download finished + Ha acabat la baixada + + + Unknown tool type %1 + Tipus desconegut d'eina %1 + + + Add Item + Afegeix un element + + + All Supported (%1) + Tots els acceptats (%1) + + + Unknown content type %1 + Tipus desconegut de contingut %1 + + + Delete page %1 from document + Elimina la pàgina %1 del document + + + Page %1 deleted + La pàgina %1 ha estat eliminada + + + Add file operation failed: file copying error + Ha fallat l'operació d'afegir un fitxer: error en copiar el fitxer + + + Group + Agrupa + + + Ungroup + Desagrupa + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Color + + + + UBBoardPaletteManager + + Error Adding Image to Library + No s'ha pogut afegir la imatge a la llibreria + + + CapturedImage + CapturedImage + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Propietats de la memòria cau + + + Color: + Color: + + + Shape: + Forma: + + + Size: + Mida: + + + Close + Tanca + + + + UBDesktopPalette + + Capture Part of the Screen + Captura part de la pantalla + + + Capture the Screen + Captura la pantalla + + + Show the stylus palette + Mostra la barra d'estris + + + Show Board on Secondary Screen + Mostra el tauler a la pantalla secundària + + + Show Desktop on Secondary Screen + Mostra l'escriptori a la pantalla secundària + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Carpeta nova + + + Page %1 + Pàgina %1 + + + Add Folder of Images + Afegeix una carpeta d'imatges + + + Add Images + Afegeix imatges + + + Add Pages from File + Afegeix pàgines des d'un fitxer + + + Duplicating Document %1 + S'està duplicant el document %1 + + + Document %1 copied + S'ha copiat el document %1 + + + Remove Page + Suprimeix la pàgina + + + Remove Document + Suprimeix el document + + + Are you sure you want to remove the document '%1'? + Esteu segur que voleu eliminar el document '%1'? + + + Empty Trash + Buida la paperera + + + Are you sure you want to empty trash? + Esteu segur que voleu buidar la paperera? + + + Emptying trash + S'està buidant la paperera + + + Emptied trash + S'ha buidat la paperera + + + Remove Folder + Suprimeix la carpeta + + + Are you sure you want to remove the folder '%1' and all its content? + Esteu segur que voleu suprimir la carpeta '%1' i tot el seu contingut? + + + No document selected! + No hi ha cap document seleccionat! + + + Open Supported File + Obre un fitxer acceptat + + + Importing file %1... + S'està important el fitxer %1... + + + Failed to import file ... + Ha fallat la importació del fitxer... + + + Import all Images from Folder + Importa totes les imatges de la carpeta + + + Delete + Esborra + + + Empty + Buida + + + Trash + Paperera + + + Open Document + Obre un document + + + Add all Images to Document + Afegeix totes les imatges al document + + + All Images (%1) + Totes les imatges (%1) + + + Selection does not contain any image files! + La selecció no conté cap fitxer d'imatge! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Esteu segur que voleu eliminar %n pàgina del document seleccionat '%1'? + Esteu segur que voleu eliminar %n pàgines del document seleccionat '%1'? + + + + Folder does not contain any image files + La carpeta no conté cap fitxer d'imatge + + + Untitled Documents + Documents sense títol + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro de que desexa eliminar els elements seleccionats? + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + imatges + + + videos + vídeos + + + objects + objectes + + + widgets + ginys + + + All supported files (*.%1) + Tots els fitxers acceptats (*.%1) + + + File %1 saved + S'ha desat el fitxer %1 + + + Inserting page %1 of %2 + S'està inserint la pàgina %1 de %2 + + + Import successful. + La importació ha estat correcta. + + + Import of file %1 successful. + La importació del fitxer %1 ha estat correcta. + + + Importing file %1 + S'està important el fitxer %1 + + + + UBDocumentNavigator + + Page %0 + Pàgina %0 + + + + UBDocumentPublisher + + Export failed. + L'exportació ha fallat. + + + + UBDocumentReplaceDialog + + Accept + D'acord + + + Cancel + Cancel·la + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Paperera + + + %1 pages copied + + %1 pàgina copiada + %1 pàgines copiades + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 pàgina copiada + %1 pàgines copiades + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro de que desexa eliminar els elements seleccionats? + + + Copying page %1/%2 + S'està copiant la pàgina %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (còpia) + + + Copying page %1/%2 + S'està copiant la pàgina %1/%2 + + + %1 pages copied + + %1 pàgina copiada + %1 pàgines copiades + + + + + UBDownloadWidget + + Downloading files + S'estan baixant fitxers + + + Cancel + Cancel·la + + + + UBDraggableThumbnail + + Page %0 + Pàgina %0 + + + + UBDraggableThumbnailView + + Page %0 + Pàgina %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Advertiments: durant l'exportació han aparegut + + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Exporta a IWB + + + Export as IWB File + Exporta com a fitxer IWB + + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Export failed. + L'exportació ha fallat. + + + + UBExportDocument + + Page + Pàgina + + + Export as UBZ File + Exporta com a fitxer UBZ + + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Exporting %1 %2 of %3 + S'està exportant %1 %2 de %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Export failed. + L'exportació ha fallat. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exporta com a fitxer PDF + + + Exporting document... + S'està exportant el document... + + + Export to PDF + Exporta a PDF + + + Export successful. + L'exportació ha estat correcta. + + + + UBExportPDF + + Export as PDF File + Exporta com a fitxer PDF + + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Exporting page %1 of %2 + S'està exportant la pàgina %1 de %2 + + + Export to PDF + Exporta a PDF + + + + UBExportWeb + + Page + Pàgina + + + Export as Web data + Exporta com a dades web + + + Exporting document... + S'està exportant el document... + + + Export successful. + L'exportació ha estat correcta. + + + Export failed. + L'exportació ha fallat. + + + Export to Web Browser + Exporta al navegador web + + + + UBFeatureProperties + + Add to page + Afegeix a la pàgina + + + Set as background + Estableix com a fons + + + Add to library + Afegeix a la biblioteca + + + Object informations + Informacions de l'objecte + + + + UBFeaturesActionBar + + Add to favorites + Afegeix als llocs d'interès + + + Share + Comparteix + + + Search + Cerca + + + Rescan file system + Torna a explorar el sistema de fitxers + + + Delete + Elimina + + + Back to folder + Torna a la carpeta + + + Remove from favorites + Elimina dels llocs d'interès + + + Create new folder + Crea una carpeta nova + + + + UBFeaturesController + + ImportedImage + Imatge importada + + + Audios + Sons + + + Movies + Vídeos + + + Pictures + Imatges + + + Animations + Animacions + + + Interactivities + Interactivitats + + + Applications + Aplicacions + + + Shapes + Formes + + + Favorites + Preferits + + + Web search + Cerca a la web + + + Trash + Paperera + + + + UBFeaturesNewFolderDialog + + Accept + D'acord + + + Cancel + Cancel·la + + + Enter a new folder name + Escriviu el nom de la carpeta nova + + + + UBFeaturesProgressInfo + + Loading + S'està carregant + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Blocat + + + Visible on Extended Screen + Visible a la pantalla estesa + + + + UBGraphicsItemDelegate + + Locked + Blocat + + + Visible on Extended Screen + Visible a la pantalla estesa + + + Go to Content Source + Ves a la font de contingut + + + Set as background + Estableix com a fons + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Escriu text aquí> + + + + UBGraphicsTextItemDelegate + + Text Color + Color del text + + + Editable + Editable + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + S'està carregant ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Congelat + + + Transform as Tool + Transforma en eina + + + + UBImportCFF + + Common File Format ( + Format de fitxer comú ( + + + Importing file %1... + S'està important el fitxer %1... + + + Import of file %1 failed. + Ha fallat la importació del fitxer %1. + + + Import successful. + La importació ha estat correcta. + + + Import failed. + Ha fallat la importació. + + + + UBImportDocument + + Importing file %1... + S'està important el fitxer %1... + + + Import successful. + La importació ha estat correcta. + + + Import of file %1 failed. + Ha fallat la importació del fitxer %1. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Format d'imatge ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Format de document portable (*.PDF) + + + PDF import failed. + Ha fallat la importació del PDF. + + + Importing page %1 of %2 + S'està important la pàgina %1 de %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Ha ocorregut un error mentre es publicava el vídeo a la intranet (%1) + + + Publishing to Intranet in progress %1 % + La publicació a la intranet està en progrés %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publica + + + + UBKeyboardPalette + + Enter + Entra + + + + UBMainWindow + + Yes + + + + No + No + + + Ok + D'acord + + + + UBMessagesDialog + + Close + Tanca + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Escriviu el nom d'usuari i la contrasenya per a "%1" a %2</qt> + + + Failed to log to Proxy + Ha fallat el registre al servidor intermediari + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Errors d'SSL: + +%1 + +%2 + +Voleu ignorar aquests errors per a aquest amfitrió? + + + Yes + + + + No + No + + + + UBOpenSankoreImporterWidget + + Cancel + Cancel·la + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (còpia) + + + Document Repository Loss + Pèrdua del repositori de documents + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Anglès + + + Russian + Rus + + + German + Alemany + + + French + Francès + + + Swiss French + Francès de Suïssa + + + + UBPodcastController + + Failed to start encoder ... + No s'ha pogut iniciar el codificador... + + + No Podcast encoder available ... + No hi ha disponible el codificador de podcast... + + + Part %1 + Part %1 + + + on your desktop ... + al vostre escriptori ... + + + in folder %1 + a la carpeta %1 + + + Podcast created %1 + S'ha creat el podcast %1 + + + Podcast recording error (%1) + S'ha produït un error en enregistrar el podcast (%1) + + + Default Audio Input + Entrada d'àudio per defecte + + + No Audio Recording + No hi ha enregistraments d'àudio + + + Small + Petit + + + Medium + Mitjà + + + Full + Complet + + + Publish to Intranet + Publica a la intranet + + + Publish to Youtube + Publica a YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + versió: + + + Marker is pressure sensitive + El marcador és sensible a la pressió + + + + UBProxyLoginDlg + + Proxy Login + Inici de sessió al servidor intermediari + + + Username: + Usuari: + + + Password: + Contrasenya: + + + + UBPublicationDlg + + Publish document on the web + Publica el document a la web + + + Title: + Títol: + + + Description: + Descripció: + + + Publish + Publica + + + + UBSettings + + My Movies + Les meves pel·lícules + + + + UBStartupHintsPalette + + Visible next time + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + S'estan generant les miniatures de previsualització... + + + %1 thumbnails generated ... + S'han generat %1 miniatures... + + + + UBThumbnailTextItem + + Page %0 + Pàgina %0 + + + + UBToolsManager + + Compass + Compàs + + + Ruler + Regle + + + Protractor + Transportador + + + Mask + Màscara + + + Triangle + Escaire + + + Magnifier + Lupa + + + Cache + Memòria cau + + + Axes + + + + + UBTrapFlashController + + Whole page + Pàgina sencera + + + Web + Web + + + + UBUpdateDlg + + Document updater + Actualitzador de documents + + + files require an update. + fitxers requereixen una actualització. + + + Backup path: + Ubicació de la còpia de seguretat: + + + Browse + Navega + + + Update + Actualitza + + + Select a backup folder + Seleccioneu una carpeta per a les còpies de seguretat + + + Files update successful! +Please reboot the application to access the updated documents. + L'actualització dels fitxers ha estat correcta. +Reinicieu l'aplicació per accedir als documents actualitzats. + + + An error occured during the update. The files have not been affected. + Ha ocorregut un error durant l'actualització. Els fitxers no s'han vist afectats. + + + Files update results + Resultats de l'actualització de fitxers + + + Updating file + S'està actualitzant un fitxer + + + Please wait the import process will start soon... + Espereu, el procés d'importació començarà aviat... + + + Remind me later + Recorda-m'ho després + + + + UBWebPluginWidget + + Loading... + S'està carregant... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 cridats (mètode=%1, estat=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Ha fallat l'autenticació al YouTube. + + + Error while uploading video to YouTube (%1) + Ha ocorregut un error mentre es carregava el vídeo al YouTube (%1) + + + Upload to YouTube in progress %1 % + La càrrega al YouTube és en progrés %1 % + + + + UBYouTubePublishingDialog + + Upload + Carrega + + + Autos & Vehicles + Automòbils i vehicles + + + Music + Música + + + Pets & Animals + Animals i mascotes + + + Sports + Esports + + + Travel & Events + Viatges i esdeveniments + + + Gaming + Jocs + + + Comedy + Comèdia + + + People & Blogs + Gent i blocs + + + News & Politics + Notícies i política + + + Entertainment + Entreteniment + + + Education + Educació + + + Howto & Style + Consells i estil + + + Nonprofits & Activism + ONG i activisme + + + Science & Technology + Ciència i tecnologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Neteja + + + + WBDownloadItem + + Save File + Desa el fitxer + + + Download canceled: %1 + S'ha cancel·lat la baixada: %1 + + + Error opening saved file: %1 + Ha ocorregut un error quan s'obria el fitxer desat: %1 + + + Error saving: %1 + Ha ocorregut un error mentre es desava: %1 + + + Network Error: %1 + Error de xarxa: %1 + + + seconds + segons + + + minutes + minuts + + + - %4 %5 remaining + - %4 %5 restants + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/segon) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 de %2 - Aturat + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + %1 Downloads + always >= 2 + %1 baixades + + + 1 Download + 1 baixada + + + + WBHistoryModel + + Title + Títol + + + Address + Adreça + + + + WBHistoryTreeModel + + Earlier Today + Avui + + + %1 items + %1 elements + + + + WBSearchLineEdit + + Search + Cerca + + + + WBTabBar + + New &Tab + Pes&tanya nova + + + Clone Tab + Clona la pestanya + + + &Close Tab + Tan&ca la pestanya + + + Close &Other Tabs + Tanca &altres pestanyes + + + Reload Tab + Recarrega la pestanya + + + Reload All Tabs + Recarrega totes les pestanyes + + + + WBTabWidget + + Recently Closed Tabs + Pestanyes tancades recentment + + + (Untitled) + (Sense títol) + + + + WBToolbarSearch + + Search + Cerca + + + No Recent Searches + No hi ha cap cerca recent + + + Recent Searches + Cerques recents + + + Clear Recent Searches + Neteja les cerques recents + + + + WBWebPage + + Download + Baixa + + + Add to Current Document + Afegeix al document actual + + + PDF + PDF + + + Error loading page: %1 + S'ha produït un error en carregar la pàgina: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Obre en una pestanya nova + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publica un podcast al YouTube + + + Title + Títol + + + Description + Descripció + + + Keywords + Paraules clau + + + Category + Categoria + + + YouTube Username + Usuari del YouTube + + + YouTube Password + Contrasenya del YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Clicant 'Carrega,' certifiqueu que teniu tots els drets sobre el contingut o que esteu autoritzats pel propietari dels drets a fer-lo públicament disponible al YouTube, així com que el contingut compleix amb els termes de servei del YouTube localitzats a </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + Opacitat + + + On Light Background + Sobre fons clar + + + On Dark Background + Sobre fons fosc + + + Line Width + Amplada de la línia + + + Medium + Mitjà + + + Strong + Ressaltat + + + Fine + Fi + + + Pen is Pressure Sensitive + El llapis és sensible a la pressió + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Diàleg + + + Title + Títol + + + E-mail + Adreça de correu electrònic + + + Author + Autor/a + + + Description + Descripció + + + + documentPublishingDialog + + Dialog + Diàleg + + + Title + Títol + + + E-mail + Adreça de correu electrònic + + + Author + Autor/a + + + Description + Descripció + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Preferències + + + version : … + versió: … + + + Default Settings + Paràmetres per defecte + + + Close + Tanca + + + Display + Visualitza + + + Show Page with External Browser + Mostra la pàgina amb un navegador extern + + + Home Page: + Pàgina d'inici: + + + Virtual Keyboard + Teclat virtual + + + Keyboard button size: + Mida de les tecles: + + + Toolbar + Barra d'eines + + + Positioned at the Top (recommended for tablets) + Col·locada a la part superior (recomanat per a les tauletes) + + + Positioned at the Bottom (recommended for white boards) + Col·locada a la part inferior (recomanat per a les pissarres) + + + Display Text Under Button + Mostra el text sota el botó + + + Stylus Palette + Barra d'estris + + + Horizontal + Horitzontal + + + Vertical + Vertical + + + Pen + Bolígraf + + + Marker + Marcador + + + About + Quant a + + + Software Update + Actualització del programari + + + Check software update at launch + Comprova si hi ha actualitzacions del programari en engegar + + + Internet + Internet + + + Licences + Llicències + + + Network + Xarxa + + + Show internal web page content on secondary screen or projector + Mostra el contingut de la pàgina web en un monitor o projector secundari + + + Multi display + Pantalla múltiple + + + Swap control display and view display + Canvia entre 'control de la pantalla' i 'visualització de la pantalla' + + + Mode + Modalitat + + + Mode to start in: + Comença en la modalitat: + + + Board + Tauler + + + Desktop + Escriptori + + + Proxy User: + Nom d'usuari del servidor intermediari: + + + Pass: + Contrasenya: + + + Credits + Crèdits + + + On Dark Background + Sobre fons fosc + + + Opacity + Opacitat + + + On Light Background + Sobre fons clar + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Captura d'un objecte Flash + + + Select a flash to trap + Seleccioneu l'objecte Flash a capturar + + + about:blank + about:blank + + + Application name + Nom de l'aplicació + + + Create Application + Crea una aplicació + + + diff --git a/resources/i18n/OpenBoard_cs.ts b/resources/i18n/OpenBoard_cs.ts new file mode 100644 index 0000000..92187e2 --- /dev/null +++ b/resources/i18n/OpenBoard_cs.ts @@ -0,0 +1,2928 @@ + + + + + BlackoutWidget + + Click to Return to Application + Chcete-li se vrátit do aplikace, klikněte sem + + + + DownloadDialog + + 0 Items + 0 položek + + + Clean Up + Vymazat + + + Downloads + Stáhnout + + + + DownloadItem + + Form + Formulář + + + Open + Otevřít + + + Stop + Zastavit + + + Filename + Název souboru + + + Try Again + Zkusit znovu + + + + IntranetPodcastPublishingDialog + + Title + Název + + + Author + Autor + + + Description + Popis + + + Publish Podcast to YouTube + Publikovat podcast na YouTube + + + + MainWindow + + Add + Přidat + + + Del + Vymazat + + + Cut + Vyjmout + + + Pen + Pero + + + Web + Web + + + Back + Zpět + + + Copy + Kopírovat + + + Dark + Tmavá + + + Hand + Ruka + + + Home + Domů + + + Left + Vlevo + + + Line + Čára + + + Next + strana + Další + + + PgUp + PgUp + + + Redo + Znovu + + + Quit + Ukončit + + + Text + Text + + + Undo + Zpět + + + Display Board + Zobrazit tabuli + + + Board + Tabule + + + Color + Barva + + + Erase + Guma + + + Display Tools + Zobrazit nástroje + + + Light + Světlá + + + Embed Web Content + Vložit obsah z webu + + + Pages + Stránky + + + Paste + Vložit + + + Pause + Pozastavit + + + Right + Vpravo + + + Sleep + Uspat + + + Tools + Nástroje + + + Multi Screen + Víceobrazovkový mód + + + Put Presentation to Sleep + Uspat prezentaci + + + New Document + Nový dokument + + + Plain Dark Background + Černé pozadí + + + Podcast Config + Nastavení podcastu + + + Check Update + Vyhledat aktualizace + + + Use Custom Document Size + Použít vlastní velikost dokumentu + + + Zoom In + Přiblížit + + + Record Presentation to Video + Zaznamenat prezentaci jako video + + + Grid Dark Background + Mřížka s černým pozadím + + + Large Eraser + Velká guma + + + Grid Light Background + Mřížka s bílým pozadím + + + Hide OpenBoard Application + Skrýt aplikaci OpenBoard + + + Import an External Page + Otevřít externí stránku + + + Add Bookmark + Přidat záložku + + + OpenBoard + OpenBoard + + + Clear All Elements + Vymazat všechny objekty + + + Scroll Page + Posun po stránce + + + Small Line + Tenká čára + + + Library + Knihovna + + + Configure Podcast Recording + Nastavit záznam podastu + + + Open Page in Board + Otevřít stránku na tabuli + + + Bigger + Větší + + + Ctrl++ + Ctrl++ + + + Ctrl+- + Ctrl+- + + + Ctrl+B + Ctrl+B + + + Ctrl+D + Ctrl+D + + + Ctrl+E + Ctrl+E + + + Ctrl+F + Ctrl+F + + + Ctrl+G + Ctrl+G + + + Ctrl+H + Ctrl+H + + + Ctrl+I + Ctrl+I + + + Ctrl+J + Ctrl+J + + + Ctrl+K + Ctrl+K + + + Ctrl+L + Ctrl+L + + + Ctrl+M + Ctrl+M + + + Ctrl+O + Ctrl+O + + + Ctrl+T + Ctrl+T + + + Ctrl+W + Ctrl+W + + + Ctrl+Y + Ctrl+Y + + + Ctrl+Z + Ctrl+Z + + + Delete + Odstranit + + + Eraser + Vygumovat + + + Export + Exportovat + + + New Folder + Nová složka + + + Trap Flash Content + Přenést obsah ve Flashi + + + Import + Otevřít + + + Custom Capture + Vlastní způsob zachytávání + + + Marker + Zvýrazňovač + + + PgDown + PgDown + + + Create a New Document + Vytvořit nový dokument + + + Record + Nahrávat + + + Reload + Obnovit + + + Rename + Přejmenovat + + + Stylus + Stylus + + + Quit OpenBoard + Ukončit OpenBoard + + + Custom Size + Vlastní velikost + + + Laser Pointer + Laserové ukazovátko + + + Wide Size (16/9) + Na šířku (16/9) + + + Load Home Page + Nahrát domovskou stránku + + + Duplicate Page + Duplikovat stránku + + + Duplicate Selected Content + Duplikovat vybraný obsah + + + Bookmarks + Záložky + + + Open in Board + Otevřít na tabuli + + + Rename Content + Přejmenovat obsah + + + Zoom Out + Oddálit + + + Bookmark + Záložka + + + Add To Current Page + Přidat na aktuální stránku + + + Create a New Page + Vytvořit novou stránku + + + Hide OpenBoard + Skrýt OpenBoard + + + Erase All Items + Odstranit všechny položky + + + Erase Content + Odstranit obsah + + + Erase Items + Odstranit položky + + + Duplicate + Duplikovat + + + Add Selected Content to Open Document + Přidat vybraný obsah do otevřeného dokumentu + + + Virtual Keyboard + Virtuální klávesnice + + + Podcast + Podcast + + + Show Library + Zobrazit knihovnu + + + Medium Eraser + Středně velká guma + + + Stop Loading Web Page + Zastavit nahrávání stránky + + + Duplicate the Current Page + Duplikovat aktuální stránku + + + Pause Podcast Recording + Pozastavit nahrávání podcastu + + + Create a New Folder + Vytvořit novou složku + + + Clear Page + Vymazat stránku + + + Add To Library + Přidat do knihovny + + + Previous + Předchozí + + + Stop Loading + Zastavit nahrávání + + + Reload Current Page + Obnovit aktuální stránku + + + Import Page + Otevřít stránku + + + Draw Lines + Nakreslit čáry + + + Capture + Zachytit + + + Show Main Screen on Display Screen + V zobrazené části obrazovky zobrazit hlavní obrazovku + + + Flash Trap + Přenést Flash + + + Window Capture + Zachytit okno + + + Delete Selected Content + Odstranit vybraný obsah + + + Add Item To New Page + Přidat položku na novou stránku + + + Add Content to Document + Přidat obsah do dokumentu + + + Smaller + Menší + + + Capture Embeddable Web Content + Zachytit část webové stránky + + + Write Text + Napsat text + + + Documents + Dokumenty + + + Add To New Page + Přidat na novou stránku + + + Regular Size (4/3) + Bežná velikost (4/3) + + + Web Trap + Přenést web + + + Display Virtual Keyboard + Zobrazit virtuální klávesnici + + + Show Bookmarks + Zobrazit záložky + + + Use Document Wide Size (16/9) + Používat dokument na šířku (16/9) + + + Show Computer Desktop + Zobrazit plochu + + + eduMedia + eduMedia + + + Medium Line + Středně široká čára + + + Previous Page + Předchozí stránka + + + Trap Web Content + Přenést obsah z webu + + + Selector + Oddělovač + + + Erase all Annotations + Vymazat všechny anotace + + + Erase All Annotations + Vymazat všechny anotace + + + Export a Document + Exportovat dokument + + + Start Screen Recording + Spustit nahrávání obrazovky + + + New Page + Nová stránka + + + Import a Document + Otevřít dokument + + + Import eduMedia simulation + Nahrát simulaci z webu eduMedia + + + Use Document Regular Size (4/3) + Používat běžnou velikost dokumentu (4/3) + + + Change Background + Změnit pozadí + + + Display Preferences + Zobrazit předvolby + + + Preferences + Předvolby + + + Capture Part of the Screen + Zachytit část obrazovky + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Forward + Vpřed + + + Manage Documents + Spravovat dokumenty + + + Large Line + Široká čára + + + Erase Annotations + Vymazat anotace + + + Show on Display + Zobrazit při projekcii + + + Select And Modify Objects + Vybrat a upravit objekty + + + Capture a Window + Zachytit okno + + + Virtual Laser Pointer + Virtuální laserové ukazovátko + + + Plain Light Background + Bílé pozadí + + + Add Item To Library + Přidat položku do knihovny + + + Web Browsing + Prohlížet web + + + Backgrounds + Pozadí + + + Smalle Eraser + Malá guma + + + Add Item To Current Page + Přidat položku na aktuální stránku + + + Add to Working Document + Přidat do aktuálního dokumentu + + + Highlight + Zvýraznit + + + Show Desktop + Plocha + + + Next Page + Další stránka + + + Annotate Document + Přidat anotaci dokumentu + + + Erase Annotation + Vymazat anotaci + + + Play + Přehrát + + + Interact with items + Pracovat s položkami + + + Erase Background + Vymazat pozadí + + + Remove the backgound + Odstranit pozadí + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Vyžaduje se přihlášení + + + Password: + Heslo: + + + Username: + Uživatelské jméno: + + + + ProxyDialog + + Save username and password for future use + Uložit uživatelské jméno a heslo pro budoucí použití + + + Connect to Proxy + Připojit se k proxy + + + Proxy Authentication + Přihlášení na proxy + + + Password: + Heslo: + + + Username: + Uživatelské jméno: + + + + QObject + + Element ID = + ID objektu = + + + Content is not supported in destination format. + Obsah není podporován v cílovém formátu. + + + Remove Page + Odstranit stránku + + + Are you sure you want to remove 1 page from the selected document '%0'? + Opravdu chcete odstranit 1 stránku z vybraného dokumentu '%0'? + + + + UBApplication + + Podcast + Podcast + + + Page Size + Velikost stránky + + + + UBApplicationController + + Web + Web + + + Update + Akutalizovat + + + No update available + Žádná aktualizace není k dispozicii + + + New update available, would you go to the web page ? + K dispozici je nová aktualizace, chcete přejít na webovou stránku? + + + Update available + K dispozici je aktualizace + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + All Supported (%1) + Všechny podporované (%1) + + + Downloading content %1 failed + Nepodařilo se stáhnout %1 + + + Unknown content type %1 + Neznámy typ obsahu (%1) + + + Add Item + Přidat položku + + + Unknown tool type %1 + Neznámý typ nástroje %1 + + + Download finished + Stahování dokončeno + + + Delete page %1 from document + Odstranit stránku %1 z dokumentu + + + Page %1 deleted + Stránka %1 byla odstraněna + + + Add file operation failed: file copying error + Přidání souboru selhalo: chyba při kopírování + + + Group + Seskupit + + + Ungroup + Odseskupit + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Barva + + + + UBBoardPaletteManager + + Error Adding Image to Library + Chyba při přidávání obrázku do knihovny + + + CapturedImage + Zachycenýobrázek + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Close + Zavřít + + + Size: + Velikost: + + + Color: + Barva: + + + Shape: + Tvar: + + + Cache Properties + Vlastnosti baterky + + + + UBDesktopPalette + + Show Desktop on Secondary Screen + Zobrazit plochu na druhé obrazovce + + + Capture the Screen + Zachytit obrazovku + + + Show the stylus palette + Zobrazit paletu pro stylus + + + Capture Part of the Screen + Zachytit část obrazovky + + + Show Board on Secondary Screen + Zobrazit tabuli na druhé obrazovce + + + Show OpenBoard + + + + + UBDocumentController + + Empty + Vyprázdnit + + + Trash + Koš + + + Are you sure you want to empty trash? + Určitě chcete vyprázdnit koš? + + + Are you sure you want to remove the folder '%1' and all its content? + Určitě chcete odstranit složku "%1" a celý její obsah? + + + Open Supported File + Otevřít podporovaný soubor + + + Remove Document + Odstranit dokument + + + All Images (%1) + Všechny obrázky (%1) + + + Selection does not contain any image files! + Ve výběru není žádný soubor obrázku! + + + Open Document + Otevřít dokument + + + Add Folder of Images + Přidat složku s obrázky + + + Delete + Odstranit + + + New Folder + Nová složka + + + Add Images + Přidat obrázky + + + Duplicating Document %1 + Duplikuje se dokument %1 + + + Page %1 + Stránka %1 + + + Document %1 copied + Dokument %1 byl zkopírovaný + + + Importing file %1... + Otevírá se soubor %1... + + + Failed to import file ... + Soubor se nepodařilo otevřít... + + + Are you sure you want to remove the document '%1'? + Určitě chcete odstranit dokument "%1"? + + + Emptied trash + Koš byl vyprázdněn + + + Empty Trash + Vyprázdnit koš + + + Remove Folder + Odstranit složku + + + Remove Page + Odstranit stránku + + + No document selected! + Nevybrali jste žádný dokument! + + + Import all Images from Folder + Nahrát všechny obrázky ze složky + + + Emptying trash + Vyprazdňuje se koš + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Určitě chcete odstranit %n stránku z vybraného dokumentu %1? + Určitě chcete odstranit %n stránky z vybraného dokumentu %1? + Určitě chcete odstranit %n stránek z vybraného dokumentu %1? + + + + Add all Images to Document + Přidat všechny obrázky do dokumentu + + + Add Pages from File + Přidat stránky ze souboru + + + Folder does not contain any image files + Složka neobsahuje žádné obrázky + + + Untitled Documents + Dokumenty bez názvu + + + duplicated %1 page + duplicated %1 pages + + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + All supported files (*.%1) + Všechny podporované soubory (*.%1) + + + objects + objekty + + + images + obrázky + + + videos + videa + + + widgets + widgety + + + File %1 saved + Soubor %1 byl uložen + + + Inserting page %1 of %2 + Vkládá se strana %1 z %2 + + + Import successful. + Import byl úspěšně dokončen. + + + Import of file %1 successful. + Import souboru %1 byl úspěšný. + + + Importing file %1 + Importuje se soubor %1 + + + + UBDocumentNavigator + + Page %0 + Stránka %0 + + + + UBDocumentReplaceDialog + + Accept + Přijmout + + + Cancel + Zrušit + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Koš + + + %1 pages copied + + %1 zkopírovaná stránka + %1 zkopírované stránky + %1 zkopírovaných stránek + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 zkopírovaná stránka + %1 zkopírované stránky + %1 zkopírovaných stránek + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopíruje se stránka %1/%2 + + + + UBDocumentTreeWidget + + %1 pages copied + + %1 zkopírovaná stránka + %1 zkopírované stránky + %1 zkopírovaných stránek + + + + %1 (copy) + %1 (kopie) + + + Copying page %1/%2 + Kopíruje se stránka %1/%2 + + + + UBDownloadWidget + + Downloading files + Stahování souborů + + + Cancel + Zrušit + + + + UBDraggableThumbnail + + Page %0 + Stránka %0 + + + + UBDraggableThumbnailView + + Page %0 + Stránka %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Během exportu se objevila varování + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Export do IWB + + + Export as IWB File + Exportovat jako IWB soubor + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + Export failed. + Export se nezdařil. + + + + UBExportDocument + + Page + Stránka + + + Export as UBZ File + Exportovat jako soubor UBZ + + + Exporting %1 %2 of %3 + Exportuje se %1 %2 z(e) %3 + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportovat jako soubor PDF + + + Export to PDF + Exportovat do PDF + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + + UBExportPDF + + Export as PDF File + Exportovat jako soubor PDF + + + Export to PDF + Exportovat do PDF + + + Exporting page %1 of %2 + Exportuje se stránka %1 z(e) %2 + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + + UBExportWeb + + Page + Stránka + + + Export failed. + Export se nezdařill. + + + Export as Web data + Exportovat jako webová data + + + Exporting document... + Exportuje se dokument... + + + Export successful. + Export byl úspěšně dokončen. + + + Export to Web Browser + Exportovat do webového prohlížeče + + + + UBFeatureProperties + + Add to page + Přidat na stránku + + + Set as background + Nastavit jako pozadí + + + Add to library + Přidat do knihovny + + + Object informations + Informace o objektu + + + + UBFeaturesActionBar + + Add to favorites + Přidat do oblíbených položek + + + Share + Sdílet + + + Search + Hledat + + + Delete + Odstranit + + + Back to folder + Zpět na složku + + + Remove from favorites + Odstranit z oblíbených položek + + + Create new folder + Vytvořit novou složku + + + Rescan file system + Znovu prověřit souborový systém + + + + UBFeaturesController + + ImportedImage + NahranýObrázek + + + Audios + Zvuky + + + Movies + Filmy + + + Pictures + Obrázky + + + Animations + Animace + + + Interactivities + Interaktivity + + + Applications + Aplikace + + + Shapes + Tvary + + + Favorites + Oblíbené + + + Web search + Webové vyhledávače + + + Trash + Koš + + + + UBFeaturesNewFolderDialog + + Accept + Přijmout + + + Cancel + Zrušit + + + Enter a new folder name + Zapsat název nové složky + + + + UBFeaturesProgressInfo + + Loading + Nahrává se + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Uzamčeno + + + Visible on Extended Screen + Viditelné na rozšířené obrazovce + + + + UBGraphicsItemDelegate + + Go to Content Source + Přejít na zdroj + + + Locked + Uzamčeno + + + Visible on Extended Screen + Viditelné na rozšířené obrazovce + + + Set as background + Nastavit jako pozadí + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Sem napište text> + + + + UBGraphicsTextItemDelegate + + Text Color + Barva textu + + + Editable + Upravitelný + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Nahrává se... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Zamrzlé + + + Transform as Tool + Změnit na nástroj + + + + UBImportCFF + + Importing file %1... + Importuje se soubor %1... + + + Import failed. + Import se nezdařil. + + + Import of file %1 failed. + Import souboru %1 se nezdařil. + + + Common File Format ( + Univerzální IWB soubor ( + + + Import successful. + Import byl úspěšně dokončen. + + + + UBImportDocument + + Importing file %1... + Importuje se soubor %1... + + + Import of file %1 failed. + Import souboru %1 se nezdařil. + + + Import successful. + Import byl úspěšně dokončen. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Soubor obrázku ( + + + + UBImportPDF + + PDF import failed. + Import do PDF selhal. + + + Importing page %1 of %2 + Importuje se stránka %1 z(e) %2 + + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + + UBIntranetPodcastPublisher + + Publishing to Intranet in progress %1 % + Probíhá publikování na intranet %1 % + + + Error while publishing video to intranet (%1) + Chyba při publikovaní videa na intranet (%1) + + + + UBIntranetPodcastPublishingDialog + + Publish + Publikovat + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + No + Ne + + + Ok + Ok + + + Yes + Ano + + + + UBMessagesDialog + + Close + Zavřít + + + + UBNetworkAccessManager + + No + Ne + + + Yes + Ano + + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Zadajte uživatelské jméno a heslo pro "%1" na %2</qt> + + + Failed to log to Proxy + Nepodařilo se přihlásit na proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Chyby SSL: + +%1 + +%2 + +Chcete ignorovat tyto chyby na tomto serveru? + + + + UBOpenSankoreImporterWidget + + Cancel + Zrušit + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopie) + + + Document Repository Loss + Ztráta repozitáře s dokumenty + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Angličtina + + + Russian + Ruština + + + German + Němčina + + + French + Francouzština + + + Swiss French + Švýcarská francouzština + + + + UBPodcastController + + Full + Plná velikost + + + Small + Malá velikost + + + Podcast recording error (%1) + Chyba při nahrávaní podcastu (%1) + + + No Podcast encoder available ... + Žádný encoder podcastu není dostupný... + + + Publish to Youtube + Publikovat na Youtube + + + Medium + Střední velikost + + + in folder %1 + ve složce %1 + + + Part %1 + Část %1 + + + Podcast created %1 + Podcast vytvořen %1 + + + No Audio Recording + Žádný zvukový záznam + + + Publish to Intranet + Publikovat na intranetu + + + on your desktop ... + na vaši pracovní plochu... + + + Default Audio Input + Výchozí vstupní audio zařízení + + + Failed to start encoder ... + Nepodařilo se spustit encoder... + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + verze: + + + Marker is pressure sensitive + Zvýrazňovač je citlivý na tlak + + + + UBProxyLoginDlg + + Password: + Heslo: + + + Proxy Login + Přihlášení na proxy + + + Username: + Uživatelské jméno: + + + + UBPublicationDlg + + Description: + Popis: + + + Title: + Název: + + + Publish + Publikovat + + + Publish document on the web + Publikovat dokument na webu + + + + UBSettings + + My Movies + Moje filmy + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + %1 thumbnails generated ... + %1 vytvořených miniatur... + + + Generating preview thumbnails ... + Vytváří se miniatury obrázků ... + + + + UBThumbnailTextItem + + Page %0 + Stránka %0 + + + + UBToolsManager + + Mask + Clona + + + Cache + Baterka + + + Ruler + Pravítko + + + Triangle + Trojúhelník + + + Compass + Kružítko + + + Protractor + Úhloměr + + + Magnifier + Lupa + + + Axes + + + + + UBTrapFlashController + + Web + Web + + + Whole page + Celá stránka + + + + UBUpdateDlg + + Document updater + Aktualizace dokumentu + + + Please wait the import process will start soon... + Prosím, počkejte, proces nahrávání brzy začne... + + + Files update successful! +Please reboot the application to access the updated documents. + Aktualizace proběhla úspěšně! +Znovu spusťte aplikaci, abyste mohli pracovat s aktualizovanými dokumenty. + + + Browse + Procházet + + + Select a backup folder + Vyberte složku na zálohu + + + files require an update. + soubory je nutné aktualizovat. + + + Update + Aktualizovat + + + An error occured during the update. The files have not been affected. + Během aktualizace se vyskytla chyba. Soubory to neovlivnilo. + + + Files update results + Výsledky aktualizace souborů + + + Backup path: + Umístění zálohy: + + + Updating file + Aktualizuje se soubor + + + Remind me later + Připomenout později + + + + UBWebPluginWidget + + Loading... + Nahrává se... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 vyvolané (metoda = %1, stav = %2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Přihlášení na YouTube selhalo. + + + Error while uploading video to YouTube (%1) + Chyba při nahrávaní videa na YouTube (%1) + + + Upload to YouTube in progress %1 % + Probíhá nahrávaní na YouTube %1 % + + + + UBYouTubePublishingDialog + + Music + Hudba + + + People & Blogs + Lidé a blogy + + + Nonprofits & Activism + Neziskovky a aktivisti + + + Comedy + Komedie + + + Gaming + Hry + + + Sports + Sport + + + Upload + Nahrát + + + Science & Technology + Věda a technika + + + Howto & Style + Návody a styl + + + Education + Vzdělávání + + + Entertainment + Zábava + + + Travel & Events + Cestování a události + + + News & Politics + Zprávy a politika + + + Pets & Animals + Mazlíčci a jiná zvířata + + + Autos & Vehicles + Nákladní a osobní auta + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Vymazat + + + + WBDownloadItem + + KB + kB + + + MB + MB + + + bytes + bytů + + + - %4 %5 remaining + – zbývá %4 %5 + + + minutes + minut(y) + + + Error opening saved file: %1 + Chyba při otevírání uloženého souboru: %1 + + + seconds + sekund + + + Error saving: %1 + Chyba při ukládání: %1 + + + Download canceled: %1 + Stahování zrušeno: %1 + + + %1 of %2 - Stopped + %1 z(o) %2 – zastaveno + + + Save File + Uložit soubor + + + %1 of %2 (%3/sec) %4 + %1 z(e) %2 (%3/sek) %4 + + + Network Error: %1 + Chyba sítě: %1 + + + ? + unknown file size + ? + + + + WBDownloadManager + + 1 Download + 1 stahování + + + %1 Downloads + always >= 2 + %1 stahování + + + + WBHistoryModel + + Title + Název + + + Address + Adresa + + + + WBHistoryTreeModel + + %1 items + %1 položek + + + Earlier Today + dnes brzy ráno + + + + WBSearchLineEdit + + Search + Hledat + + + + WBTabBar + + Reload All Tabs + Obnovit všechny karty + + + Reload Tab + Obnovit kartu + + + Clone Tab + Duplikovat kartu + + + &Close Tab + &Zavřít kartu + + + Close &Other Tabs + Zavřít &ostaní karty + + + New &Tab + Nová &karta + + + + WBTabWidget + + (Untitled) + (Bez názvu) + + + Recently Closed Tabs + Nedávno zavřené karty + + + + WBToolbarSearch + + Recent Searches + Historie vyhledávání + + + Search + Vyhledat + + + No Recent Searches + Žádná historie vyhledávání + + + Clear Recent Searches + Vymazat historii vyhledávání + + + + WBWebPage + + PDF + PDF + + + Add to Current Document + Přidat do aktuálního dokumentu + + + Download + Stáhnout + + + Error loading page: %1 + Chyba při nahrávání stránky: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Otevřít v nové kartě + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Title + Název + + + YouTube Username + Uživatelské jméno na YouTube + + + YouTube Password + Heslo na YouTube + + + Category + Kategorie + + + Description + Popis + + + Publish Podcast to YouTube + Publikovat podcast na YouTube + + + Keywords + Klíčová slova + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Kliknutím na "Upload" (Nahrať) potvrdzujete, že máte všetky práva k materiálu alebo že máte písomný súhlas vlastníka týchto práv na zverejnenie materiálu na sieti YouTube a že materiál je v súlade s podmienkami využívania služieb siete YouTube, ktorých aktuálne znenie sa nachádza na adrese </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Fine + Tenká + + + Medium + Střední + + + Strong + Široká + + + Opacity + Průhlednost + + + Line Width + Šířka čáry + + + On Light Background + Na světlém pozadí + + + Pen is Pressure Sensitive + Pero je citlivé na tlak + + + On Dark Background + Na tmavém pozadí + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Title + Název + + + E-mail + E-mail + + + Author + Autor + + + Dialog + Dialog + + + Description + Popis + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Název + + + E-mail + E-mail + + + Author + Autor + + + Description + Popis + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Pen + Pero + + + About + O programu + + + Close + Zavřít + + + Horizontal + Vodorovná + + + Display Text Under Button + Zobrazit text pod tlačítkem + + + Show Page with External Browser + Zobrazit stránku v externím prohlížeči + + + Default Settings + Výchozí nastavení + + + Network + Síť + + + Positioned at the Bottom (recommended for white boards) + Je umístěný dole (doporučeno pro interaktivní tabule) + + + Marker + Zvýrazňovač + + + Internet + Internet + + + Positioned at the Top (recommended for tablets) + Je umístěný na vrchu (doporučeno pro tablety) + + + Virtual Keyboard + Virtuální klávesnice + + + Home Page: + Domovská stránka: + + + Check software update at launch + Při spuštění programu vyhledat aktualizace + + + Software Update + Aktualizace programu + + + Keyboard button size: + Velikost tlačítka klávesnice: + + + Stylus Palette + Paleta pro stylus + + + Display + Zobrazit + + + Toolbar + Panel nástrojů + + + Vertical + Svislá + + + Preferences + Předvolby + + + version : … + verze:... + + + Licences + Licence + + + Multi display + Víceobrazovkový režim + + + Show internal web page content on secondary screen or projector + Zobrazit obsah interní webové stránky na další obrazovce či dataprojektoru + + + Swap control display and view display + Vyměnit ovládací obrazovku za obrazovku pohledu + + + Mode + Mód + + + Mode to start in: + Mód začne na: + + + Board + Tabuli + + + Desktop + Ploše + + + Proxy User: + Proxy Uživatel: + + + Pass: + Heslo: + + + Credits + Zásluhy + + + On Dark Background + Na tmavém pozadí + + + Opacity + Průhlednost + + + On Light Background + Na světlém pozadí + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Přenést obsah ve flashi + + + Select a flash to trap + Vyberte flash, který chcete přenést + + + about:blank + about:blank + + + Application name + Název aplikace + + + Create Application + Vytvořit aplikaci + + + diff --git a/resources/i18n/OpenBoard_da.ts b/resources/i18n/OpenBoard_da.ts new file mode 100644 index 0000000..60f55f9 --- /dev/null +++ b/resources/i18n/OpenBoard_da.ts @@ -0,0 +1,2925 @@ + + + + + BlackoutWidget + + Click to Return to Application + Klik for at gå tilbage til applikationen + + + + DownloadDialog + + Downloads + Downloads + + + Clean Up + Ryd + + + 0 Items + O enheder + + + + DownloadItem + + Form + Form + + + Filename + Filnavn + + + Try Again + Prøv igen + + + Stop + Stop + + + Open + Åbn + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Udgiv podcast på YouTube + + + Title + Titel + + + Description + Beskrivelse + + + Author + Forfatter + + + + MainWindow + + Board + Tavle + + + Web + Web + + + Documents + Dokumenter + + + Stylus + Pen + + + Ctrl+T + Ctrl+T + + + Backgrounds + Baggrunde + + + Change Background + Skift baggrund + + + Undo + Fortryd + + + Ctrl+Z + Ctrl+Z + + + Redo + Annuller Fortryd + + + Ctrl+Y + Ctrl+Y + + + Previous + Forrige + + + Previous Page + Forrige side + + + PgUp + Side op + + + Next + Næste + + + Next Page + Næste side + + + PgDown + Side ned + + + Manage Documents + Administrer dokumenter + + + Ctrl+D + Ctrl+D + + + Web Browsing + Webbrowsing + + + Ctrl+W + Ctrl+W + + + Line + Linje + + + Small Line + Lille linje + + + Medium Line + Mellem linje + + + Large Line + Stor line + + + Quit + Afslut + + + Eraser + Viskelæder + + + Smalle Eraser + Lille viskelæder + + + Medium Eraser + Mellem viskelæder + + + Large Eraser + Stort viskelæder + + + Color + Farve + + + Back + Tilbage + + + Left + Venstre + + + Forward + Fremad + + + Right + Højre + + + Reload + Genindlæs + + + Reload Current Page + Genindlæs aktuel side + + + Home + Hjem + + + Load Home Page + Indlæs Hjem-siden + + + Bookmarks + Bogmærker + + + Show Bookmarks + Vis bogmærker + + + Bookmark + Bogmærke + + + Add Bookmark + Tilføj bogmærke + + + Display Board + Vis tavle + + + Ctrl+B + Ctrl+B + + + Erase + Slet + + + Erase Content + Slet indhold + + + Preferences + Indstillinger + + + Display Preferences + Vis Indstillinger + + + Library + Bibliotek + + + Show Library + Vis Bibliotek + + + Ctrl+L + Ctrl?l + + + Show Desktop + Vis Skrivebord + + + Show Computer Desktop + Vis computerens skrivebord + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Større + + + Zoom In + Zoom ind + + + Ctrl++ + Ctrl++ + + + Smaller + Mindre + + + Zoom Out + Zoom ud + + + Ctrl+- + Ctrl+- + + + New Folder + Ny mappe + + + Create a New Folder + Opret en ny mappe + + + New Document + Nyt dokument + + + Create a New Document + Opret et nyt dokument + + + Import + Importer + + + Import a Document + Importer et dokument + + + Export + Eksporter + + + Export a Document + Eksporter et dokument + + + Open in Board + Åbn i tavle + + + Open Page in Board + Åbn side i tavle + + + Ctrl+O + Ctrl+O + + + Duplicate + Dubler + + + Duplicate Selected Content + Dubler udvalgt indhold + + + Delete + Slet + + + Delete Selected Content + Slet udvalgt indhold + + + Del + Del + + + Add to Working Document + Tilføj til arbejdsdokument + + + Add Selected Content to Open Document + Tilføj udvalgt indhold til åbent dokument + + + Add + Tilføj + + + Add Content to Document + Tilføj inhold til dokument + + + Rename + Omdøb + + + Rename Content + Omdøb indhold + + + Tools + Værktøjer + + + Display Tools + Vis Værktøjer + + + Multi Screen + Flere skærme + + + Wide Size (16/9) + Bred størrelse (16/9) + + + Use Document Wide Size (16/9) + Brug dokument i bred størrelse (16/9) + + + Regular Size (4/3) + Almindelig størrelse (4/3) + + + Use Document Regular Size (4/3) + Brug dokument i almindelig størrelse (4/3) + + + Custom Size + Brugerdefineret størrelse + + + Use Custom Document Size + Brug brugerdefineret dokumentstørrelse + + + Stop Loading + Stop indlæsning + + + Stop Loading Web Page + Stop indlæsning af hjemmeside + + + Cut + Klip + + + Copy + Kopier + + + Paste + Sæt ind + + + Sleep + Dvale + + + Put Presentation to Sleep + Sæt præsentation i dvale + + + Virtual Keyboard + Virtuelt tastatur + + + Display Virtual Keyboard + Vis virtuel tastatur + + + Plain Light Background + Almindelig lys baggrund + + + Light + Lys + + + Grid Light Background + Gitter lys baggrund + + + Plain Dark Background + Almindelig mørk baggrund + + + Dark + Mørk + + + Grid Dark Background + Gitter mørk baggrund + + + Podcast + Podcast + + + Record Presentation to Video + Optag præsentation til video + + + Record + Optag + + + Start Screen Recording + Start optagelse af skærm + + + Erase Items + Slet enheder + + + Erase All Items + Slet alle enheder + + + Erase Annotations + Slet bemærkninger + + + Erase All Annotations + Slet alle bemærkninger + + + Clear Page + Ryd side + + + Clear All Elements + Ryd alle elementer + + + Pen + Pen + + + Annotate Document + Tilføj bemærkning til dokument + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Slet bemærkning + + + Ctrl+E + Ctrl+E + + + Marker + Markør + + + Highlight + Fremhæv + + + Ctrl+M + Ctrl+M + + + Selector + Udvælgelsesværktøj + + + Select And Modify Objects + Vælg og ændr objekter + + + Ctrl+F + Ctrl+F + + + Hand + Hånd + + + Scroll Page + Rul ned på side + + + Laser Pointer + Laserpil + + + Virtual Laser Pointer + Virtuel laserpil + + + Ctrl+G + Ctrl+G + + + Draw Lines + Tegn linjer + + + Ctrl+J + Ctrl+J + + + Text + Tekst + + + Write Text + Skriv tekst + + + Ctrl+K + Ctrl+K + + + Capture + Skærmklip + + + Capture Part of the Screen + Klip dele af skærmen + + + Add To Current Page + Tilføj til nuværende side + + + Add Item To Current Page + Tilføj enhed til nuværende side + + + Add To New Page + Tilføj til ny side + + + Add Item To New Page + Tilføj enhed til ny side + + + Add To Library + Tilføj til bibliotek + + + Add Item To Library + Tilføj enhed til bibliotek + + + Pages + Sider + + + Create a New Page + Opret en ny side + + + New Page + Ny side + + + Duplicate Page + Dubler side + + + Duplicate the Current Page + Dubler nuværende side + + + Import Page + Importer side + + + Import an External Page + Importer en ekstern side + + + Pause + Pause + + + Pause Podcast Recording + Sæt podcastoptagelse på pause + + + Podcast Config + Konfigurering af podcast + + + Configure Podcast Recording + Konfigurer podcast-optagelse + + + Flash Trap + Flash Trap + + + Trap Flash Content + Opsaml Flash-indhold + + + Web Trap + Web Trap + + + Trap Web Content + Opsaml Web-indhold + + + Custom Capture + Brugerdefineret Skærmklip + + + Window Capture + Skærmklip af vindue + + + Capture a Window + Klip en del af vinduet + + + Embed Web Content + Indlejring af web-indhold + + + Capture Embeddable Web Content + Klip web-indhold som kan indlejres + + + Show on Display + Vis på displayet + + + Show Main Screen on Display Screen + Vis hovedskærm på displaysskærmen + + + Erase all Annotations + Slet alle bemærkninger + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importer eduMedia-simulering + + + Check Update + Kontroller opdatering + + + Ctrl+H + ECtrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Forlad OpenBoard + + + Hide OpenBoard + Skjul OpenBoard + + + Hide OpenBoard Application + Skjul programmet OpenBoard + + + Play + Afspil + + + Interact with items + Interagér med elementer + + + Erase Background + Slet baggrund + + + Remove the backgound + Fjern baggrunden + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Godkendelse påkrævet + + + Username: + Brugernavn: + + + Password: + Adgangskode: + + + + ProxyDialog + + Proxy Authentication + Godkendelse af Proxy + + + Connect to Proxy + Forbind til Proxy + + + Username: + Brugernavn: + + + Password: + Adgangskode: + + + Save username and password for future use + Gem brugernavn og adgangskode + + + + QObject + + Element ID = + Element-ID = + + + Content is not supported in destination format. + Indholdet understøttes ikke i destinationsformatet. + + + Remove Page + Fjern side + + + Are you sure you want to remove 1 page from the selected document '%0'? + Er du sikker på, at du vil fjerne 1 side fra det valgte dokument'%0'? + + + + UBApplication + + Page Size + Sidestørrelse + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Der er en ny opdatering tilgængelig, ønsker du at gå til opdateringens hjemmeside? + + + No update available + Der er ingen tilgængelige opdateringer + + + Update available + Opdatering er tilgængelig + + + Update + Opdatering + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Download af indhold %1 mislykket + + + Download finished + Download gennemført + + + Unknown tool type %1 + Ukendt værktøjstype %1 + + + Unknown content type %1 + Ukendt indholdtstype %1 + + + Add Item + Tilføj enhed + + + All Supported (%1) + Alle understøttede (%1) + + + Delete page %1 from document + Slet side %1 fra dokumentet + + + Page %1 deleted + Side %1 er slettet + + + Add file operation failed: file copying error + Tilføjelse af fil mislykkedes: Fejl ved kopiering af fil + + + Group + Gruppér + + + Ungroup + Opdel gruppe + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Farve + + + + UBBoardPaletteManager + + Error Adding Image to Library + Fejl under tilføjelse af billede til bibliotek + + + CapturedImage + HentetBillede + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Egenskaber for cache + + + Color: + Farve: + + + Shape: + Form: + + + Size: + Størrelse: + + + Close + Luk + + + + UBDesktopPalette + + Capture Part of the Screen + Klip del af skærmen + + + Capture the Screen + Klip skærmen + + + Show the stylus palette + Vis penpaletten + + + Show Board on Secondary Screen + Vis tavle på sekundær skærm + + + Show Desktop on Secondary Screen + Vis skrivebord på sekundær skærm + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Ny mappe + + + Page %1 + Side %1 + + + Add Folder of Images + Tilføj mappe med billeder + + + Add Images + Tilføj billeder + + + Add Pages from File + Tilføj sider fra fil + + + Duplicating Document %1 + Dubler dokument %1 + + + Document %1 copied + Dokument %1 kopieret + + + Remove Page + Fjern side + + + Remove Document + Fjern dokument + + + Are you sure you want to remove the document '%1'? + Er du sikker på, at du ønsker at fjerne dokumentet '%1'? + + + Empty Trash + Tøm papirkurv + + + Are you sure you want to empty trash? + Er du sikker på, at du ønsker at tømme papirkurven? + + + Emptying trash + Tømmer papirkurv + + + Emptied trash + Tømt papirkurv + + + Remove Folder + Fjern mappe + + + Are you sure you want to remove the folder '%1' and all its content? + Er du sikker på, at du ønsker at fjerne mappen ' %1' og hele dens indhold? + + + No document selected! + Der er ikke valgt noget dokument! + + + Open Supported File + Åbn understøttet fil + + + Importing file %1... + Importerer fil %1... + + + Failed to import file ... + Kunne ikke importere fil ... + + + Import all Images from Folder + Importer alle billeder fra mappe + + + Delete + Slet + + + Empty + Tøm + + + Trash + Papirkurv + + + Open Document + Åbn dokument + + + Add all Images to Document + Tilføj alle billeder til dokument + + + All Images (%1) + Alle billeder ( %1) + + + Selection does not contain any image files! + Udsnittet indeholder ikke nogen billedfiler! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Er du sikker på, at du vil fjerne %n side fra det valgte dokument '%1'? + Er du sikker på, at du vil fjerne %n sider fra det valgte dokument '%1'? + + + + Folder does not contain any image files + Mappen indeholder ikke nogen billedfiler + + + Untitled Documents + Unavngivne dokumenter + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + Billeder + + + videos + videoer + + + objects + objekter + + + widgets + widgets + + + All supported files (*.%1) + alle understøttede filer (*%1) + + + File %1 saved + Fil %1 gemt + + + Inserting page %1 of %2 + Indsætter side %1 af %2 + + + Import successful. + Import gennemført. + + + Import of file %1 successful. + Import af fil %1 gennemført. + + + Importing file %1 + Importer fil %1 + + + + UBDocumentNavigator + + Page %0 + Side %0 + + + + UBDocumentPublisher + + Export failed. + Eksport mislykkedes. + + + + UBDocumentReplaceDialog + + Accept + Accepter + + + Cancel + Annuller + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Papirkurv + + + %1 pages copied + + %1 side kopieret + %1 sider kopieret + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 side kopieret + %1 sider kopieret + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopierer side %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopier) + + + Copying page %1/%2 + Kopierer side %1/%2 + + + %1 pages copied + + %1 side kopieret + %1 sider kopieret + + + + + UBDownloadWidget + + Downloading files + Downloader filer + + + Cancel + Annuller + + + + UBDraggableThumbnail + + Page %0 + Side %0 + + + + UBDraggableThumbnailView + + Page %0 + Side %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Advarsler under eksportering blev vist + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Eksporter til IWB + + + Export as IWB File + Eksporter som IWB-fil + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Export failed. + Eksport mislykkedes. + + + + UBExportDocument + + Page + Side + + + Export as UBZ File + Eksporter som UBZ-fil + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Exporting %1 %2 of %3 + Eksporterer %1 %2 af %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Export failed. + Eksport mislykkedes. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Eksporter som PDF-fil + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Export to PDF + Eksport til PDF + + + + UBExportPDF + + Export as PDF File + Eksport som PDF-fil + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Exporting page %1 of %2 + Eksporterer side %1 af %2 + + + Export to PDF + Eksport til PDF + + + + UBExportWeb + + Page + Side + + + Export as Web data + Eksporter som webdata + + + Exporting document... + Eksporterer dokument... + + + Export successful. + Eksport gennemført. + + + Export failed. + Eksport mislykkedes. + + + Export to Web Browser + Eksport til webbrowser + + + + UBFeatureProperties + + Add to page + Tilføj til side + + + Set as background + Brug som baggrund + + + Add to library + Tilføj til bibliotek + + + Object informations + Objektinformationer + + + + UBFeaturesActionBar + + Add to favorites + Tilføj til favoritter + + + Share + Del + + + Search + Søg + + + Delete + Slet + + + Back to folder + Tilbage til mappe + + + Remove from favorites + Fjern fra favoritter + + + Create new folder + Opret ny mappe + + + Rescan file system + Gennemsøg filsystem igen + + + + UBFeaturesController + + ImportedImage + ImporteretBillede + + + Audios + Lydfiler + + + Movies + Film + + + Pictures + Billeder + + + Animations + Animationer + + + Interactivities + Interaktiviteter + + + Applications + Applikationer + + + Shapes + Former + + + Favorites + Favoritter + + + Web search + Websøgning + + + Trash + Papirkurv + + + + UBFeaturesNewFolderDialog + + Accept + Accepter + + + Cancel + Annuller + + + Enter a new folder name + Indtast et nyt mappenavn + + + + UBFeaturesProgressInfo + + Loading + Indlæser + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på udvidet skærm + + + + UBGraphicsItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på udvidet skærm + + + Go to Content Source + Gå til indholdskilde + + + Set as background + Brug som baggrund + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Indtast tekst her> + + + + UBGraphicsTextItemDelegate + + Text Color + Tekstfarve + + + Editable + Kan redigeres + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Indlæser... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Frossen + + + Transform as Tool + Transformer som værktøj + + + + UBImportCFF + + Common File Format ( + Almindelig filformat ( + + + Importing file %1... + Importerer fil %1... + + + Import of file %1 failed. + Import af fil %1 mislykkedes. + + + Import successful. + Import gennemført. + + + Import failed. + Import mislykkedes. + + + + UBImportDocument + + Importing file %1... + Importerer fil %1... + + + Import successful. + Import gennemført. + + + Import of file %1 failed. + Import af fil %1 mislykkedes. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Billedformat ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Import af PDF mislykkedes. + + + Importing page %1 of %2 + Importerer side %1 af %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Fejl under udgivelse af video til Intranet (%1) + + + Publishing to Intranet in progress %1 % + Udgivelse til Intranet i gang %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Udgiv + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Ja + + + No + Nej + + + Ok + Ok + + + + UBMessagesDialog + + Close + Luk + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Indtast brugernavn og adgangskode "%1" at %2</qt> + + + Failed to log to Proxy + Kunne ikke logge på Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL fejl: + +%1 + +%2 + +Ønsker du at ignorere disse fejl for denne host? + + + Yes + Ja + + + No + Nej + + + + UBOpenSankoreImporterWidget + + Cancel + Annuller + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopier) + + + Document Repository Loss + Tab af dokumentdepot + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Engelsk + + + Russian + Russisk + + + German + Tysk + + + French + Fransk + + + Swiss French + Schweizisk Fransk + + + + UBPodcastController + + Failed to start encoder ... + Kunne ikke starte indkoderen ... + + + No Podcast encoder available ... + Der er ingen podcast-indkoder tilgængelig... + + + Part %1 + Del %1 + + + on your desktop ... + på dit skriveord... + + + in folder %1 + i mappe %1 + + + Podcast created %1 + Podcast oprettet %1 + + + Podcast recording error (%1) + Fejl under optagelse af podcast (%1) + + + Default Audio Input + Standard lydinput + + + No Audio Recording + Ingen lydoptagelse + + + Small + Lille + + + Medium + Medium + + + Full + Fuld + + + Publish to Intranet + Udgiv til Intranet + + + Publish to Youtube + Udgiv på Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + version: + + + Marker is pressure sensitive + Markøren er tryksensitiv + + + + UBProxyLoginDlg + + Proxy Login + Proxy Login + + + Username: + Brugernavn: + + + Password: + Adgangskode: + + + + UBPublicationDlg + + Publish document on the web + Udgiv dokument på web + + + Title: + Titel: + + + Description: + Beskrivelse: + + + Publish + Udgiv + + + + UBSettings + + My Movies + Mine Film + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Genererer forhåndsvisning af miniaturebilleder... + + + %1 thumbnails generated ... + %1 miniaturebilleder genereret... + + + + UBThumbnailTextItem + + Page %0 + Side %0 + + + + UBToolsManager + + Mask + Maske + + + Ruler + Lineal + + + Compass + Kompas + + + Protractor + Vinkelmåler + + + Triangle + Trekant + + + Magnifier + Lup + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + Hel side + + + Web + Web + + + + UBUpdateDlg + + Document updater + Dokument opdateringsværktøj + + + files require an update. + filer kræver en opdatering. + + + Backup path: + Backup path: + + + Browse + Gennemse + + + Update + Opdater + + + Select a backup folder + Vælg en mappe til backup + + + Files update successful! +Please reboot the application to access the updated documents. + Filopdatering gennemført! +Genstart venligst applikationen for at få adgang til de opdaterede dokumenter. + + + An error occured during the update. The files have not been affected. + Der opstod en fejl under opdateringen. Filerne er ikke påvirket af fejlen. + + + Files update results + Resultater af filopdatering + + + Updating file + Opdaterer fil + + + Please wait the import process will start soon... + Vent venligst, import vil snart begynde... + + + Remind me later + Påmind mig senere + + + + UBWebPluginWidget + + Loading... + Indlæser... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 kaldt (metode=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Godkendelse fra YouTube mislykkedes. + + + Error while uploading video to YouTube (%1) + Fejl under opload af video til YouTube (%1) + + + Upload to YouTube in progress %1 % + Upload til YouTube i gang %1 % + + + + UBYouTubePublishingDialog + + Upload + Upload + + + Autos & Vehicles + Biler & Køretøjer + + + Music + Musik + + + Pets & Animals + Kæledyr & Dyr + + + Sports + Sport + + + Travel & Events + Rejser & Begivenheder + + + Gaming + Spil + + + Comedy + Komedie + + + People & Blogs + Mennesker & Blogs + + + News & Politics + Nyheder & Politik + + + Entertainment + Underholdning + + + Education + Uddannelse + + + Howto & Style + Tips & Stil + + + Nonprofits & Activism + NGO & Aktivisme + + + Science & Technology + Videnskab & Teknologi + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Ryd + + + + WBDownloadItem + + Save File + Gem fil + + + Download canceled: %1 + Download annulleret: %1 + + + Error opening saved file: %1 + Fejl under åbning af gemt fil: %1 + + + Error saving: %1 + Fejl under gem: %1 + + + Network Error: %1 + Netværksfejl: %1 + + + seconds + sekunder + + + minutes + minutter + + + - %4 %5 remaining + - %4 %5 tilbage + + + %1 of %2 (%3/sec) %4 + %1 af %2 (%3/sek) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 af %2 - Stoppet + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Download + + + %1 Downloads + always >= 2 + %1 Downloads + + + + WBHistoryModel + + Title + Titel + + + Address + Adresse + + + + WBHistoryTreeModel + + Earlier Today + Tidligere i dag + + + %1 items + %1 enheder + + + + WBSearchLineEdit + + Search + Søg + + + + WBTabBar + + New &Tab + Ny &Fane + + + Clone Tab + Klon fane + + + &Close Tab + &Luk fane + + + Close &Other Tabs + Luk &Andre faner + + + Reload Tab + Genindlæs fane + + + Reload All Tabs + Genindlæs alle faner + + + + WBTabWidget + + Recently Closed Tabs + Senest lukkede faner + + + (Untitled) + (Uden titel) + + + + WBToolbarSearch + + Search + Søg + + + No Recent Searches + Ingen seneste søgninger + + + Recent Searches + Seneste søgninger + + + Clear Recent Searches + Ryd seneste søgninger + + + + WBWebPage + + Download + Download + + + Add to Current Document + Tilføj til aktuelt dokument + + + PDF + PDF + + + Error loading page: %1 + Fejl under indlæsning af side: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Åbn i ny fane + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Udgiv podcast på YouTube + + + Title + Titel + + + Description + Beskrivelse + + + Keywords + Søgeord + + + Category + Kategori + + + YouTube Username + YouTube brugernavn + + + YouTube Password + YouTube adgangskode + + + OpenBoard + OpenBoard + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + På lys baggrund + + + On Dark Background + På mørk baggrund + + + Opacity + Gennemsigtighed + + + Line Width + Linjebredde + + + Medium + Medium + + + Strong + Stærk + + + Fine + Fin + + + Pen is Pressure Sensitive + Pen er tryksensitiv + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-mail + + + Author + Forfatter + + + Description + Beskrivelse + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-mail + + + Author + Forfatter + + + Description + Beskrivelse + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Indstillinger + + + version : … + version: ... + + + Default Settings + Standardindstillinger + + + Close + Luk + + + Display + Display + + + Internet + Internet + + + Show Page with External Browser + Vis side med en ekstern browser + + + Home Page: + Hjem-side: + + + Virtual Keyboard + Virtuelt tastatur + + + Keyboard button size: + Størrelse på tastaturknapper: + + + Toolbar + Værktøjslinje + + + Positioned at the Top (recommended for tablets) + Placeret i toppen (anbefales for tablets) + + + Positioned at the Bottom (recommended for white boards) + Placeret i bunden (anbefalet for white boards) + + + Display Text Under Button + Vis tekst under knap + + + Stylus Palette + Penpalette + + + Horizontal + Horisontal + + + Vertical + Vertikal + + + Pen + Pen + + + Marker + Markør + + + About + Om + + + Software Update + Softwareopdatering + + + Check software update at launch + Kontroller for softwareopdateringer ved opstart + + + Licences + Licenser + + + Network + Netværk + + + Show internal web page content on secondary screen or projector + Vis indhold fra intern webside på sekundær skærm eller projektor + + + Multi display + Multivisning + + + Swap control display and view display + Skift mellem kontrolvisning og almindelig visning + + + Mode + Tilstand + + + Mode to start in: + Starttilstand: + + + Board + Tavle + + + Desktop + Skrivebord + + + Proxy User: + Proxy-bruger: + + + Pass: + Adgangskode: + + + Credits + Anerkendelse + + + On Dark Background + På mørk baggrund + + + Opacity + Gennemsigtighed + + + On Light Background + På lys baggrund + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Opsaml flash + + + Select a flash to trap + Vælg en flash der skal opsamles + + + about:blank + Om:bland + + + Application name + Navn på applikation + + + Create Application + Opret applikation + + + diff --git a/resources/i18n/OpenBoard_de.ts b/resources/i18n/OpenBoard_de.ts new file mode 100644 index 0000000..9a67156 --- /dev/null +++ b/resources/i18n/OpenBoard_de.ts @@ -0,0 +1,2996 @@ + + + + + BlackoutWidget + + Click to Return to Application + Klicken, um zur Anwendung zurückzukehren + + + + DownloadDialog + + Downloads + Downloads + + + Clean Up + Bereinigen + + + 0 Items + 0 Objekte + + + + DownloadItem + + Form + Formular + + + Filename + Dateiname + + + Try Again + Wiederholen + + + Stop + Anhalten + + + Open + Öffnen + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Podcast in YouTube veröffentlichen + + + Title + Titel + + + Description + Beschreibung + + + Author + Autor + + + + MainWindow + + Board + Board + + + Web + Internet + + + Documents + Dokumente + + + Stylus + Stylus + + + Ctrl+T + Strg+T + + + Backgrounds + Hintergründe + + + Change Background + Hintergrund ändern + + + Undo + Rückgängig machen + + + Ctrl+Z + Strg+Z + + + Redo + Wiederherstellen + + + Ctrl+Y + Strg+Y + + + Previous + Vorherige + + + Previous Page + Vorherige Seite + + + PgUp + Seite nach oben + + + Next + Nächste + + + Next Page + Nächste Seite + + + PgDown + Seite nach unten + + + Manage Documents + Dokumente verwalten + + + Ctrl+D + Strg+D + + + Web Browsing + Web-Browsing + + + Ctrl+W + Strg+W + + + Line + Strichstärke + + + Small Line + Dünner Strich + + + Medium Line + Mittelstarker Strich + + + Large Line + Dicker Strich + + + Quit + Beenden + + + Eraser + Löschen + + + Smalle Eraser + Kleiner Radiergummi + + + Medium Eraser + Mittelgroßer Radiergummi + + + Large Eraser + Großer Radiergummi + + + Color + Farbe + + + Back + Zurück + + + Left + Links + + + Forward + Weiter + + + Right + Rechts + + + Reload + Neu laden + + + Reload Current Page + Diese Seite neu laden + + + Home + Startseite + + + Load Home Page + Startseite laden + + + Bookmarks + Lesezeichen + + + Show Bookmarks + Lesezeichen anzeigen + + + Bookmark + Lesezeichen + + + Add Bookmark + Lesezeichen hinzufügen + + + Display Board + Board anzeigen + + + Ctrl+B + Strg+B + + + Erase + Löschen + + + Erase Content + Inhalt löschen + + + Preferences + Einstellungen + + + Display Preferences + Einstellungen anzeigen + + + Library + Bibliothek + + + Show Library + Bibliothek anzeigen + + + Ctrl+L + Strg+L + + + Show Desktop + Desktop anzeigen + + + Show Computer Desktop + Computer-Desktop anzeigen + + + Ctrl+Shift+H + Strg+Umschalt+H + + + Bigger + Größer + + + Zoom In + Vergrößern + + + Ctrl++ + Strg ++ + + + Smaller + Kleiner + + + Zoom Out + Verkleinern + + + Ctrl+- + Strg +- + + + New Folder + Neuer Ordner + + + Create a New Folder + Neuen Ordner erstellen + + + New Document + Neues Dokument + + + Create a New Document + Neues Dokument erstellen + + + Import + Importieren + + + Import a Document + Dokument importieren + + + Export + Exportieren + + + Export a Document + Dokument exportieren + + + Open in Board + Im Board öffnen + + + Open Page in Board + Seite im Board öffnen + + + Ctrl+O + Strg+O + + + Duplicate + Kopieren + + + Duplicate Selected Content + Ausgewählten Inhalt kopieren + + + Delete + Löschen + + + Delete Selected Content + Ausgewählten Inhalt löschen + + + Del + Löschen + + + Add to Working Document + Zu Arbeitsdokument hinzufügen + + + Add Selected Content to Open Document + Ausgewählten Inhalt geöffnetem Dokument hinzufügen + + + Add + Hinzufügen + + + Add Content to Document + Inhalt dem Dokument hinzufügen + + + Rename + Umbenennen + + + Rename Content + Inhalt umbenennen + + + Tools + Extras + + + Display Tools + Extras anzeigen + + + Multi Screen + Mehrere Bildschirme + + + Wide Size (16/9) + Breitbildformat (16:9) + + + Use Document Wide Size (16/9) + Dokument im Breitbildformat verwenden (16:9) + + + Regular Size (4/3) + Reguläre Größe (4/3) + + + Use Document Regular Size (4/3) + Reguläre Dokumentgröße (4:3) verwenden + + + Custom Size + Benutzerdefinierte Größe + + + Use Custom Document Size + Benutzerdefinierte Dokumentgröße verwenden + + + Stop Loading + Ladevorgang anhalten + + + Stop Loading Web Page + Laden der Webseite anhalten + + + Cut + Ausschneiden + + + Copy + Kopieren + + + Paste + Einfügen + + + Sleep + Bereitschaftsbetrieb + + + Put Presentation to Sleep + Präsentation in Bereitschaftsbetrieb versetzen + + + Virtual Keyboard + Virtuelle Tastatur + + + Display Virtual Keyboard + Virtuelle Tastatur anzeigen + + + Plain Light Background + Heller Hintergrund, einfach + + + Light + Hell + + + Grid Light Background + Hell karierten Hintergrund + + + Plain Dark Background + Dunkler Hintergrund, einfarbig + + + Dark + Dunkel + + + Grid Dark Background + Dunkel karierten Hintergrund + + + Podcast + Podcast + + + Record Presentation to Video + Präsentation als Video aufnehmen + + + Record + Aufnehmen + + + Start Screen Recording + Bildschirmaufnahme beginnen + + + Erase Items + Objekte löschen + + + Erase All Items + Alle Objekte löschen + + + Erase Annotations + Anmerkungen löschen + + + Erase All Annotations + Alle Anmerkungen löschen + + + Clear Page + Seite löschen + + + Clear All Elements + Alle Elemente löschen + + + Pen + Stift + + + Annotate Document + Dokument kommentieren + + + Ctrl+I + Strg+I + + + Erase Annotation + Anmerkung löschen + + + Ctrl+E + Strg+E + + + Marker + Marker + + + Highlight + Hervorheben + + + Ctrl+M + Strg+M + + + Selector + Auswahl + + + Select And Modify Objects + Objekte auswählen und ändern + + + Ctrl+F + Strg+F + + + Hand + Zeiger + + + Scroll Page + Blättern + + + Laser Pointer + Laserpointer + + + Virtual Laser Pointer + Virtueller Laserpointer + + + Ctrl+G + Strg+G + + + Draw Lines + Linien zeichnen + + + Ctrl+J + Strg+J + + + Text + Text + + + Write Text + Text schreiben + + + Ctrl+K + Strg+K + + + Capture + Erfassen + + + Capture Part of the Screen + Teil des Bildschirms erfassen + + + Add To Current Page + Zu dieser Seite hinzufügen + + + Add Item To Current Page + Objekt zu dieser Seite hinzufügen + + + Add To New Page + Zu neuer Seite hinzufügen + + + Add Item To New Page + Objekt zu neuer Seite hinzufügen + + + Add To Library + Zur Bibliothek hinzufügen + + + Add Item To Library + Objekt zur Bibliothek hinzufügen + + + Pages + Seiten + + + Create a New Page + Neue Seite erstellen + + + New Page + Neue Seite + + + Duplicate Page + Seite kopieren + + + Duplicate the Current Page + Diese Seite kopieren + + + Import Page + Seite importieren + + + Import an External Page + Externe Seite importieren + + + Pause + Pause + + + Pause Podcast Recording + Podcast-Aufnahme unterbrechen + + + Podcast Config + Podcast konfigurieren + + + Configure Podcast Recording + Podcast-Aufnahme konfigurieren + + + Flash Trap + Einblendung einfangen + + + Trap Flash Content + Eingeblendeten Inhalt einfangen + + + Web Trap + Internet einfangen + + + Trap Web Content + Webinhalt einfangen + + + Custom Capture + Benutzerdefinierte Erfassung + + + Window Capture + Fenster erfassen + + + Capture a Window + Fenster erfassen + + + Embed Web Content + Web-Inhalt einbinden + + + Capture Embeddable Web Content + Integrierbaren Webinhalt erfassen + + + Show on Display + Auf dem Bildschirm anzeigen + + + Show Main Screen on Display Screen + Hauptfenster auf dem Bildschirm anzeigen + + + Erase all Annotations + Alle Anmerkungen löschen + + + eduMedia + eduMedia + + + Import eduMedia simulation + eduMedia-Simulation importieren + + + Check Update + Update überprüfen + + + Ctrl+H + Strg+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + OpenBoard verlassen + + + Hide OpenBoard + OpenBoard ausblenden + + + Hide OpenBoard Application + OpenBoard ausblenden + + + Play + Abspielen + + + Interact with items + Mit Objekten interagieren + + + Erase Background + Hintergrund löschen + + + Remove the backgound + Hintergrund entfernen + + + Open Tutorial + Anleitung öffnen + + + Open the tutorial web page + Öffnen der Anleitung im Internet + + + Ruled Light Background + Heller linierter Hintergrund + + + Ruled Dark Background + Dunkler linierter Hintergrund + + + Reset grid size + Rastergröße zurücksetzen + + + Small Eraser + Kleiner Radiergummi + + + Color 1 + Farbe 1 + + + Color 2 + Farbe 2 + + + Color 3 + Farbe 3 + + + Color 4 + Farbe 4 + + + Color 5 + Farbe 5 + + + Draw intermediate grid lines + Gitter-Zwischenlinien zeichnen + + + + PasswordDialog + + Authentication Required + Authentifizierung erforderlich + + + Username: + Benutzername: + + + Password: + Passwort: + + + + ProxyDialog + + Proxy Authentication + Proxy-Authentifizierung + + + Connect to Proxy + Mit Proxy verbinden + + + Username: + Benutzername: + + + Password: + Passwort: + + + Save username and password for future use + Benutzername und Passwort zur weiteren Verwendung speichern + + + + QObject + + Element ID = + Element ID = + + + Content is not supported in destination format. + Inhalt wird im Zielformat nicht unterstützt. + + + Remove Page + Seite entfernen + + + Are you sure you want to remove 1 page from the selected document '%0'? + Wollen Sie wirklich die ausgewählte Seite des Dokuments '%0' entfernen? + + + + UBApplication + + Page Size + Seitengröße + + + Podcast + Podcast + + + + UBApplicationController + + Web + Browser + + + New update available, would you go to the web page ? + Neue Aktualisierung verfügbar, möchten Sie auf die Internetseite gehen? + + + No update available + Keine Aktualisierung verfügbar + + + Update available + Aktualisierung verfügbar + + + Update + Aktualisierung + + + Board drawing... + Brettzeichnung... + + + + UBBackgroundPalette + + Grid size + Gittergrösse + + + Draw intermediate grid lines + Gitter-Zwischenlinien zeichnen + + + + UBBoardController + + Downloading content %1 failed + Fehler beim Herunterladen von %1 + + + Download finished + Herunterladen beendet + + + Unknown tool type %1 + Programmtyp %1 unbekannt + + + Unknown content type %1 + Unbekannter Inhalt %1 + + + Add Item + Objekt hinzufügen + + + All Supported (%1) + Alle unterstützt (%1) + + + Delete page %1 from document + Seite %1 des Dokuments löschen + + + Page %1 deleted + Seite %1 gelöscht + + + Add file operation failed: file copying error + Dokument hinzufügen fehlgeschlagen: Fehler beim Kopieren + + + Group + Gruppieren + + + Ungroup + Gruppierung auflösen + + + Saving document... + Dokument wird gespeichert... + + + Document has just been saved... + Dokument wurde gespeichert... + + + Deleting page %1 + Seite %1 löschen + + + Color + Farbe + + + + UBBoardPaletteManager + + Error Adding Image to Library + Fehler beim Hinzufügen des Bildes zur Bibliothek + + + CapturedImage + erfasstes Bild + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Ladeseite (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Cache-Eigenschaften + + + Color: + Farbe: + + + Shape: + Form: + + + Size: + Größe: + + + Close + Schließen + + + + UBDesktopPalette + + Capture Part of the Screen + Teil des Bildschirms erfassen + + + Capture the Screen + Bildschirm erfassen + + + Show the stylus palette + Stylus-Palette anzeigen + + + Show Board on Secondary Screen + Board auf zweitem Bildschirm anzeigen + + + Show Desktop on Secondary Screen + Desktop auf zweitem Bildschirm anzeigen + + + Show OpenBoard + Zeige OpenBoard + + + + UBDocumentController + + New Folder + Neuer Ordner + + + Page %1 + Seite %1 + + + Add Folder of Images + Ordner mit Bildern hinzufügen + + + Add Images + Bilder hinzufügen + + + Add Pages from File + Seiten aus der Datei hinzufügen + + + Duplicating Document %1 + Dokument %1 wird dupliziert + + + Document %1 copied + Dokument %1 kopiert + + + Remove Page + Seite entfernen + + + Remove Document + Dokument entfernen + + + Are you sure you want to remove the document '%1'? + Möchten Sie das Dokument '%1' wirklich entfernen? + + + Empty Trash + Papierkorb leeren + + + Are you sure you want to empty trash? + Möchten Sie den Papierkorb wirklich leeren? + + + Emptying trash + Papierkorb wird geleert + + + Emptied trash + Papierkorb wurde geleert + + + Remove Folder + Ordner entfernen + + + Are you sure you want to remove the folder '%1' and all its content? + Möchten Sie den Ordner '%1 und seinen gesamten Inhalt wirklich entfernen? + + + No document selected! + Kein Dokument ausgewählt! + + + Open Supported File + Unterstützte Datei öffnen + + + Importing file %1... + Datei %1 wird importiert... + + + Failed to import file ... + Datei konnte nicht importiert werden... + + + Import all Images from Folder + Alle Bilder aus dem Ordner importieren + + + Delete + Löschen + + + Empty + Leeren + + + Trash + Papierkorb + + + Open Document + Dokument öffnen + + + Add all Images to Document + Alle Bilder dem Dokument hinzufügen + + + All Images (%1) + Alle Bilder (%1) + + + Selection does not contain any image files! + Auswahl enthält keine Bilddateien! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Wollen Sie wirklich %n Seite vom ausgewählten Dokument '%1' entfernen? + Wollen Sie wirklich %n Seiten vom ausgewählten Dokument '%1' entfernen? + + + + Folder does not contain any image files + Das Verzeichnis enthält keine Bilder + + + Untitled Documents + Unbenanntes Dokument + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Das Dokument '%1' wurde mit einer neueren Version von OpenBoard erstellt (%2). Beim Öffnen können einige Informationen verloren gehen. Möchten Sie fortfahren? + + + Are you sure you want to remove all selected documents? + Möchten sie wirklich alle ausgewählten Dokumente entfernen? + + + Remove multiple documents + Mehrere Dokumente entfernen + + + duplicated %1 page + duplicated %1 pages + + %1 Seite wurde kopiert + %1 Seiten wurden kopiert + + + + Remove Item + Objekte löschen + + + Are you sure you want to remove the selected item(s) ? + Möchten Sie die ausgewählten Elemente wirklich entfernen ? + + + Title page + Titelseite + + + Empty My Documents + Eigene Dokumente leeren + + + + UBDocumentManager + + images + Bilder + + + videos + Videos + + + objects + Objekte + + + widgets + Steuerelemente + + + All supported files (*.%1) + Alle unterstützten Dateien (*.%1) + + + File %1 saved + Datei %1 gespeichert + + + Inserting page %1 of %2 + Hinzufügen der Seite %1 von %2 + + + Import successful. + Import erfolgreich. + + + Import of file %1 successful. + Import der Datei %1 erfolgreich. + + + Importing file %1 + Datei %1 wird importiert + + + + UBDocumentNavigator + + Page %0 + Seite %0 + + + + UBDocumentPublisher + + Export failed. + Export fehlgeschlagen. + + + + UBDocumentReplaceDialog + + Accept + Akzeptieren + + + Replace + Ersetzen + + + Cancel + Abbrechen + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + Der Name %1 wird bereits benutzt. +Wenn Sie den Namen behalten möchten, wird das Dokument ersetzt. +Wenn Sie einen neuen Namen wählen, wird ein neues Dokument erstellt. + + + + UBDocumentTreeModel + + My documents + Eigene Dokumente + + + Trash + Papierkorb + + + %1 pages copied + + %1 Seite wurde kopiert + %1 Seiten wurden kopiert + + + + + UBDocumentTreeView + + %1 pages copied + + %1 Seite wurde kopiert + %1 Seiten wurden kopiert + + + + Remove Item + Objekte löschen + + + Are you sure you want to remove the selected item(s) ? + Möchten Sie die ausgewählten Elemente wirklich entfernen ? + + + Copying page %1/%2 + Seite %1/%2 wird kopiert + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (Kopie) + + + Copying page %1/%2 + Seite %1/%2 wird kopiert + + + %1 pages copied + + %1 Seite wurde kopiert + %1 Seiten wurden kopiert + + + + + UBDownloadWidget + + Downloading files + Dateien werden heruntergeladen + + + Cancel + Abbrechen + + + + UBDraggableThumbnail + + Page %0 + Seite %0 + + + + UBDraggableThumbnailView + + Page %0 + Seite %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Warnungen beim Exportieren aufgetreten + + + Exporting document... + Dokument wird exportiert... + + + Export failed + Export fehlgeschlagen + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Export im ausgewählten Zielpfad nicht möglich. Sie haben nicht die erforderliche Berechtigung um die Datei zu speichern. + + + Export failed: location not writable + Export fehlgeschlagen: Zielpfad nicht beschreibbar + + + Export successful. + Export erfolgreich. + + + + UBExportCFF + + Export to IWB + Exportieren nach IWB + + + Export as IWB File + Exportieren als IWB-Datei + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Export failed. + Export fehlgeschlagen. + + + + UBExportDocument + + Page + Seite + + + Export as UBZ File + Als UBZ-Datei exportieren + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Exporting %1 %2 of %3 + %1 %2 von %3 werden exportiert + + + Export to OpenBoard Format + In das OpenBoard Format exportieren + + + Export failed: location not writable + Export fehlgeschlagen: Zielpfad nicht beschreibbar + + + Export failed + Export fehlgeschlagen + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Export im ausgewählten Zielpfad nicht möglich. Sie haben nicht die erforderliche Berechtigung um die Datei zu speichern. + + + + UBExportDocumentSetAdaptor + + Failed to export... + Export fehlgeschlagen... + + + Export as UBX File + Als UBX-Datei exportieren + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Export failed. + Export fehlgeschlagen. + + + Export to OpenBoard UBX Format + In das UBX OpenBoard Format exportieren + + + + UBExportFullPDF + + Export as PDF File + Als PDF-Datei exportieren + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Export to PDF + In PDF-Datei exportieren + + + Export failed: location not writable + Export fehlgeschlagen: Zielpfad nicht beschreibbar. + + + Export failed + Export fehlgeschlagen + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Export im ausgewählten Zielpfad nicht möglich. Sie haben nicht die erforderliche Berechtigung um die Datei zu speichern. + + + + UBExportPDF + + Export as PDF File + Export als PDF-Datei + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Exporting page %1 of %2 + Seite %1 von %2 wird exportiert + + + Export to PDF + In PDF-Datei exportieren + + + + UBExportWeb + + Page + Seite + + + Export as Web data + Als Web-Datei exportieren + + + Exporting document... + Dokument wird exportiert... + + + Export successful. + Export erfolgreich. + + + Export failed. + Export fehlgeschlagen. + + + Export to Web Browser + In Web-Browser exportieren + + + + UBFeatureProperties + + Add to page + Zur Seite hinzufügen + + + Set as background + Als Hintergrund festlegen + + + Add to library + Zur Bibliothek hinzufügen + + + Object informations + Objektinformationen + + + + UBFeaturesActionBar + + Add to favorites + Zu Favoriten hinzufügen + + + Share + Teilen + + + Search + Suchen + + + Delete + Löschen + + + Back to folder + Zurück zum Ordner + + + Remove from favorites + Aus Favoritenliste entfernen + + + Create new folder + Neuen Ordner erstellen + + + Rescan file system + Dateisystem neu einlesen + + + + UBFeaturesController + + ImportedImage + Importiertes Bild + + + Audios + Audiodateien + + + Movies + Filme + + + Pictures + Bilder + + + Animations + Animationen + + + Interactivities + Interaktivitäten + + + Applications + Anwendungen + + + Shapes + Formen + + + Favorites + Favoriten + + + Web search + Websuche + + + Trash + Papierkorb + + + + UBFeaturesNewFolderDialog + + Accept + Akzeptieren + + + Cancel + Abbrechen + + + Enter a new folder name + Geben Sie den Namen des Verzeichnisses ein + + + + UBFeaturesProgressInfo + + Loading + Laden + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Gesperrt + + + Visible on Extended Screen + Auf erweitertem Bildschirm sichtbar + + + + UBGraphicsItemDelegate + + Locked + Gesperrt + + + Visible on Extended Screen + Auf erweitertem Bildschirm sichtbar + + + Go to Content Source + Gehen Sie zum ursprünglichen Inhalt + + + Set as background + Als Hintergrund einfügen + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Medienquelle konnte nicht aufgelöst werden + + + Unsupported media format + Medienformat wird nicht unterstützt + + + Media playback service not found + Dienst zum Abspielen von Mediainhalten nicht gefunden + + + Media error: + Medienfehler: + + + + UBGraphicsTextItem + + <Type Text Here> + <Text hier eintippen> + + + + UBGraphicsTextItemDelegate + + Text Color + Schriftfarbe + + + Editable + Editierbar + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Lädt... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Fixiert + + + Transform as Tool + In Werkzeug umwandeln + + + + UBImportCFF + + Common File Format ( + Standard-Dateiformat ( + + + Importing file %1... + Datei %1 wird importiert... + + + Import of file %1 failed. + Import der Datei %1 fehlgeschlagen. + + + Import successful. + Import erfolgreich. + + + Import failed. + Import fehlgeschlagen. + + + + UBImportDocument + + Importing file %1... + Datei %1 wird importiert... + + + Import successful. + Import erfolgreich. + + + Import of file %1 failed. + Import der Datei %1 fehlgeschlagen. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (Dokumentensammlung) (*.ubx) + + + + UBImportImage + + Image Format ( + Bildformat ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + PDF-Import fehlgeschlagen. + + + Importing page %1 of %2 + Seite %1 von %2 wird importiert + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Fehler bei der Videoveröffentlichung im Intranet (%1) + + + Publishing to Intranet in progress %1 % + Veröffentlichung im Intranet läuft %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Veröffentlichen + + + + UBKeyboardPalette + + Enter + Eingabe + + + + UBMainWindow + + Yes + Ja + + + No + Nein + + + Ok + OK + + + + UBMessagesDialog + + Close + Schließen + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Benutzername und Passwort für "%1" bei %2 eingeben</qt> + + + Failed to log to Proxy + Verbindung mit Proxy konnte nicht hergestellt werden + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL-Fehler: + +%1 + +%2 + +Möchten Sie diese Fehler für diesen Computer ignorieren? + + + Yes + Ja + + + No + Nein + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Geöffnete Open-Sankore Dokumente festgestellt + + + Show this panel next time + Diesen Dialog erneut anzeigen + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Sie können jederzeit im Einstellungsdialog im Menü "Über" auf den OpenBoard Document Importer zugreifen. Warnung, falls sie bereits Ihre Open-Sankore Daten importiert haben, können Sie Ihre aktuellen OpenBoard Dokumente verlieren. + + + Cancel + Abbrechen + + + Proceed + Fortfahren + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Auf Ihrem Computer befinden sich Open-Sankoré Dokumente. Um diese in OpenBoard zu importieren drücken Sie den "Fortfahren" Knopf um die Importanwendung zu starten. + + + + UBPersistenceManager + + (copy) + (Kopie) + + + Document Repository Loss + Verlust des Dokumentenarchivs + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + Verbindung zum Dokumentenarchiv verloren. Um fehlerhafte Daten zu vermeiden muss die Anwendung leider geschlossen werden. Letzte Änderungen können auch verloren gehen. + + + saving document thumbnail for the page %1 + Backup Übersichtsseite %1 + + + Saving thumbnail of page %1 + Miniaturansicht der Seite %1 speichern + + + Moving page to trash folder... + Die Seite in den Papierkorb verschieben... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + Openboard hat den Zugang zum Dokumentenarchiv '%1' verloren. Die Anwendung muss leider beendet werden, um Datenkorruption zu vermeiden. Der Verlust kürzlich vorgenommener Änderungen ist möglich. + + + + UBPlatformUtils + + English + englisch + + + Russian + russisch + + + German + deutsch + + + French + französisch + + + Swiss French + französisch (Schweiz) + + + + UBPodcastController + + Failed to start encoder ... + Der Kodierer konnte nicht gestartet werden... + + + No Podcast encoder available ... + Kein Kodierer für Podcasts verfügbar... + + + Part %1 + Teil %1 + + + on your desktop ... + auf Ihrem Desktop... + + + in folder %1 + in Ordner %1 + + + Podcast created %1 + Podcast erstellt %1 + + + Podcast recording error (%1) + Fehler bei der Podcast Aufnahme (%1) + + + Default Audio Input + Standard-Audioeingang + + + No Audio Recording + Keine Audioaufnahme + + + Small + Klein + + + Medium + Mittelgroß + + + Full + Voll + + + Publish to Intranet + Im Intranet veröffentlichen + + + Publish to Youtube + Auf YouTube veröffentlichen + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + Version: + + + Marker is pressure sensitive + Der Marker ist druckempfindlich + + + + UBProxyLoginDlg + + Proxy Login + Proxy-Login + + + Username: + Benutzername: + + + Password: + Passwort: + + + + UBPublicationDlg + + Publish document on the web + Dokument im Internet veröffentlichen + + + Title: + Titel: + + + Description: + Beschreibung: + + + Publish + Veröffentlichen + + + + UBSettings + + My Movies + Meine Filme + + + + UBStartupHintsPalette + + Visible next time + Sichtbar beim nächsten Mal + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Vorschau in Miniaturansicht wird erstellt... + + + %1 thumbnails generated ... + Miniaturansicht %1 wird erstellt... + + + loading thumbnail of page %1 + +Miniaturansicht der Seite %1 wird geladen + + + + UBThumbnailTextItem + + Page %0 + Seite %0 + + + + UBToolsManager + + Mask + Maske + + + Ruler + Lineal + + + Compass + Zirkel + + + Protractor + Winkelmesser + + + Triangle + Dreieck + + + Magnifier + Lupe + + + Cache + Zwischenspeicher + + + Axes + Achsen + + + + UBTrapFlashController + + Whole page + Ganze Seite + + + Web + Internet + + + + UBUpdateDlg + + Document updater + Dokument-Updater + + + files require an update. + Dateien müssen aktualisiert werden. + + + Backup path: + Backup-Pfad: + + + Browse + Durchsuchen + + + Update + Aktualisierung + + + Select a backup folder + Wählen Sie einen Ordner für Ihre Sicherungskopie + + + Files update successful! +Please reboot the application to access the updated documents. + Dateien erfolgreich aktualisiert! +Bitte starten Sie die Anwendung erneut, um auf die aktualisierten Dokumente zugreifen zu können. + + + An error occured during the update. The files have not been affected. + Während des Updates ist ein Fehler aufgetreten. Die Dateien wurden nicht beeinträchtigt. + + + Files update results + Ergebnis der Dateien-Aktualisierung + + + Updating file + Dateien werden aktualisiert + + + Please wait the import process will start soon... + Bitte warten, der Importprozess beginnt gleich... + + + Remind me later + Später erinnern + + + + UBWebPluginWidget + + Loading... + Lädt... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 aufgerufen (Methode=%1, Status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube-Authentifizierung fehlgeschlagen. + + + Error while uploading video to YouTube (%1) + Fehler beim Hochladen des Videos auf YouTube (%1) + + + Upload to YouTube in progress %1 % + Hochladen auf YouTube läuft %1 % + + + + UBYouTubePublishingDialog + + Upload + Hochladen + + + Autos & Vehicles + Autos & Fahrzeuge + + + Music + Musik + + + Pets & Animals + Haustiere & Tiere + + + Sports + Sport + + + Travel & Events + Reisen & Ereignisse + + + Gaming + Spiele + + + Comedy + Comedy + + + People & Blogs + Leute & Blogs + + + News & Politics + Nachrichten & Politik + + + Entertainment + Unterhaltung + + + Education + Bildung + + + Howto & Style + Anleitung & Anwendung + + + Nonprofits & Activism + Gemeinnützigkeit & Aktivismus + + + Science & Technology + Wissenschaft & Technologie + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Löschen + + + + WBDownloadItem + + Save File + Datei speichern + + + Download canceled: %1 + Herunterladen abgebrochen %1 + + + Error opening saved file: %1 + Fehler beim Öffnen der gespeicherten Datei: %1 + + + Error saving: %1 + Fehler beim Speichern: %1 + + + Network Error: %1 + Netzwerkfehler: %1 + + + seconds + Sekunden + + + minutes + Minuten + + + - %4 %5 remaining + - %4 %5 verbleibend + + + %1 of %2 (%3/sec) %4 + %1 von %2 (%3/Sekunden) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 von %2 - Beendet + + + bytes + Bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Download + + + %1 Downloads + always >= 2 + %1 Downloads + + + + WBHistoryModel + + Title + Titel + + + Address + Adresse + + + + WBHistoryTreeModel + + Earlier Today + Vor ein paar Stunden + + + %1 items + %1 Objekte + + + + WBSearchLineEdit + + Search + Suchen + + + + WBTabBar + + New &Tab + &Tab Neu + + + Clone Tab + Tab duplizieren + + + &Close Tab + Tab &Schließen + + + Close &Other Tabs + &Andere Tabs schließen + + + Reload Tab + Tab Neu laden + + + Reload All Tabs + Alle Tabs neu laden + + + + WBTabWidget + + Recently Closed Tabs + Kürzlich geschlossene Tabs + + + (Untitled) + (Unbenannt) + + + + WBToolbarSearch + + Search + Suchen + + + No Recent Searches + Keine aktuelle Suche + + + Recent Searches + Aktuelle Suche + + + Clear Recent Searches + Aktuelle Suche löschen + + + + WBWebPage + + Download + Download + + + Add to Current Document + Zu aktuellem Dokument hinzufügen + + + PDF + PDF + + + Error loading page: %1 + Fehler beim Laden der Seite: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + PDF Dokument herunterladen: Möchten Sie die PDF-Datei herunterladen oder sie zum aktuellen OpenBoard Dokument hinzufügen? + + + + WBWebView + + Open in New Tab + In neuem Tab öffnen + + + + XPDFRenderer + + Processing... + Verarbeitung… + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Podcast in YouTube veröffentlichen + + + Title + Titel + + + Description + Beschreibung + + + Keywords + Stichwörter + + + Category + Kategorie + + + YouTube Username + YouTube-Benutzername + + + YouTube Password + YouTube-Passwort + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Durch Klicken auf 'Upload', bestätigen Sie die nötigen Rechte zum Veröffentlichen des Inhalts zu besitzen und die allgemeinen Nutzungsbedingungen von YouTube zu respektieren.</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Zugangsdaten beim Neustarten wiederherstellen + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Auf hellem Hintergrund + + + On Dark Background + Auf dunklem Hintergrund + + + Opacity + Deckkraft + + + Line Width + Strichstärke + + + Medium + Mittel + + + Strong + Dick + + + Fine + Dünn + + + Pen is Pressure Sensitive + Der Stift ist druckempfindlich + + + Show preview circle from + Ansichtsgrösse von + + + px + px + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-Mail + + + Author + Autor + + + Description + Beschreibung + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-Mail + + + Author + Autor + + + Description + Beschreibung + + + + documents + + OpenBoard Documents + OpenBoard Dokumente + + + Creation date + Erstellungsdatum + + + Update date + Änderungsdatum + + + Alphabetical order + Alphabetische Reihenfolge + + + Sort Order + Sortierreihenfolge + + + + preferencesDialog + + Preferences + Einstellungen + + + version : … + Version: ... + + + Default Settings + Standardeinstellungen + + + Close + Schließen + + + Display + Ansicht + + + Internet + Internet + + + Show Page with External Browser + Seite mit externem Browser anzeigen + + + Home Page: + Homepage: + + + Virtual Keyboard + Virtuelle Tastatur + + + Keyboard button size: + Tastengröße der Tastatur: + + + Toolbar + Funktionsleiste + + + Positioned at the Top (recommended for tablets) + Oben anzeigen (empfohlen für Tablet-PC) + + + Positioned at the Bottom (recommended for white boards) + Unten anzeigen (empfohlen für Whiteboards) + + + Display Text Under Button + Text unterhalb der Tasten anzeigen + + + Stylus Palette + Stylus-Palette + + + Horizontal + Horizontal + + + Vertical + Vertikal + + + Pen + Stift + + + Marker + Marker + + + About + Über + + + Software Update + Software-Aktualisierung + + + Check software update at launch + Software-Aktualisierung beim Start prüfen + + + Licences + Lizenzen + + + Network + Netzwerk + + + Show internal web page content on secondary screen or projector + Inhalt der internen Webseite auf Zweit-Bildschirm oder Projektor anzeigen + + + Multi display + Mehrfach-Bildschirm + + + Swap control display and view display + Kontroll- und Anzeige-Bildschirm vertauschen + + + Mode + Betriebsart + + + Mode to start in: + Starten in Betriebsart: + + + Board + Board + + + Desktop + Schreibtisch + + + Proxy User: + Proxy Benutzer: + + + Pass: + Passwort: + + + Open-Sankoré Importer + Open-Sankoré Importer + + + Check if Open-Sankoré data could be imported at launch + Prüfen, ob Open-Sankoré Daten beim Start importiert werden können + + + Use system keyboard (recommended) + Benutze System-Tastatur (empfohlen) + + + Built-in virtual keyboard button size: + Tastengröße der integrierten virtuellen Tastatur + + + Grid + Gitter + + + On Dark Background + Auf dunklem Hintergrund + + + Opacity + Deckkraft + + + On Light Background + Auf hellem Hintergrund + + + Swap first and second view displays + Kontroll- und Anzeige-Bildschirm vertauschen + + + Credits + + + + Documents Mode + Dokumentmodus + + + Display date column on alphabetical sort + Datumsspalte nur in alphabetischer Reihenfolge anzeigen + + + Empty trash for documents older than + Dokumente aus dem Papierkorb löschen, die älter als + + + days + Tage sind + + + PDF Rendering + PDF-Wiedergabe + + + Enable quality loss to increase zoom performances + Zulassen eines Qualitätsverlusts zur Erhöhung der Zoomleistung + + + Improve zoom execution time (can slightly affect rendering quality) + Die Zoomgeschwindigkeit verbessern (kann die Renderqualität geringfügig beeinträchtigen) + + + + trapFlashDialog + + Trap flash + Einblendung festhalten + + + Select a flash to trap + Wählen Sie eine Einblendung, die festgehalten werden soll + + + about:blank + about:blank + + + Application name + Anwendungsname + + + Create Application + Anwendung erstellen + + + diff --git a/resources/i18n/OpenBoard_el.ts b/resources/i18n/OpenBoard_el.ts new file mode 100644 index 0000000..329a7b9 --- /dev/null +++ b/resources/i18n/OpenBoard_el.ts @@ -0,0 +1,2922 @@ + + + + + BlackoutWidget + + Click to Return to Application + Κάντε κλικ για να επιστρέψετε στην εφαρμογη + + + + DownloadDialog + + Downloads + Λήψεις + + + Clean Up + Καθαρισμος + + + 0 Items + Αντικείμενα + + + + DownloadItem + + Form + Σχήμα + + + Filename + Όνομα αρχειου + + + Try Again + Προσπάθησε πάλι + + + Stop + Διακοπή + + + Open + Άνοιγμα + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Δημοσίευση βίντεο στο YouTube + + + Title + Τίτλος + + + Description + Περιγραφή + + + Author + Δημιουργός + + + + MainWindow + + Board + Εφαρμογή + + + Web + Διαδίκτυο + + + Documents + Έγγραφα + + + Stylus + Εργαλειοθήκη + + + Ctrl+T + Ctrl+T + + + Backgrounds + Παρασκήνια + + + Change Background + Αλλαγή παρασκηνίου + + + Undo + Αναίρεση + + + Ctrl+Z + Ctrl+Z + + + Redo + Ακύρωση αναίρεσης + + + Ctrl+Y + Ctrl+Y + + + Previous + Προηγούμενη + + + Previous Page + Προηγούμενη σελίδα + + + PgUp + PgUp + + + Next + Επόμενη + + + Next Page + Επόμενη σελίδα + + + PgDown + PgDown + + + Manage Documents + Διαχείριση εγγράφων + + + Ctrl+D + Ctrl+D + + + Web Browsing + Περιήγηση διαδικτύου + + + Ctrl+W + Ctrl+W + + + Quit + Έξοδος + + + Back + Πίσω + + + Left + Αριστερά + + + Forward + Μπροστά + + + Right + Δεξιά + + + Reload + Επαναφόρτωση + + + Home + Αρχικη + + + Bookmarks + Σελιδοδείκτες + + + Bookmark + Σελιδοδείκτης + + + Ctrl+B + Ctrl+B + + + Erase + Σβήσιμο + + + Preferences + Ρυθμίσεις + + + Library + Βιβλιοθήκη + + + Ctrl+L + Ctrl+L + + + Show Desktop + Εμφάνιση Επιφάνειας Εργασίας + + + Bigger + Μεγέθυνση + + + Ctrl++ + Ctrl++ + + + Smaller + Σμίκρυνση + + + Ctrl+- + Ctrl+- + + + New Folder + Νέος φάκελος + + + New Document + Νέο έγγραφο + + + Import + Εισαγωγή + + + Export + Εξαγωγή + + + Open in Board + Άνοιγμα στην Εφαρμογή + + + Ctrl+O + Ctrl+O + + + Duplicate + Αντίγραφο + + + Delete + Διαγραφή + + + Del + Del + + + Add to Working Document + Προσθήκη στο έγγραφο εργασίας + + + Add Selected Content to Open Document + Προσθήκη του επιλεγμένου περιεχομένου στο ανοιχτό έγγραφο + + + Add + Προσθήκη + + + Rename + Μετονομασία + + + Tools + Εργαλεία + + + Multi Screen + Πολλαπλές οθόνες + + + Wide Size (16/9) + Ευρεία οθόνη (16/9) + + + Regular Size (4/3) + Κανονική οθόνη (4/3) + + + Custom Size + Προσαρμοσμένο μέγεθος οθόνης + + + Stop Loading + Διακοπή φόρτωσης + + + Cut + Αποκοπή + + + Copy + Αντιγραφή + + + Paste + Επικόλληση + + + Sleep + Αναστολή λειτουργίας + + + Virtual Keyboard + Εικονικό πληκτρολόγιο + + + Plain Light Background + Ανοιχτόχρωμο παρασκήνιο + + + Light + Ανοιχτόχρωμο + + + Grid Light Background + Ανοιχτόχρωμο παρασκήνιο πλέγματος + + + Plain Dark Background + Σκουρόχρωμο παρασκήνιο + + + Dark + Σκουρόχρωμο + + + Grid Dark Background + Σκουρόχρωμο παρασκήνιο πλέγματος + + + Podcast + Βίντεο + + + Record + Εγγραφή + + + Start Screen Recording + Έναρξη εγγραφής οθόνης + + + Erase Items + Σβήσιμο αντικειμένων + + + Erase Annotations + Σβήσιμο σχολίων + + + Clear Page + Καθαρισμός σελίδας + + + Pen + Πένα + + + Check Update + Έλεγχος για ενημερώσεις + + + Ctrl+H + Ctrl+H + + + Eraser + Γόμα + + + Marker + Μαρκαδόρος + + + Selector + Επιλογέας + + + Hand + Χέρι + + + Zoom In + Μεγέθυνση + + + Zoom Out + Σμίκρυνση + + + Line + Γραμμή + + + Small Line + Λεπτή γραμμή + + + Medium Line + Μέτρια γραμμή + + + Large Line + Χοντρή γραμμή + + + Smalle Eraser + Μικρή σβήστρα + + + Medium Eraser + Μέτρια σβήστρα + + + Large Eraser + Μεγάλη σβήστρα + + + Color + Χρώμα + + + Reload Current Page + Επαναφόρτωση τρέχουσας σελίδας + + + Load Home Page + Φόρτωση αρχικής σελίδας + + + Show Bookmarks + Εμφάνιση σελιδοδεικτών + + + Add Bookmark + Προσθήκη σελιδοδείκτη + + + Display Board + Εμφάνιση Εφαρμογής + + + Erase Content + Σβήσιμο περιεχομένου + + + Display Preferences + Εμφάνιση ρυθμίσεων + + + Show Library + Εμφάνιση βιβλιοθήκης + + + Show Computer Desktop + Εμφάνιση Επιφάνειας Εργασίας του υπολογιστή + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Create a New Folder + Δημουργία νέου φακέλου + + + Create a New Document + Δημιουργία νέου εγγράφου + + + Import a Document + Εισαγωγή εγγράφου + + + Export a Document + Εξαγωγή εγγράφου + + + Open Page in Board + Άνοιγμα σελίδας στην Εφαρμογή + + + Duplicate Selected Content + Δημιουργία αντιγράφου του επιλεγμένου περιεχομένου + + + Delete Selected Content + Διαγραφή επιλεγμένου περιεχομένου + + + Add Content to Document + Προσθήκη περιεχομένου στο έγγραφο + + + Rename Content + Μετονομασία περιεχομένου + + + Display Tools + Εμφάνιση εργαλείων + + + Use Document Wide Size (16/9) + Χρήση εγγράφου ευρείας οθόνης (16/9) + + + Use Document Regular Size (4/3) + Χρήση εγγράφου κανονικής οθόνης (4/3) + + + Use Custom Document Size + Χρήση εγγράφου προσαρμοσμένου μεγέθους + + + Stop Loading Web Page + Διακοπή φόρτωσης ιστοσελίδας + + + Put Presentation to Sleep + Παρουσίαση σε αναστολή + + + Display Virtual Keyboard + Εμφάνιση εικονικού πληκτρολογίου + + + Record Presentation to Video + Εγγραφή της παρουσίασης σε βίντεο + + + Erase All Items + Σβήσιμο όλων των αντικειμένων + + + Erase All Annotations + Σβήσιμο όλων των σχολιασμών + + + Clear All Elements + Καθαρισμός όλων των αντικειμένων + + + Annotate Document + Σχολιασμός εγγράφου + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Σβήσιμο σχολιασμού + + + Ctrl+E + Ctrl+E + + + Highlight + Επισήμανση + + + Ctrl+M + Ctrl+M + + + Ctrl+F + Ctrl+F + + + Scroll Page + Κύλιση σελίδας + + + Laser Pointer + Δείκτης λέιζερ + + + Virtual Laser Pointer + Εικονικός δείκτης λέιζερ + + + Ctrl+G + Ctrl+G + + + Draw Lines + Σχεδίαση γραμμών + + + Ctrl+J + Ctrl+J + + + Text + Κείμενο + + + Write Text + Σύνταξη κειμένου + + + Ctrl+K + Ctrl+K + + + Capture + Λήψη στιγμιότυπου + + + Add To Current Page + Προσθήκη στην τρέχουσα σελίδα + + + Add Item To Current Page + Προσθήκη αντικειμένου στην τρέχουσα σελίδα + + + Add To New Page + Προσθήκη σε νέα σελίδα + + + Add Item To New Page + Προσθήκη αντικειμένου σε νέα σελίδα + + + Add To Library + Προσθήκη στη βιβλιοθήκη + + + Add Item To Library + Προσθήκη αντικειμένου στη βιβλιοθήκη + + + Pages + Σελίδες + + + Create a New Page + Δημιουργία νέας σελίδας + + + New Page + Νέα σελίδα + + + Duplicate Page + Δημιουργία αντιγράφου της σελίδας + + + Duplicate the Current Page + Δημιουργία αντιγράφου της τρέχουσας σελίδας + + + Import Page + Εισαγωγή σελίδας + + + Import an External Page + Εισαγωγή εξωτερικής σελίδας + + + Pause + Παύση + + + Pause Podcast Recording + Παύση εγγραφής βίντεο + + + Podcast Config + Ρύθμιση βίντεο + + + Configure Podcast Recording + Ρύθμιση εγγραφής βίντεο + + + Flash Trap + Λήψη αντικειμένου flash + + + Trap Flash Content + Λήψη περιεχομένου ενός αντικειμένου flash + + + Web Trap + Λήψη Διαδικτύου + + + Trap Web Content + Λήψη διαδικτυακού περιεχομένου + + + Capture Part of the Screen + Λήψη στιγμιότυπου μέρους της οθόνης + + + Custom Capture + Προσαρμοσμένη λήψη στιγμιότυπου + + + Capture a Window + Λήψη στιγμιότυπου ενός παραθύρου + + + Embed Web Content + Ενσωμάτωση διαδικτυακού περιεχομένου + + + Capture Embeddable Web Content + Λήψη στιγμιότυπου ενσωματωμένου διαδικτυακού περιεχομένου + + + Show Main Screen on Display Screen + Εμφάνιση κύριας οθόνης στην Εμφάνιση Οθόνης + + + Erase all Annotations + Σβήσιμο όλων των σχολιασμών + + + eduMedia + eduMedia + + + Import eduMedia simulation + Εισαγωγή προσομοίωσης eduMedia + + + Window Capture + Λήψη στιγμιότυπου παραθύρου + + + Show on Display + Παρουσίαση στην Εμφάνιση + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Έξοδος από το OpenBoard + + + Hide OpenBoard + Απόκρυψη του OpenBoard + + + Hide OpenBoard Application + Απόκρυψη της εφαρμογής OpenBoard + + + Play + Αναπαραγωγή + + + Erase Background + Σβήσιμο παρασκηνίου + + + Remove the backgound + Αφαίρεση παρασκηνίου + + + Ruled Light Background + + + + Ruled Dark Background + + + + Select And Modify Objects + + + + Interact with items + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Απαιτείται πιστοποίηση + + + Username: + Όνομα χρήστη: + + + Password: + Κωδικός πρόσβασης: + + + + ProxyDialog + + Proxy Authentication + Πιστοποίηση μέσω εξουσιοδοτημένου διακομιστή + + + Connect to Proxy + Σύνδεση στον εξουσιοδοτημένο διακομιστή + + + Username: + Όνομα χρήστη: + + + Password: + Κωδικός πρόσβασης: + + + Save username and password for future use + Αποθήκευση στοιχείων σύνδεσης για μελλοντική χρήση + + + + QObject + + Element ID = + Αναγνωριστικό στοιχείου= + + + Content is not supported in destination format. + Η μορφή του περιεχομένου δεν υποστηριζεται στον προορισμό + + + Remove Page + Αφαίρεση σελίδας + + + Are you sure you want to remove 1 page from the selected document '%0'? + Είστε βέβαιος ότι θέλετε να αφαιρέσετε μια σελίδα από το επιλεγμένο έγγραφο '%0'? + + + + UBApplication + + Page Size + Μέγεθος σελίδας + + + Podcast + Βίντεο + + + + UBApplicationController + + Web + Διαδίκτυο + + + New update available, would you go to the web page ? + Υπάρχουν νέες ενημερώσεις διαθέσιμες. Θέλετε να μεταβείτε στην ιστοσελίδα; + + + No update available + Δεν υπάρχουν διαθέσιμες ενημερώσεις + + + Update available + Υπάρχουν νέες ενημερώσεις + + + Update + Ενημέρωση + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Η λήψη περιεχομενου %1 απέτυχε + + + Download finished + Η λήψη ολοκληρώθηκε + + + Unknown tool type %1 + Άγνωστο είδος εργαλείου %1 + + + Unknown content type %1 + Άγνωστο είδος περιεχομενου %1 + + + Add Item + Προσθήκη αντικειμένου + + + All Supported (%1) + Όλα προστατευόμενα (%1) + + + Delete page %1 from document + Διαγραφή της σελιδας %1 από το έγγραφο + + + Page %1 deleted + Η σελίδα %1 διαγράφηκε + + + Add file operation failed: file copying error + Η προσθήκη λειτουργίας στο αρχείο απέτυχε: σφάλμα αντιγραφής αρχείου + + + Group + Ομαδοποίηση + + + Ungroup + Αποομαδοποίηση + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Χρώμα + + + + UBBoardPaletteManager + + Error Adding Image to Library + Σφάλμα κατά την προσθήκη εικόνας στη βιβλιοθήκη + + + CapturedImage + Εικόνα από σύλληψη στιγμιότυπου + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Ιδιότητες κρυφής μνήμης + + + Color: + Χρώμα: + + + Shape: + Σχήμα: + + + Size: + Μέγεθος: + + + Close + Κλείσιμο: + + + + UBDesktopPalette + + Capture Part of the Screen + Λήψη στιγμιότυπου μέρους της οθόνης + + + Capture the Screen + Λήψη στιγμιότυπου της οθόνης + + + Show the stylus palette + Εμφάνιση της εργαλειοθήκης + + + Show Board on Secondary Screen + Εμφάνιση της Εφαρμογής στη δευτερεύουσα οθόνη + + + Show Desktop on Secondary Screen + Εμφάνιση της Επιφάνειας Εργασίας στη δευτερεύουσα οθόνη + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Νέος φάκελος + + + Page %1 + Σελίδα %1 + + + Add Folder of Images + Προσθήκη φακέλου εικόνων + + + Add Images + Προσθήκη εικόνων + + + Add Pages from File + Προσθήκη σελίδων από αρχείο + + + Duplicating Document %1 + Δημιουργία αντιγράφου του εγγράφου %1 + + + Document %1 copied + Δημιουργήθηκε αντίγραφο του εγγράφου %1 + + + Remove Page + Αφαίρεση σελίδας + + + Remove Document + Αφαίρεση εγγράφου + + + Are you sure you want to remove the document '%1'? + Είστε βέβαιος ότι θέλετε να αφαιρέσετε το έγγραφο '%1'; + + + Empty Trash + Άδειασμα Κάδου Ανακύκλωσης + + + Are you sure you want to empty trash? + Είστε βέβαιος ότι θέλετε να αδειάσετε τον Κάδο Ανακύκλωσης; + + + Emptying trash + Άδειασμα Κάδου Ανακύκλωσης + + + Emptied trash + Ολοκληρώθηκε το άδειασμα του Κάδου Ανακύκλωσης + + + Remove Folder + Αφαίρεση φακέλου + + + Are you sure you want to remove the folder '%1' and all its content? + Είστε βέβαιος ότι θέλετε να αφαιρέσετε τον φάκελο '%1' και όλα τα περιεχόμενά του; + + + No document selected! + Δεν επιλέχθηκε κανένα έγγραφο! + + + Open Supported File + Άνοιγμα υποστηριζόμενου αρχείου + + + Importing file %1... + Εισαγωγή αρχείου %1... + + + Failed to import file ... + Αποτυχία εισαγωγής αρχείου ... + + + Import all Images from Folder + Εισαγωγή όλων των εικόνων από φάκελο + + + Delete + Διαγραφή + + + Empty + Κενός + + + Trash + Κάδος ανακύκλωσης + + + Open Document + Άνοιγμα εγγράφου + + + Add all Images to Document + Προσθήκη όλων των εικόνων στο έγγραφο + + + All Images (%1) + Όλες οι εικονες (%1) + + + Selection does not contain any image files! + Η επιλογή δεν περιέχει αρχεία εικόνας! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Είστε βέβαιος ότι θέλετε να αφαιρέσετε %n σελίδα από το επιλεγμένο έγγραφο '%1'; + Είστε βέβαιος ότι θέλετε να αφαιρέσετε %n σελίδες από το επιλεγμένο έγγραφο '%1'; + + + + Folder does not contain any image files + Ο φάκελος δεν περιέχει αρχεία εικόνων + + + Untitled Documents + Έγγραφα χωρίς τίτλο + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + εικόνες + + + videos + βίντεο + + + objects + αντικείμενα + + + widgets + γραφικά συστατικά + + + All supported files (*.%1) + Όλα τα υποστηριζόμενα (%1) + + + File %1 saved + Το αρχείο %1 αποθηκεύτηκε + + + Inserting page %1 of %2 + Εισαγωγή σελίδας %1 από %2 + + + Import successful. + Επιτυχημένη εισαγωγή + + + Import of file %1 successful. + Επιτυχημένη εισαγωγή του αρχείου %1 + + + Importing file %1 + Εισαγωγή αρχείου %1 + + + + UBDocumentNavigator + + Page %0 + Σελίδα %0 + + + + UBDocumentReplaceDialog + + Accept + Αποδοχή + + + Cancel + Άκυρο + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Κάδος ανακύκλωσης + + + %1 pages copied + + %1 σελίδα αντιγράφηκε + %1 σελίδες αντιγράφηκαν + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 σελίδα αντιγράφηκε + %1 σελίδες αντιγράφηκαν + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Αντιγραφή σελίδας %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (αντιγραφή) + + + Copying page %1/%2 + Αντιγραφή σελίδας %1/%2 + + + %1 pages copied + + %1 σελίδα αντιγράφηκε + %1 σελίδες αντιγράφηκαν + + + + + UBDownloadWidget + + Downloading files + Λήψη αρχείων + + + Cancel + Άκυρο + + + + UBDraggableThumbnail + + Page %0 + Σελίδα %0 + + + + UBDraggableThumbnailView + + Page %0 + Σελίδα %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Εμφανίστηκαν προειδοποιήσεις κατά τη διάρκεια της εξαγωγής + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Εξαγωγή σε IWB + + + Export as IWB File + Εξαγωγή ως αρχείο IWB + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Export failed. + Αποτυχημένη εξαγωγή + + + + UBExportDocument + + Page + Σελίδα + + + Export as UBZ File + Εξαγωγή ως αρχείο UBZ + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Exporting %1 %2 of %3 + Εξαγωγή %1 %2 από %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Εξαγωγή ως αρχείο PDF + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Export to PDF + Εξαγωγή σε PDF + + + + UBExportPDF + + Export as PDF File + Εξαγωγή ως αρχείο PDF + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Exporting page %1 of %2 + Εξαγωγή σελίδας %1 από %2 + + + Export to PDF + Εξαγωγή σε PDF + + + + UBExportWeb + + Page + Σελίδα + + + Export as Web data + Εξαγωγή ως δεδομένα Web + + + Exporting document... + Εξαγωγή εγγράφου... + + + Export successful. + Επιτυχημένη εξαγωγή + + + Export failed. + Η εξαγωγή απέτυχε + + + Export to Web Browser + Εξαγωγή σε περιηγητή διαδικτύου + + + + UBFeatureProperties + + Add to page + Προσθήκη σε σελίδα + + + Set as background + Ορισμός ως παρασκήνιο + + + Add to library + Προσθήκη στη βιβλιοθήκη + + + Object informations + Πληροφορίες αντικειμένου + + + + UBFeaturesActionBar + + Add to favorites + Προσθήκη στα αγαπημένα + + + Share + Διαμοιρασμός + + + Search + Αναζήτηση + + + Delete + Διαγραφή + + + Back to folder + Επιστροφή στον φάκελο + + + Remove from favorites + Αφαίρεση από τα αγαπημένα + + + Create new folder + Δημουργία νέου φακέλου + + + Rescan file system + Επανασάρωση συστήματος αρχείων + + + + UBFeaturesController + + ImportedImage + Εισηγμένη εικόνα + + + Audios + Ήχοι + + + Movies + Ταινίες + + + Pictures + Εικόνες + + + Animations + Κινούμενα σχέδια + + + Interactivities + Διαδραστικά εφαρμογίδια + + + Applications + Εφαρμογές + + + Shapes + Σχήματα + + + Favorites + Αγαπημένα + + + Web search + Διαδικτυακή αναζήτηση + + + Trash + Κάδος ανακύκλωσης + + + + UBFeaturesNewFolderDialog + + Accept + Αποδοχή + + + Cancel + Άκυρο + + + Enter a new folder name + Εισαγωγή νέου ονόματος φακέλου + + + + UBFeaturesProgressInfo + + Loading + Φόρτωση + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Κλειδωμένο + + + Visible on Extended Screen + Ορατό σε Εκταταμένη Οθόνη + + + + UBGraphicsItemDelegate + + Locked + Κλειδωμένο + + + Visible on Extended Screen + Ορατό σε Εκταταμένη Οθόνη + + + Go to Content Source + Μετάβαση στην Πηγή Περιεχομένου + + + Set as background + Ορισμός ως παρασκήνιο + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Πληκτρολογήστε κείμενο> + + + + UBGraphicsTextItemDelegate + + Text Color + Χρώμα κειμένου + + + Editable + Επεξεργάσιμο + + + + UBGraphicsW3CWidgetItem + + Web + Διαδίκτυο + + + + UBGraphicsWidgetItem + + Loading ... + Φόρτωση... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Παγωμένο + + + Transform as Tool + Αλλαγή σε εργαλείο + + + + UBImportCFF + + Common File Format ( + Συνηθισμένη μορφή αρχείου ( + + + Importing file %1... + Εισαγωγή αρχείου %1... + + + Import of file %1 failed. + Η εισαγωγή του αρχείου %1 απέτυχε + + + Import successful. + Επιτυχημένη εισαγωγή + + + Import failed. + Αποτυχημένη εισαγωγή + + + + UBImportDocument + + Importing file %1... + Εισαγωγή αρχείου %1... + + + Import successful. + Επιτυχημένη εισαγωγή + + + Import of file %1 failed. + Η εισαγωγή του αρχείου %1 απέτυχε + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Μορφή εικόνας ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Η εισαγωγή του PDF απέτυχε + + + Importing page %1 of %2 + Εισαγωγή σελίδας %1 από %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Σφάλμα κατά τη δημοσίευση του βίντεο στο δίκτυο (%1) + + + Publishing to Intranet in progress %1 % + Δημοσίευση στο δικτυο σε εξέλιξη %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Δημοσίευση + + + + UBKeyboardPalette + + Enter + Εισαγωγή + + + + UBMainWindow + + Yes + Ναι + + + No + Όχι + + + Ok + Εντάξει + + + + UBMessagesDialog + + Close + Κλείσιμο + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Εισαγωγή ονόματος χρήστη και κωδικού πρόσβασης για το "%1" στο %2</qt> + + + Failed to log to Proxy + Αποτυχία καταχώρισης στον εξουσιοδοτημένο διακομιστή + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Σφάλματα SSL: + +%1 + +%2 + +Θέλετε να αγνοήσετε αυτά τα σφάλματα γι' αυτόν τον διακομιστή; + + + Yes + Ναι + + + No + Όχι + + + + UBOpenSankoreImporterWidget + + Cancel + Άκυρο + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (αντιγραφή) + + + Document Repository Loss + Απώλεια αποθετηρίου του εγγράφου + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Αγγλικά + + + Russian + Ρωσικά + + + German + Γερμανικά + + + French + Γαλλικά + + + Swiss French + Γαλλικά της Ελβετίας + + + + UBPodcastController + + Failed to start encoder ... + Αποτυχία έναρξης του κωδικοποιητή... + + + No Podcast encoder available ... + Δεν υπάρχει διαθέσιμος κωδικοποιητής βίντεο... + + + Part %1 + Τμήμα %1 + + + on your desktop ... + στην επιφάνεια εργασίας σας... + + + in folder %1 + στον φάκελο %1 + + + Podcast created %1 + Ποσοστό δημιουργίας βίντεο %1 + + + Podcast recording error (%1) + Σφάλμα εγγραφής βίντεο (%1) + + + Default Audio Input + Προκαθορισμένα δεδομένα εισόδου για τον ήχο + + + No Audio Recording + Χωρίς εγγραφή ήχου + + + Small + Μικρό + + + Medium + Μεσαίο + + + Full + Πλήρες + + + Publish to Intranet + Δημοσίευση στο δίκτυο + + + Publish to Youtube + Δημοσίευση στο Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + έκδοση: + + + Marker is pressure sensitive + Ο μαρκαδόρος είναι ευαίσθητος στην πίεση + + + + UBProxyLoginDlg + + Proxy Login + Σύνδεση στον εξουσιοδοτημένο διακομιστή + + + Username: + Όνομα χρήστη: + + + Password: + Κωδικός πρόσβασης: + + + + UBPublicationDlg + + Publish document on the web + Δημοσίευση εγγράφου στο Web + + + Title: + Τίτλος: + + + Description: + Περιγραφή: + + + Publish + Δημοσίευση + + + + UBSettings + + My Movies + Οι ταινίες μου + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Δημιουργία μικρογραφιών προεπισκόπησης... + + + %1 thumbnails generated ... + %1 μικρογραφίες δημιουργήθηκαν... + + + + UBThumbnailTextItem + + Page %0 + Σελίδα %0 + + + + UBToolsManager + + Mask + Σκίαση οθόνης + + + Ruler + Χάρακας + + + Compass + Πυξίδα + + + Protractor + Μοιρογνωμόνιο + + + Triangle + Τρίγωνο + + + Magnifier + Μεγεθυντικός φακός + + + Cache + Προβολέας + + + Axes + + + + + UBTrapFlashController + + Whole page + Ολόκληρη σελίδα + + + Web + Web + + + + UBUpdateDlg + + Document updater + Εργαλείο ενημέρωσης εγγράφου + + + files require an update. + αρχεία που χρειάζονται ενημέρωση + + + Backup path: + Διαδρομή αντιγράφου ασφαλείας: + + + Browse + Περιήγηση + + + Update + Ενημέρωση + + + Select a backup folder + Επιλογή φακέλου για τα αντίγραφα ασφαλείας + + + Files update successful! +Please reboot the application to access the updated documents. + Η ενημέρωση των αρχείων ήταν επιτυχημένη! +Παρακαλώ επανεκκινήστε την εφαρμογή για να έχετε πρόσβαση στα ενημερωμένα αρχεία. + + + An error occured during the update. The files have not been affected. + Συνέβη ένα σφάλμα κατά την ενημέρωση. Τα αρχεία δεν έχουν επηρεαστεί. + + + Files update results + Αποτελέσματα ενημέρωσης των αρχείων + + + Updating file + Ενημέρωση αρχείου + + + Please wait the import process will start soon... + Παρακαλώ περιμένετε. Η διαδικασία εισαγωγής θα ξεκινήσει σύντομα... + + + Remind me later + Υπενθύμιση αργότερα + + + + UBWebPluginWidget + + Loading... + Φόρτωση... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 κλήθηκε (μέθοδος=%1, κατάσταση=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Η πιστοποίηση του Youtube απέτυχε. + + + Error while uploading video to YouTube (%1) + Σφάλμα κατά τη φόρτωση του βίντεο στο Youtube (%1) + + + Upload to YouTube in progress %1 % + Φόρτωση στο Youtube σε εξέλιξη %1 % + + + + UBYouTubePublishingDialog + + Upload + Φόρτωση + + + Autos & Vehicles + Αυτοκίνητα & Οχήματα + + + Music + Μουσική + + + Pets & Animals + Κατοικίδια & Ζώα + + + Sports + Αθλήματα + + + Travel & Events + Ταξίδια & Εκδηλώσεις + + + Gaming + Παιχνίδια + + + Comedy + Κωμωδία + + + People & Blogs + Άνθρωποι & Ιστολόγια + + + News & Politics + Νέα & Πολιτική + + + Entertainment + Διασκέδαση - ψυχαγωγία + + + Education + Εκπαίδευση + + + Howto & Style + Τεχνικές & Στιλ + + + Nonprofits & Activism + Μη κερδοσκοπικές δραστηριότητες & Ακτιβισμός + + + Science & Technology + Επιστήμη & Τεχνολογία + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Καθαρισμός + + + + WBDownloadItem + + Save File + Αποθήκευση αρχείου + + + Download canceled: %1 + Η λήψη ακυρώθηκε: %1 + + + Error opening saved file: %1 + Σφάλμα κατά το άνοιγμα του αποθηκευμένου αρχείου: %1 + + + Error saving: %1 + Σφάλμα κατά την αποθήκευση:%1 + + + Network Error: %1 + Σφάλμα στο δίκτυο: %1 + + + seconds + δευτερόλεπτα + + + minutes + λεπτά + + + - %4 %5 remaining + - %4 %5 απομένουν + + + %1 of %2 (%3/sec) %4 + %1 από %2 (%3/δευτ) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 από %2 - Διακόπηκε + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Λήψη + + + %1 Downloads + always >= 2 + %1 Λήψεις + + + + WBHistoryModel + + Title + Τίτλος + + + Address + Διεύθυνση + + + + WBHistoryTreeModel + + Earlier Today + Νωρίτερα σήμερα + + + %1 items + %1 αντικείμενα + + + + WBSearchLineEdit + + Search + Αναζήτηση + + + + WBTabBar + + New &Tab + Νέο & Καρτέλα + + + Clone Tab + Κλωνοποίηση καρτέλας + + + &Close Tab + &Κλείσιμο καρτέλας + + + Close &Other Tabs + Κλείσιμο & Άλλες καρτέλες + + + Reload Tab + Επαναφόρτωση καρτέλας + + + Reload All Tabs + Επαναφόρτωση όλων των καρτελών + + + + WBTabWidget + + Recently Closed Tabs + Πρόσφατα κλεισμένες καρτέλες + + + (Untitled) + (Χωρίς τίτλο) + + + + WBToolbarSearch + + Search + Αναζήτηση + + + No Recent Searches + Δεν υπάρχουν πρόσφατες αναζητήσεις + + + Recent Searches + Πρόσφατες αναζητήσεις + + + Clear Recent Searches + Καθαρισμός πρόσφατων αναζητήσεων + + + + WBWebPage + + Download + Λήψη + + + Add to Current Document + Προσθήκη στο τρέχον έγγραφο + + + PDF + PDF + + + Error loading page: %1 + Σφάλμα φόρτωσης σελίδας: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Άνοιγμα σε νέα καρτέλα + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Δημοσίευση βίντεο στο YouTube + + + Title + Τίτλος + + + Description + Περιγραφή + + + Keywords + Λέξεις κλειδιά + + + Category + Κατηγορία + + + YouTube Username + Όνομα χρήστη στο Youtube + + + YouTube Password + Κωδικός πρόσβασης στο Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Κάνοντας κλικ στο πλήκτρο 'Φόρτωση', βεβαιώνετε ότι είστε κάτοχος των δικαιωμάτων του περιεχομένου ή ότι έχετε εξουσιοδοτηθεί από τον ιδιοκτήτη του να το δημοσιεύσετε στο Youtube, ή διαφορετικά συμφωνείτε με τους Όρους Παροχής Υπηρεσιών του Youtube που βρίσκονται στη διεύθυνση </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + Διαφάνεια + + + On Light Background + Σε φωτεινό παρασκήνιο + + + On Dark Background + Σε σκοτεινό παρασκήνιο + + + Line Width + Πλάτος γραμμής + + + Medium + Μέτριο + + + Strong + Δυνατό + + + Fine + Κανονικό + + + Pen is Pressure Sensitive + Η πένα είναι ευαίσθητη στην πίεση + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Διάλογος + + + Title + Τίτλος + + + E-mail + E-mail + + + Author + Δημιουργός + + + Description + Περιγραφή + + + + documentPublishingDialog + + Dialog + Διάλογος + + + Title + Τίτλος + + + E-mail + E-mail + + + Author + Δημιουργός + + + Description + Περιγραφή + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Ρυθμίσεις + + + Default Settings + Προκαθορισμένες ρυθμίσεις + + + Close + Κλείσιμο + + + Display + Εμφάνιση + + + Show Page with External Browser + Εμφάνιση της σελίδας με εξωτερικό περιηγητή + + + Virtual Keyboard + Εικονικό πληκτρολόγιο + + + Keyboard button size: + Μέγεθος πλήκτρων πληκτρολογίου: + + + Positioned at the Top (recommended for tablets) + Τοποθετημένη στο επάνω μέρος (ενδείκνυται για tablets) + + + Positioned at the Bottom (recommended for white boards) + Τοποθετημένη στο κάτω μέρος (ενδείκνυται για διαδραστικούς πίνακες) + + + Display Text Under Button + Εμφάνιση κειμένου κάτω από το πλήκτρο + + + Stylus Palette + Παλέτα εργαλείων + + + Horizontal + Οριζόντια + + + Vertical + Κάθετα + + + About + Σχετικά + + + Software Update + Ενημέρωση λογισμικού + + + Check software update at launch + Έλεγχος για ενημέρωση του λογισμικού κατά το άνοιγμα της εφαρμογής + + + Internet + Διαδίκτυο + + + Home Page: + Αρχική σελίδα + + + Toolbar + Εργαλειοθήκη + + + Pen + Πένα + + + Marker + Μαρκαδόρος + + + version : … + έκδοση: ... + + + Licences + Άδειες + + + Network + Δίκτυο + + + Show internal web page content on secondary screen or projector + Εμφάνιση περιεχομένου εσωτερικής ιστοσελίδας στη δευτερεύουσα οθόνη ή τον προτζέκτορα + + + Multi display + Πολλαπλές οθόνες + + + Swap control display and view display + Αλλαγή εμφάνισης ελέγχου και εμφάνισης προβολής + + + Mode + Λειτουργία + + + Mode to start in: + Λειτουργια κατά την έναρξη: + + + Board + Εφαρμογή + + + Desktop + Επιφάνεια εργασίας + + + Proxy User: + Χρήστης εξουσιοδοτημένου διακομιστή: + + + Pass: + Κωδικός πρόσβασης: + + + Credits + Εύσημα + + + On Dark Background + Σε σκοτεινό παρασκήνιο + + + Opacity + Διαφάνεια + + + On Light Background + Σε φωτεινό παρασκήνιο + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Λήψη αντικειμένου flash + + + Select a flash to trap + Επιλογή αντικειμένου flash για λήψη + + + about:blank + about:blank + + + Application name + Όνομα εφαρμογής + + + Create Application + Δημιουργία εφαρμογής + + + diff --git a/resources/i18n/OpenBoard_en.ts b/resources/i18n/OpenBoard_en.ts new file mode 100644 index 0000000..348265e --- /dev/null +++ b/resources/i18n/OpenBoard_en.ts @@ -0,0 +1,2738 @@ + + + + + BlackoutWidget + + Click to Return to Application + + + + + DownloadDialog + + Downloads + + + + Clean Up + + + + 0 Items + + + + + DownloadItem + + Form + + + + Filename + + + + Try Again + + + + Stop + + + + Open + + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + + + + Title + + + + Description + + + + Author + + + + + MainWindow + + OpenBoard + + + + Board + + + + Web + + + + Documents + + + + Stylus + + + + Ctrl+T + + + + Backgrounds + + + + Change Background + + + + Undo + + + + Ctrl+Z + + + + Redo + + + + Ctrl+Y + + + + Previous + + + + Previous Page + + + + PgUp + + + + Next + + + + Next Page + + + + PgDown + + + + Manage Documents + + + + Ctrl+D + + + + Web Browsing + + + + Ctrl+W + + + + Line + + + + Small Line + + + + Medium Line + + + + Large Line + + + + Quit + + + + Quit OpenBoard + + + + Eraser + + + + Medium Eraser + + + + Large Eraser + + + + Back + + + + Left + + + + Forward + + + + Right + + + + Reload + + + + Reload Current Page + + + + Home + + + + Load Home Page + + + + Bookmarks + + + + Show Bookmarks + + + + Bookmark + + + + Add Bookmark + + + + Display Board + + + + Ctrl+B + + + + Erase + + + + Erase Content + + + + Preferences + + + + Display Preferences + + + + Library + + + + Show Library + + + + Ctrl+L + + + + Show Desktop + + + + Show Computer Desktop + + + + Ctrl+Shift+H + + + + Bigger + + + + Zoom In + + + + Ctrl++ + + + + Smaller + + + + Zoom Out + + + + Ctrl+- + + + + New Folder + + + + Create a New Folder + + + + New Document + + + + Create a New Document + + + + Import + + + + Import a Document + + + + Export + + + + Export a Document + + + + Open in Board + + + + Open Page in Board + + + + Ctrl+O + + + + Duplicate + + + + Duplicate Selected Content + + + + Delete + + + + Delete Selected Content + + + + Del + + + + Add to Working Document + + + + Add Selected Content to Open Document + + + + Add + + + + Add Content to Document + + + + Rename + + + + Rename Content + + + + Tools + + + + Display Tools + + + + Multi Screen + + + + Wide Size (16/9) + + + + Use Document Wide Size (16/9) + + + + Regular Size (4/3) + + + + Use Document Regular Size (4/3) + + + + Custom Size + + + + Use Custom Document Size + + + + Stop Loading + + + + Stop Loading Web Page + + + + Cut + + + + Copy + + + + Paste + + + + Sleep + + + + Put Presentation to Sleep + + + + Virtual Keyboard + + + + Display Virtual Keyboard + + + + Plain Light Background + + + + Light + + + + Grid Light Background + + + + Ruled Light Background + + + + Plain Dark Background + + + + Dark + + + + Grid Dark Background + + + + Ruled Dark Background + + + + Podcast + + + + Record Presentation to Video + + + + Record + + + + Start Screen Recording + + + + Erase Items + + + + Erase All Items + + + + Erase Annotations + + + + Erase All Annotations + + + + Clear Page + + + + Clear All Elements + + + + Pen + + + + Annotate Document + + + + Ctrl+I + + + + Erase Annotation + + + + Ctrl+E + + + + Marker + + + + Highlight + + + + Ctrl+M + + + + Selector + + + + Select And Modify Objects + + + + Ctrl+F + + + + Hand + + + + Scroll Page + + + + Laser Pointer + + + + Virtual Laser Pointer + + + + Ctrl+G + + + + Draw Lines + + + + Ctrl+J + + + + Text + + + + Write Text + + + + Ctrl+K + + + + Capture + + + + Capture Part of the Screen + + + + Add To Current Page + + + + Add Item To Current Page + + + + Add To New Page + + + + Add Item To New Page + + + + Add To Library + + + + Add Item To Library + + + + Pages + + + + Create a New Page + + + + New Page + + + + Duplicate Page + + + + Duplicate the Current Page + + + + Import Page + + + + Import an External Page + + + + Pause + + + + Pause Podcast Recording + + + + Podcast Config + + + + Configure Podcast Recording + + + + Flash Trap + + + + Trap Flash Content + + + + Web Trap + + + + Trap Web Content + + + + Custom Capture + + + + Window Capture + + + + Capture a Window + + + + Embed Web Content + + + + Capture Embeddable Web Content + + + + Show on Display + + + + Show Main Screen on Display Screen + + + + Erase all Annotations + + + + eduMedia + + + + Import eduMedia simulation + + + + Check Update + + + + Hide OpenBoard + + + + Hide OpenBoard Application + + + + Ctrl+H + + + + Play + + + + Interact with items + + + + Erase Background + + + + Remove the backgound + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + + + + Username: + + + + Password: + + + + + ProxyDialog + + Proxy Authentication + + + + Connect to Proxy + + + + Username: + + + + Password: + + + + Save username and password for future use + + + + + QObject + + Element ID = + + + + Content is not supported in destination format. + + + + Remove Page + + + + Are you sure you want to remove 1 page from the selected document '%0'? + + + + + UBApplication + + Page Size + + + + Podcast + + + + + UBApplicationController + + Web + + + + Update available + + + + New update available, would you go to the web page ? + + + + Update + + + + No update available + + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Group + + + + Ungroup + + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Page %1 deleted + + + + Downloading content %1 failed + + + + Download finished + + + + Add file operation failed: file copying error + + + + Unknown tool type %1 + + + + Unknown content type %1 + + + + Add Item + + + + All Supported (%1) + + + + Color + + + + + UBBoardPaletteManager + + CapturedImage + + + + Error Adding Image to Library + + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + + + + Color: + + + + Shape: + + + + Size: + + + + Close + + + + + UBDesktopPalette + + Show OpenBoard + + + + Capture Part of the Screen + + + + Capture the Screen + + + + Show the stylus palette + + + + Show Board on Secondary Screen + + + + Show Desktop on Secondary Screen + + + + + UBDocumentController + + Trash + + + + Untitled Documents + + + + New Folder + + + + Add Folder of Images + + + + Add Images + + + + Add Pages from File + + + + duplicated %1 page + duplicated %1 pages + + + + + + Duplicating Document %1 + + + + Document %1 copied + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Open Supported File + + + + Importing file %1... + + + + Failed to import file ... + + + + Import all Images from Folder + + + + Folder does not contain any image files + + + + Open Document + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Add all Images to Document + + + + All Images (%1) + + + + Selection does not contain any image files! + + + + Delete + + + + Page %1 + + + + Title page + + + + Empty + + + + + UBDocumentManager + + images + + + + videos + + + + objects + + + + widgets + + + + All supported files (*.%1) + + + + Inserting page %1 of %2 + + + + Import successful. + + + + Importing file %1 + + + + Import of file %1 successful. + + + + File %1 saved + + + + + UBDocumentNavigator + + Page %0 + + + + + UBDocumentReplaceDialog + + Accept + + + + Replace + + + + Cancel + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + My documents + + + + Trash + + + + %1 pages copied + + + + + + + UBDocumentTreeView + + %1 pages copied + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + + + + + UBDownloadWidget + + Downloading files + + + + Cancel + + + + + UBDraggableThumbnail + + Page %0 + + + + + UBDraggableThumbnailView + + Page %0 + + + + + UBExportAdaptor + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + Warnings during export was appeared + + + + + UBExportCFF + + Export to IWB + + + + Export as IWB File + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + + UBExportDocument + + Page + + + + Export as UBZ File + + + + Exporting %1 %2 of %3 + + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + + + + Export to PDF + + + + + UBExportPDF + + Export as PDF File + + + + Exporting page %1 of %2 + + + + Export to PDF + + + + + UBExportWeb + + Page + + + + Export as Web data + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + Export to Web Browser + + + + + UBFeatureProperties + + Add to page + + + + Add to library + + + + Object informations + + + + + UBFeaturesActionBar + + Add to favorites + + + + Share + + + + Search + + + + Rescan file system + + + + Delete + + + + Back to folder + + + + Remove from favorites + + + + Create new folder + + + + + UBFeaturesController + + Audios + + + + Movies + + + + Pictures + + + + Interactivities + + + + Applications + + + + Shapes + + + + Favorites + + + + Web search + + + + Trash + + + + ImportedImage + + + + + UBFeaturesNewFolderDialog + + Accept + + + + Cancel + + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + + + + + UBGraphicsGroupContainerItemDelegate + + Locked + + + + Visible on Extended Screen + + + + + UBGraphicsItemDelegate + + Locked + + + + Visible on Extended Screen + + + + Set as background + + + + Go to Content Source + + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + + + + + UBGraphicsTextItemDelegate + + Text Color + + + + Editable + + + + + UBGraphicsW3CWidgetItem + + Web + + + + + UBGraphicsWidgetItem + + Loading ... + + + + + UBGraphicsWidgetItemDelegate + + Frozen + + + + Transform as Tool + + + + + UBImportCFF + + Common File Format ( + + + + Importing file %1... + + + + Import of file %1 failed. + + + + Import successful. + + + + Import failed. + + + + + UBImportDocument + + OpenBoard (*.ubz) + + + + Importing file %1... + + + + Import of file %1 failed. + + + + Import successful. + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + + + + + UBImportPDF + + Portable Document Format (*.pdf) + + + + PDF import failed. + + + + Importing page %1 of %2 + + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + + + + Publishing to Intranet in progress %1 % + + + + + UBIntranetPodcastPublishingDialog + + Publish + + + + + UBKeyboardPalette + + Enter + + + + + UBMainWindow + + Yes + + + + No + + + + Ok + + + + + UBMessagesDialog + + Close + + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + + + + Failed to log to Proxy + + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + + + + Yes + + + + No + + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Cancel + + + + Proceed + + + + + UBPersistenceManager + + (copy) + + + + Document Repository Loss + + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + + + + Russian + + + + German + + + + French + + + + Swiss French + + + + + UBPodcastController + + OpenBoard Cast + + + + Failed to start encoder ... + + + + No Podcast encoder available ... + + + + Part %1 + + + + on your desktop ... + + + + in folder %1 + + + + Podcast created %1 + + + + Podcast recording error (%1) + + + + Default Audio Input + + + + No Audio Recording + + + + Small + + + + Medium + + + + Full + + + + Publish to Intranet + + + + Publish to Youtube + + + + + UBPreferencesController + + version: + + + + Marker is pressure sensitive + + + + + UBSettings + + My Movies + + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + + + + %1 thumbnails generated ... + + + + + UBThumbnailTextItem + + Page %0 + + + + + UBToolsManager + + Mask + + + + Ruler + + + + Compass + + + + Protractor + + + + Triangle + + + + Magnifier + + + + Cache + + + + Axes + + + + + UBTrapFlashController + + Whole page + + + + Web + + + + + UBUpdateDlg + + Document updater + + + + files require an update. + + + + Backup path: + + + + Browse + + + + Update + + + + Remind me later + + + + Select a backup folder + + + + Please wait the import process will start soon... + + + + Files update successful! +Please reboot the application to access the updated documents. + + + + An error occured during the update. The files have not been affected. + + + + Files update results + + + + Updating file + + + + + UBWebPluginWidget + + Loading... + + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + + + + + UBYouTubePublisher + + YouTube authentication failed. + + + + Error while uploading video to YouTube (%1) + + + + Upload to YouTube in progress %1 % + + + + + UBYouTubePublishingDialog + + Upload + + + + Autos & Vehicles + + + + Music + + + + Pets & Animals + + + + Sports + + + + Travel & Events + + + + Gaming + + + + Comedy + + + + People & Blogs + + + + News & Politics + + + + Entertainment + + + + Education + + + + Howto & Style + + + + Nonprofits & Activism + + + + Science & Technology + + + + + UBZoomPalette + + %1 x + + + + + WBClearButton + + Clear + + + + + WBDownloadItem + + Save File + + + + Download canceled: %1 + + + + Error opening saved file: %1 + + + + Error saving: %1 + + + + Network Error: %1 + + + + seconds + + + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + ? + unknown file size + + + + %1 of %2 - Stopped + + + + bytes + + + + KB + + + + MB + + + + + WBDownloadManager + + 1 Download + + + + %1 Downloads + always >= 2 + + + + + WBHistoryModel + + Title + + + + Address + + + + + WBHistoryTreeModel + + Earlier Today + + + + %1 items + + + + + WBSearchLineEdit + + Search + + + + + WBTabBar + + New &Tab + + + + Clone Tab + + + + &Close Tab + + + + Close &Other Tabs + + + + Reload Tab + + + + Reload All Tabs + + + + + WBTabWidget + + Recently Closed Tabs + + + + (Untitled) + + + + + WBToolbarSearch + + Search + + + + No Recent Searches + + + + Recent Searches + + + + Clear Recent Searches + + + + + WBWebPage + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + Download + + + + Add to Current Document + + + + PDF + + + + Error loading page: %1 + + + + + WBWebView + + Open in New Tab + + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + + + + Title + + + + Description + + + + Keywords + + + + OpenBoard + + + + Category + + + + YouTube Username + + + + YouTube Password + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + Restore credentials on reboot + + + + + brushProperties + + Pen is Pressure Sensitive + + + + Opacity + + + + On Light Background + + + + On Dark Background + + + + Line Width + + + + Medium + + + + Strong + + + + Fine + + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + + + + Title + + + + E-mail + + + + Author + + + + Description + + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + + + + Default Settings + + + + Close + + + + Display + + + + Multi display + + + + Swap control display and view display + + + + Show internal web page content on secondary screen or projector + + + + Swap first and second view displays + + + + Toolbar + + + + Positioned at the Top (recommended for tablets) + + + + Positioned at the Bottom (recommended for white boards) + + + + Display Text Under Button + + + + Stylus Palette + + + + Horizontal + + + + Vertical + + + + Mode + + + + Mode to start in: + + + + Board + + + + Desktop + + + + Virtual Keyboard + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + On Light Background + + + + Opacity + + + + On Dark Background + + + + Pen + + + + Marker + + + + Network + + + + Internet + + + + Show Page with External Browser + + + + Home Page: + + + + Proxy User: + + + + Pass: + + + + Licences + + + + Credits + + + + About + + + + Software Update + + + + Check software update at launch + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + version : … + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + + + + Select a flash to trap + + + + about:blank + + + + Application name + + + + Create Application + + + + diff --git a/resources/i18n/OpenBoard_en_UK.ts b/resources/i18n/OpenBoard_en_UK.ts new file mode 100644 index 0000000..348265e --- /dev/null +++ b/resources/i18n/OpenBoard_en_UK.ts @@ -0,0 +1,2738 @@ + + + + + BlackoutWidget + + Click to Return to Application + + + + + DownloadDialog + + Downloads + + + + Clean Up + + + + 0 Items + + + + + DownloadItem + + Form + + + + Filename + + + + Try Again + + + + Stop + + + + Open + + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + + + + Title + + + + Description + + + + Author + + + + + MainWindow + + OpenBoard + + + + Board + + + + Web + + + + Documents + + + + Stylus + + + + Ctrl+T + + + + Backgrounds + + + + Change Background + + + + Undo + + + + Ctrl+Z + + + + Redo + + + + Ctrl+Y + + + + Previous + + + + Previous Page + + + + PgUp + + + + Next + + + + Next Page + + + + PgDown + + + + Manage Documents + + + + Ctrl+D + + + + Web Browsing + + + + Ctrl+W + + + + Line + + + + Small Line + + + + Medium Line + + + + Large Line + + + + Quit + + + + Quit OpenBoard + + + + Eraser + + + + Medium Eraser + + + + Large Eraser + + + + Back + + + + Left + + + + Forward + + + + Right + + + + Reload + + + + Reload Current Page + + + + Home + + + + Load Home Page + + + + Bookmarks + + + + Show Bookmarks + + + + Bookmark + + + + Add Bookmark + + + + Display Board + + + + Ctrl+B + + + + Erase + + + + Erase Content + + + + Preferences + + + + Display Preferences + + + + Library + + + + Show Library + + + + Ctrl+L + + + + Show Desktop + + + + Show Computer Desktop + + + + Ctrl+Shift+H + + + + Bigger + + + + Zoom In + + + + Ctrl++ + + + + Smaller + + + + Zoom Out + + + + Ctrl+- + + + + New Folder + + + + Create a New Folder + + + + New Document + + + + Create a New Document + + + + Import + + + + Import a Document + + + + Export + + + + Export a Document + + + + Open in Board + + + + Open Page in Board + + + + Ctrl+O + + + + Duplicate + + + + Duplicate Selected Content + + + + Delete + + + + Delete Selected Content + + + + Del + + + + Add to Working Document + + + + Add Selected Content to Open Document + + + + Add + + + + Add Content to Document + + + + Rename + + + + Rename Content + + + + Tools + + + + Display Tools + + + + Multi Screen + + + + Wide Size (16/9) + + + + Use Document Wide Size (16/9) + + + + Regular Size (4/3) + + + + Use Document Regular Size (4/3) + + + + Custom Size + + + + Use Custom Document Size + + + + Stop Loading + + + + Stop Loading Web Page + + + + Cut + + + + Copy + + + + Paste + + + + Sleep + + + + Put Presentation to Sleep + + + + Virtual Keyboard + + + + Display Virtual Keyboard + + + + Plain Light Background + + + + Light + + + + Grid Light Background + + + + Ruled Light Background + + + + Plain Dark Background + + + + Dark + + + + Grid Dark Background + + + + Ruled Dark Background + + + + Podcast + + + + Record Presentation to Video + + + + Record + + + + Start Screen Recording + + + + Erase Items + + + + Erase All Items + + + + Erase Annotations + + + + Erase All Annotations + + + + Clear Page + + + + Clear All Elements + + + + Pen + + + + Annotate Document + + + + Ctrl+I + + + + Erase Annotation + + + + Ctrl+E + + + + Marker + + + + Highlight + + + + Ctrl+M + + + + Selector + + + + Select And Modify Objects + + + + Ctrl+F + + + + Hand + + + + Scroll Page + + + + Laser Pointer + + + + Virtual Laser Pointer + + + + Ctrl+G + + + + Draw Lines + + + + Ctrl+J + + + + Text + + + + Write Text + + + + Ctrl+K + + + + Capture + + + + Capture Part of the Screen + + + + Add To Current Page + + + + Add Item To Current Page + + + + Add To New Page + + + + Add Item To New Page + + + + Add To Library + + + + Add Item To Library + + + + Pages + + + + Create a New Page + + + + New Page + + + + Duplicate Page + + + + Duplicate the Current Page + + + + Import Page + + + + Import an External Page + + + + Pause + + + + Pause Podcast Recording + + + + Podcast Config + + + + Configure Podcast Recording + + + + Flash Trap + + + + Trap Flash Content + + + + Web Trap + + + + Trap Web Content + + + + Custom Capture + + + + Window Capture + + + + Capture a Window + + + + Embed Web Content + + + + Capture Embeddable Web Content + + + + Show on Display + + + + Show Main Screen on Display Screen + + + + Erase all Annotations + + + + eduMedia + + + + Import eduMedia simulation + + + + Check Update + + + + Hide OpenBoard + + + + Hide OpenBoard Application + + + + Ctrl+H + + + + Play + + + + Interact with items + + + + Erase Background + + + + Remove the backgound + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + + + + Username: + + + + Password: + + + + + ProxyDialog + + Proxy Authentication + + + + Connect to Proxy + + + + Username: + + + + Password: + + + + Save username and password for future use + + + + + QObject + + Element ID = + + + + Content is not supported in destination format. + + + + Remove Page + + + + Are you sure you want to remove 1 page from the selected document '%0'? + + + + + UBApplication + + Page Size + + + + Podcast + + + + + UBApplicationController + + Web + + + + Update available + + + + New update available, would you go to the web page ? + + + + Update + + + + No update available + + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Group + + + + Ungroup + + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Page %1 deleted + + + + Downloading content %1 failed + + + + Download finished + + + + Add file operation failed: file copying error + + + + Unknown tool type %1 + + + + Unknown content type %1 + + + + Add Item + + + + All Supported (%1) + + + + Color + + + + + UBBoardPaletteManager + + CapturedImage + + + + Error Adding Image to Library + + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + + + + Color: + + + + Shape: + + + + Size: + + + + Close + + + + + UBDesktopPalette + + Show OpenBoard + + + + Capture Part of the Screen + + + + Capture the Screen + + + + Show the stylus palette + + + + Show Board on Secondary Screen + + + + Show Desktop on Secondary Screen + + + + + UBDocumentController + + Trash + + + + Untitled Documents + + + + New Folder + + + + Add Folder of Images + + + + Add Images + + + + Add Pages from File + + + + duplicated %1 page + duplicated %1 pages + + + + + + Duplicating Document %1 + + + + Document %1 copied + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Open Supported File + + + + Importing file %1... + + + + Failed to import file ... + + + + Import all Images from Folder + + + + Folder does not contain any image files + + + + Open Document + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Add all Images to Document + + + + All Images (%1) + + + + Selection does not contain any image files! + + + + Delete + + + + Page %1 + + + + Title page + + + + Empty + + + + + UBDocumentManager + + images + + + + videos + + + + objects + + + + widgets + + + + All supported files (*.%1) + + + + Inserting page %1 of %2 + + + + Import successful. + + + + Importing file %1 + + + + Import of file %1 successful. + + + + File %1 saved + + + + + UBDocumentNavigator + + Page %0 + + + + + UBDocumentReplaceDialog + + Accept + + + + Replace + + + + Cancel + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + My documents + + + + Trash + + + + %1 pages copied + + + + + + + UBDocumentTreeView + + %1 pages copied + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + + + + + UBDownloadWidget + + Downloading files + + + + Cancel + + + + + UBDraggableThumbnail + + Page %0 + + + + + UBDraggableThumbnailView + + Page %0 + + + + + UBExportAdaptor + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + Warnings during export was appeared + + + + + UBExportCFF + + Export to IWB + + + + Export as IWB File + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + + UBExportDocument + + Page + + + + Export as UBZ File + + + + Exporting %1 %2 of %3 + + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + + + + Export to PDF + + + + + UBExportPDF + + Export as PDF File + + + + Exporting page %1 of %2 + + + + Export to PDF + + + + + UBExportWeb + + Page + + + + Export as Web data + + + + Exporting document... + + + + Export successful. + + + + Export failed. + + + + Export to Web Browser + + + + + UBFeatureProperties + + Add to page + + + + Add to library + + + + Object informations + + + + + UBFeaturesActionBar + + Add to favorites + + + + Share + + + + Search + + + + Rescan file system + + + + Delete + + + + Back to folder + + + + Remove from favorites + + + + Create new folder + + + + + UBFeaturesController + + Audios + + + + Movies + + + + Pictures + + + + Interactivities + + + + Applications + + + + Shapes + + + + Favorites + + + + Web search + + + + Trash + + + + ImportedImage + + + + + UBFeaturesNewFolderDialog + + Accept + + + + Cancel + + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + + + + + UBGraphicsGroupContainerItemDelegate + + Locked + + + + Visible on Extended Screen + + + + + UBGraphicsItemDelegate + + Locked + + + + Visible on Extended Screen + + + + Set as background + + + + Go to Content Source + + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + + + + + UBGraphicsTextItemDelegate + + Text Color + + + + Editable + + + + + UBGraphicsW3CWidgetItem + + Web + + + + + UBGraphicsWidgetItem + + Loading ... + + + + + UBGraphicsWidgetItemDelegate + + Frozen + + + + Transform as Tool + + + + + UBImportCFF + + Common File Format ( + + + + Importing file %1... + + + + Import of file %1 failed. + + + + Import successful. + + + + Import failed. + + + + + UBImportDocument + + OpenBoard (*.ubz) + + + + Importing file %1... + + + + Import of file %1 failed. + + + + Import successful. + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + + + + + UBImportPDF + + Portable Document Format (*.pdf) + + + + PDF import failed. + + + + Importing page %1 of %2 + + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + + + + Publishing to Intranet in progress %1 % + + + + + UBIntranetPodcastPublishingDialog + + Publish + + + + + UBKeyboardPalette + + Enter + + + + + UBMainWindow + + Yes + + + + No + + + + Ok + + + + + UBMessagesDialog + + Close + + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + + + + Failed to log to Proxy + + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + + + + Yes + + + + No + + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Cancel + + + + Proceed + + + + + UBPersistenceManager + + (copy) + + + + Document Repository Loss + + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + + + + Russian + + + + German + + + + French + + + + Swiss French + + + + + UBPodcastController + + OpenBoard Cast + + + + Failed to start encoder ... + + + + No Podcast encoder available ... + + + + Part %1 + + + + on your desktop ... + + + + in folder %1 + + + + Podcast created %1 + + + + Podcast recording error (%1) + + + + Default Audio Input + + + + No Audio Recording + + + + Small + + + + Medium + + + + Full + + + + Publish to Intranet + + + + Publish to Youtube + + + + + UBPreferencesController + + version: + + + + Marker is pressure sensitive + + + + + UBSettings + + My Movies + + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + + + + %1 thumbnails generated ... + + + + + UBThumbnailTextItem + + Page %0 + + + + + UBToolsManager + + Mask + + + + Ruler + + + + Compass + + + + Protractor + + + + Triangle + + + + Magnifier + + + + Cache + + + + Axes + + + + + UBTrapFlashController + + Whole page + + + + Web + + + + + UBUpdateDlg + + Document updater + + + + files require an update. + + + + Backup path: + + + + Browse + + + + Update + + + + Remind me later + + + + Select a backup folder + + + + Please wait the import process will start soon... + + + + Files update successful! +Please reboot the application to access the updated documents. + + + + An error occured during the update. The files have not been affected. + + + + Files update results + + + + Updating file + + + + + UBWebPluginWidget + + Loading... + + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + + + + + UBYouTubePublisher + + YouTube authentication failed. + + + + Error while uploading video to YouTube (%1) + + + + Upload to YouTube in progress %1 % + + + + + UBYouTubePublishingDialog + + Upload + + + + Autos & Vehicles + + + + Music + + + + Pets & Animals + + + + Sports + + + + Travel & Events + + + + Gaming + + + + Comedy + + + + People & Blogs + + + + News & Politics + + + + Entertainment + + + + Education + + + + Howto & Style + + + + Nonprofits & Activism + + + + Science & Technology + + + + + UBZoomPalette + + %1 x + + + + + WBClearButton + + Clear + + + + + WBDownloadItem + + Save File + + + + Download canceled: %1 + + + + Error opening saved file: %1 + + + + Error saving: %1 + + + + Network Error: %1 + + + + seconds + + + + minutes + + + + - %4 %5 remaining + + + + %1 of %2 (%3/sec) %4 + + + + ? + unknown file size + + + + %1 of %2 - Stopped + + + + bytes + + + + KB + + + + MB + + + + + WBDownloadManager + + 1 Download + + + + %1 Downloads + always >= 2 + + + + + WBHistoryModel + + Title + + + + Address + + + + + WBHistoryTreeModel + + Earlier Today + + + + %1 items + + + + + WBSearchLineEdit + + Search + + + + + WBTabBar + + New &Tab + + + + Clone Tab + + + + &Close Tab + + + + Close &Other Tabs + + + + Reload Tab + + + + Reload All Tabs + + + + + WBTabWidget + + Recently Closed Tabs + + + + (Untitled) + + + + + WBToolbarSearch + + Search + + + + No Recent Searches + + + + Recent Searches + + + + Clear Recent Searches + + + + + WBWebPage + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + Download + + + + Add to Current Document + + + + PDF + + + + Error loading page: %1 + + + + + WBWebView + + Open in New Tab + + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + + + + Title + + + + Description + + + + Keywords + + + + OpenBoard + + + + Category + + + + YouTube Username + + + + YouTube Password + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + Restore credentials on reboot + + + + + brushProperties + + Pen is Pressure Sensitive + + + + Opacity + + + + On Light Background + + + + On Dark Background + + + + Line Width + + + + Medium + + + + Strong + + + + Fine + + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + + + + Title + + + + E-mail + + + + Author + + + + Description + + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + + + + Default Settings + + + + Close + + + + Display + + + + Multi display + + + + Swap control display and view display + + + + Show internal web page content on secondary screen or projector + + + + Swap first and second view displays + + + + Toolbar + + + + Positioned at the Top (recommended for tablets) + + + + Positioned at the Bottom (recommended for white boards) + + + + Display Text Under Button + + + + Stylus Palette + + + + Horizontal + + + + Vertical + + + + Mode + + + + Mode to start in: + + + + Board + + + + Desktop + + + + Virtual Keyboard + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + On Light Background + + + + Opacity + + + + On Dark Background + + + + Pen + + + + Marker + + + + Network + + + + Internet + + + + Show Page with External Browser + + + + Home Page: + + + + Proxy User: + + + + Pass: + + + + Licences + + + + Credits + + + + About + + + + Software Update + + + + Check software update at launch + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + version : … + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + + + + Select a flash to trap + + + + about:blank + + + + Application name + + + + Create Application + + + + diff --git a/resources/i18n/OpenBoard_es.ts b/resources/i18n/OpenBoard_es.ts new file mode 100644 index 0000000..f3543d1 --- /dev/null +++ b/resources/i18n/OpenBoard_es.ts @@ -0,0 +1,2942 @@ + + + + + BlackoutWidget + + Click to Return to Application + Haga clic para regresar a la aplicación + + + + DownloadDialog + + Downloads + Descargas + + + Clean Up + Limpiar + + + 0 Items + 0 Elementos + + + + DownloadItem + + Form + Formulario + + + Filename + Nombre de archivo + + + Try Again + Vuelva a intentarlo + + + Stop + Detener + + + Open + Abrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicar Podcast en YouTube + + + Title + Título + + + Description + Descripción + + + Author + Autor + + + + MainWindow + + Board + Pizarra + + + Web + Web + + + Documents + Documentos + + + Stylus + Lápiz + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fondos + + + Change Background + Cambiar Fondo + + + Undo + Deshacer + + + Ctrl+Z + Ctrl+Z + + + Redo + Repetir + + + Ctrl+Y + Ctrl+Y + + + Previous + Anterior + + + Previous Page + Página anterior + + + PgUp + PgArriba + + + Next + Siguiente + + + Next Page + Página siguiente + + + PgDown + PgAbajo + + + Manage Documents + Gestionar documentos + + + Ctrl+D + Ctrl+D + + + Web Browsing + Exploración web + + + Ctrl+W + Ctrl+W + + + Line + Línea + + + Small Line + Línea pequeña + + + Medium Line + Línea media + + + Large Line + Línea grande + + + Quit + Salir + + + Eraser + Borrador + + + Smalle Eraser + Borrador pequeño + + + Medium Eraser + Borrador mediano + + + Large Eraser + Borrador grande + + + Color + Color + + + Back + Atrás + + + Left + Izquierda + + + Forward + Hacia delante + + + Right + Derecha + + + Reload + Volver a cargar + + + Reload Current Page + Volver a cargar página actual + + + Home + Inicio + + + Load Home Page + Cargar página de inicio + + + Bookmarks + Favoritos + + + Show Bookmarks + Mostrar favoritos + + + Bookmark + Favorito + + + Add Bookmark + Añadir a favoritos + + + Display Board + Mostrar pizarra + + + Ctrl+B + Ctrl+B + + + Erase + Borrar + + + Erase Content + Borrar contenido + + + Preferences + Preferencias + + + Display Preferences + Mostrar preferencias + + + Library + Biblioteca + + + Show Library + Mostrar biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + Mostrar escritorio + + + Show Computer Desktop + Mostrar escritorio del ordenador + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Más grande + + + Zoom In + Acercar + + + Ctrl++ + Ctrl++ + + + Smaller + Más pequeño + + + Zoom Out + Alejar + + + Ctrl+- + Ctrl+- + + + New Folder + Nueva carpeta + + + Create a New Folder + Crear una nueva carpeta + + + New Document + Nuevo documento + + + Create a New Document + Crear un nuevo documento + + + Import + Importar + + + Import a Document + Importar un documento + + + Export + Exportar + + + Export a Document + Exportar un Documento + + + Open in Board + Abrir en la pizarra + + + Open Page in Board + Abrir la página en la pizarra + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicar + + + Duplicate Selected Content + Duplicar el contenido seleccionado + + + Delete + Eliminar + + + Delete Selected Content + Eliminar el contenido seleccionado + + + Del + Eliminar + + + Add to Working Document + Añadir al documento de trabajo + + + Add Selected Content to Open Document + Añadir el contenido seleccionado al documento abierto + + + Add + Añadir + + + Add Content to Document + Añadir contenido al documento + + + Rename + Cambiar nombre + + + Rename Content + Cambiar nombre al documento + + + Tools + Herramientas + + + Display Tools + Mostrar Herramientas + + + Multi Screen + Multipantalla + + + Wide Size (16/9) + Tamaño ancho (16/9) + + + Use Document Wide Size (16/9) + Usar tamaño ancho de documento (16/9) + + + Regular Size (4/3) + Tamaño regular (4/3) + + + Use Document Regular Size (4/3) + Usar tamaño regular de documento (4/3) + + + Custom Size + Tamaño personalizado + + + Use Custom Document Size + Usar tamaño personalizado de documento + + + Stop Loading + Detener carga + + + Stop Loading Web Page + Detener carga de la página web + + + Cut + Cortar + + + Copy + Copiar + + + Paste + Pegar + + + Sleep + Dormir + + + Put Presentation to Sleep + Poner la presentación en modo dormir + + + Virtual Keyboard + Teclado virtual + + + Display Virtual Keyboard + Mostrar teclado virtual + + + Plain Light Background + Fondo claro liso + + + Light + Claro + + + Grid Light Background + Fondo claro cuadriculado + + + Plain Dark Background + Fondo oscuro liso + + + Dark + Oscuro + + + Grid Dark Background + Fondo oscuro cuadriculado + + + Podcast + Podcast + + + Record Presentation to Video + Grabar presentación en vídeo + + + Record + Grabar + + + Start Screen Recording + Iniciar grabación de pantalla + + + Erase Items + Borrar elementos + + + Erase All Items + Borrar todos los elementos + + + Erase Annotations + Borrar anotaciones + + + Erase All Annotations + Borrar todas las anotaciones + + + Clear Page + Borrar página + + + Clear All Elements + Borrar todos los elementos + + + Pen + Bolígrafo + + + Annotate Document + Anotar documento + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Borrar anotación + + + Ctrl+E + Ctrl+E + + + Marker + Marcador + + + Highlight + Destacar + + + Ctrl+M + Ctrl+M + + + Selector + Selector + + + Select And Modify Objects + Seleccionar y modificar objetos + + + Ctrl+F + Ctrl+F + + + Hand + Mano + + + Scroll Page + Desplazar página + + + Laser Pointer + Puntero láser + + + Virtual Laser Pointer + Puntero láser virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Dibujar líneas + + + Ctrl+J + Ctrl+J + + + Text + Texto + + + Write Text + Escribir texto + + + Ctrl+K + Ctrl+K + + + Capture + Captura + + + Capture Part of the Screen + Capturar parte de la pantalla + + + Add To Current Page + Añadir a la página actual + + + Add Item To Current Page + Añadir elemento a la página actual + + + Add To New Page + Añadir a la nueva página + + + Add Item To New Page + Añadir elemento a la nueva página + + + Add To Library + Añadir a la biblioteca + + + Add Item To Library + Añadir elemento a la biblioteca + + + Pages + Páginas + + + Create a New Page + Crear una nueva página + + + New Page + Nueva página + + + Duplicate Page + Duplicar página + + + Duplicate the Current Page + Duplicar la página actual + + + Import Page + Importar página + + + Import an External Page + Importar una página externa + + + Pause + Pausa + + + Pause Podcast Recording + Pausar la grabación de Podcast + + + Podcast Config + Config de podcast + + + Configure Podcast Recording + Configurar grabación de podcast + + + Flash Trap + Captura de elemento Flash + + + Trap Flash Content + Capturar contenido Flash + + + Web Trap + Captura de contenido web + + + Trap Web Content + Capturar contenido web + + + Custom Capture + Captura personalizada + + + Window Capture + Captura de ventana + + + Capture a Window + Capturar una ventana + + + Embed Web Content + Integrar contenido web + + + Capture Embeddable Web Content + Capturar contenido web integrable + + + Show on Display + Mostrar en pantalla + + + Show Main Screen on Display Screen + Mostrar pantalla principal en la pantalla del monitor + + + Erase all Annotations + Borrar todas las anotaciones + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importar simulación eduMedia + + + Check Update + Comprobar actualizaciones + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Salir de OpenBoard + + + Hide OpenBoard + Ocultar OpenBoard + + + Hide OpenBoard Application + Ocultar aplicación OpenBoard + + + Play + Reproducir + + + Interact with items + Interactuar con los elementos + + + Erase Background + Borrar el Fondo + + + Remove the backgound + Eliminar el fondo + + + Open Tutorial + Abrir Tutorial + + + Open the tutorial web page + Abrir el tutorial en página web + + + Ruled Light Background + Fondo claro con cuadrícula + + + Ruled Dark Background + Fondo oscuro con cuadrícula + + + Reset grid size + Restablecer el tamaño de lacuadrícula + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Se requiere autentificación + + + Username: + Nombre de usuario: + + + Password: + Contraseña: + + + + ProxyDialog + + Proxy Authentication + Autentificación de proxy + + + Connect to Proxy + Conectar al Proxy + + + Username: + Nombre de usuario: + + + Password: + Contraseña: + + + Save username and password for future use + Guardar nombre de usuario y contraseña para uso futuro + + + + QObject + + Element ID = + Elemento ID = + + + Content is not supported in destination format. + El formato de destino no permite este contenido + + + Remove Page + Eliminar página + + + Are you sure you want to remove 1 page from the selected document '%0'? + ¿Está seguro de que quiere eliminar 1 página del documento seleccionado.'%0? + + + + UBApplication + + Page Size + Tamaño de página + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Nueva actualización disponible, ¿desea visitar la página web? + + + No update available + Ninguna actualización disponible + + + Update available + Actualización disponible + + + Update + Actualizar + + + Board drawing... + Dibujo de pizarra + + + + UBBackgroundPalette + + Grid size + Tamaño de la cuadrícula + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Fallo al descargar contenido %1 + + + Download finished + Descarga terminada + + + Unknown tool type %1 + Tipo de herramienta desconocida %1 + + + Unknown content type %1 + Tipo de contenido desconocido %1 + + + Add Item + Añadir elemento + + + All Supported (%1) + Todos compatibles (%1) + + + Delete page %1 from document + Borrar la página %1 del documento + + + Page %1 deleted + Página %1 eliminada + + + Add file operation failed: file copying error + Todas las operaciones con ficheros han fallado. Error al copiar los ficheros + + + Group + Agrupar + + + Ungroup + Desagrupar + + + Saving document... + Guardando documento + + + Document has just been saved... + Acaba de guardarse el documento... + + + Deleting page %1 + Borrando página %1 + + + Color + Color + + + + UBBoardPaletteManager + + Error Adding Image to Library + Error al añadir la imagen a la biblioteca + + + CapturedImage + Imagen capturada + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Cargando página (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Almacenar propiedades en caché + + + Color: + Color: + + + Shape: + Forma: + + + Size: + Tamaño: + + + Close + Cerrar + + + + UBDesktopPalette + + Capture Part of the Screen + Capturar parte de la pantalla + + + Capture the Screen + Capturar la pantalla + + + Show the stylus palette + Mostrar la paleta del lápiz + + + Show Board on Secondary Screen + Mostrar la pizarra en la pantalla secundaria + + + Show Desktop on Secondary Screen + Mostrar escritorio en la pantalla secundaria + + + Show OpenBoard + Mostrar OpenBoard + + + + UBDocumentController + + New Folder + Nueva carpeta + + + Page %1 + Página %1 + + + Add Folder of Images + Añadir carpeta de imágenes + + + Add Images + Añadir imágenes + + + Add Pages from File + Añadir página desde archivo + + + Duplicating Document %1 + Duplicando documento %1 + + + Document %1 copied + Documento %1 copiado + + + Remove Page + Eliminar página + + + Remove Document + Eliminar documento + + + Are you sure you want to remove the document '%1'? + ¿Está seguro de que desea eliminar el documento '%1'? + + + Empty Trash + Vaciar papelera + + + Are you sure you want to empty trash? + ¿Está seguro de que desea vaciar la papelera? + + + Emptying trash + Vaciando papelera + + + Emptied trash + Papelera vaciada + + + Remove Folder + Eliminar carpeta + + + Are you sure you want to remove the folder '%1' and all its content? + ¿Está seturo de que desea eliminar la carpeta '%1' y todo su contenido? + + + No document selected! + ¡Ningún documento seleccionado! + + + Open Supported File + Abrir archivo compatible + + + Importing file %1... + Importando archivo %1... + + + Failed to import file ... + Fallo al importar archivo ... + + + Import all Images from Folder + Importar todas las imágenes desde la carpeta + + + Delete + Eliminar + + + Empty + Vaciar + + + Trash + Papelera + + + Open Document + Abrir documento + + + Add all Images to Document + Añadir todas las imágenes al documento + + + All Images (%1) + Todas las imágenes (%1) + + + Selection does not contain any image files! + ¡La selección no contiene ningún archivo de imágenes! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + ¿Está seguro de que desea eliminar %n página(s) del documento seleccionado '%1'? + + + + + Folder does not contain any image files + La carpeta no contiene ningún fichero con imágenes + + + Untitled Documents + Documentos sin título + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + El documento '%1' fue generado con una nueva versión de OpenBoard (%2). Al abrirlo, puede perder información. Desea continuar? + + + Are you sure you want to remove all selected documents? + Está seguro de querer eliminar todos los documentos seleccionados? + + + Remove multiple documents + Eliminar varios documentos + + + duplicated %1 page + duplicated %1 pages + + %1 página copiada + %1 páginas copiadas + + + + Remove Item + Borrar elementos + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro de que desea eliminar el/los elemento(s) seleccionado(s)? + + + Title page + Página de título + + + + UBDocumentManager + + images + Imágenes + + + videos + Vídeos + + + objects + Objetos + + + widgets + Widgets + + + All supported files (*.%1) + Todos los archivos compatibles (*.%1) + + + File %1 saved + Archivo %1 guardado + + + Inserting page %1 of %2 + Insertando página %1 de %2 + + + Import successful. + Importación correcta + + + Import of file %1 successful. + El archivo %1 se ha importado correctamente + + + Importing file %1 + Importando el fichero %1 + + + + UBDocumentNavigator + + Page %0 + Página %0 + + + + UBDocumentReplaceDialog + + Accept + Aceptar + + + Replace + Reemplazar + + + Cancel + Cancelar + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + El nombre %1 ya está en uso. +Mantener este nombre reemplazará el documento. +Proporcionar un nuevo nombre creará un nuevo documento. + + + + UBDocumentTreeModel + + My documents + Mis documentos + + + Trash + Papelera + + + %1 pages copied + + %1 páginas copiadas + + + + + + UBDocumentTreeView + + %1 pages copied + + %1 páginas copiadas + + + + + Remove Item + Borrar elementos + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro de que desea eliminar el/los elemento(s) seleccionado(s)? + + + Copying page %1/%2 + Copiando página %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copia) + + + Copying page %1/%2 + Copiando página %1/%2 + + + %1 pages copied + + %1 páginas copiadas + + + + + + UBDownloadWidget + + Downloading files + Descargando archivos + + + Cancel + Cancelar + + + + UBDraggableThumbnail + + Page %0 + Página %0 + + + + UBDraggableThumbnailView + + Page %0 + Página %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Han aparecido advertencias durante la exportación + + + Exporting document... + Exportando documento... + + + Export failed + Falló la exportación + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + No fue posible exportar al lugar seleccionado. No tiene los permisos necesarios para guardar el fichero. + + + Export failed: location not writable + Falló la exportación: no se puede escribir en el lugar seleccionado + + + Export successful. + Exportación satisfactoria. + + + + UBExportCFF + + Export to IWB + Exportar a IWB + + + Export as IWB File + Exportar como fichero IWB + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo en la exportación + + + + UBExportDocument + + Page + Página + + + Export as UBZ File + Exportar como archivo UBZ + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Exporting %1 %2 of %3 + Exportando %1 %2 de %3 + + + Export to OpenBoard Format + Exportar al formato OpenBoard + + + + UBExportDocumentSetAdaptor + + Failed to export... + Fallo en la exportación... + + + Export as UBX File + Exportar como archivo UBX + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo de la exportación. + + + Export to OpenBoard UBX Format + Exportar al formato OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Exportar como archivo PDF + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export to PDF + Exportar a PDF + + + + UBExportPDF + + Export as PDF File + Exportar como archivo PDF + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Exporting page %1 of %2 + Exportando página %1 de %2 + + + Export to PDF + Exportación a PDF + + + + UBExportWeb + + Page + Página + + + Export as Web data + Exportar como datos web + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo de la exportación. + + + Export to Web Browser + Exportar al explorador web + + + + UBFeatureProperties + + Add to page + Añadir a la página + + + Set as background + Definir como fondo + + + Add to library + Añadir a biblioteca + + + Object informations + Información del objeto + + + + UBFeaturesActionBar + + Add to favorites + Añadir a favoritos + + + Share + Compartir + + + Search + Buscar + + + Delete + Eliminar + + + Back to folder + Regresar a la carpeta + + + Remove from favorites + Eliminar de favoritos + + + Create new folder + Crear nueva carpeta + + + Rescan file system + Comprobar los ficheros del sistema + + + + UBFeaturesController + + ImportedImage + Imagen importada + + + Audios + Ficheros de Audio + + + Movies + Películas + + + Pictures + Imágenes + + + Animations + Animaciones + + + Interactivities + Interactividades + + + Applications + Aplicaciones + + + Shapes + Formas + + + Favorites + Favoritos + + + Web search + Búsqueda Web + + + Trash + Papelera + + + + UBFeaturesNewFolderDialog + + Accept + Aceptar + + + Cancel + Cancelar + + + Enter a new folder name + Introduzca en nuevo nombre para la carpeta + + + + UBFeaturesProgressInfo + + Loading + Cargando + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visible en pantalla extendida + + + + UBGraphicsItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visible en pantalla extendida + + + Go to Content Source + Ir a fuente de contenido + + + Set as background + Definir como fondo + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + No se pudo resolver el recurso multimedia + + + Unsupported media format + Formato multimedia no soportado + + + Media playback service not found + Servicio de reprodución multimedia no encontrado + + + Media error: + Error multimedia: + + + + UBGraphicsTextItem + + <Type Text Here> + <Teclear Texto aquí> + + + + UBGraphicsTextItemDelegate + + Text Color + Color de texto + + + Editable + Editable + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Cargando... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Congelado + + + Transform as Tool + Transformar como herramienta + + + + UBImportCFF + + Common File Format ( + Formato de archivo común ( + + + Importing file %1... + Importando archivo %1... + + + Import of file %1 failed. + Fallo en la importanción del archivo %1. + + + Import successful. + Importación satisfactoria. + + + Import failed. + Fallo de la importación. + + + + UBImportDocument + + Importing file %1... + Importando archivo %1... + + + Import successful. + Importación satisfactoria. + + + Import of file %1 failed. + Fallo de la importación del archivo %1. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (set de documentos) (*.ubx) + + + + UBImportImage + + Image Format ( + Formato de imagen ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Formato de documento portátil (*.pdf) + + + PDF import failed. + Fallo de la importación de PDF. + + + Importing page %1 of %2 + Importando página %1 de %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Error el publicar vídeo en intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicación en Intranet en progreso %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicar + + + + UBKeyboardPalette + + Enter + Entrar + + + + UBMainWindow + + Yes + + + + No + No + + + Ok + Ok + + + + UBMessagesDialog + + Close + Cerrar + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Introduzca el nombre de usuario y la contraseña para "%1" en %2</qt> + + + Failed to log to Proxy + Fallo al iniciar sesión en proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Errores SSL: %1 %2 ¿Desea ignorar estos errores para este servidor? + + + Yes + + + + No + No + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Borrados Documentos Open-Sankore + + + Show this panel next time + Mostrar este panel la próxima vez + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Siempre puede acceder al importador de documentos OpenBoard a través del panel Preferencias en la pestaña Sobre. Aviso, ya se han importado sus datos Open-Sankore, puede perder documentos OpenBoard actuales + + + Cancel + Cancelar + + + Proceed + Continuar + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Los documentos de Open-Sankoré de su computador.Es posible importarlos a OpenBoard pulsando en el botón "Continuar" de la aplicación importadora. + + + + UBPersistenceManager + + (copy) + (copiar) + + + Document Repository Loss + Pérdida de depósito de documentos + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + perdió el acceso al repositorio de documentos '%1'. Desafortunadamente, la aplicación debe cerrarse para evitar la corrrupción de datos. También se pueden perder los últimos cambios. + + + Moving page to trash folder... + Mover la página a la papelera + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + OpenBoard perdió el acceso al repositorio de documentos '%1'. Desafortunadamente, la aplicación debe cerrarse para evitar la corrrupción de datos. También se pueden perder los últimos cambios. + + + + UBPlatformUtils + + English + Inglés + + + Russian + Ruso + + + German + Alemán + + + French + Francés + + + Swiss French + Francés-Suizo + + + + UBPodcastController + + Failed to start encoder ... + Fallo al iniciar el codificador... + + + No Podcast encoder available ... + Ningún condificador de Podcast disponible... + + + Part %1 + Parte %1 + + + on your desktop ... + en su escritorio... + + + in folder %1 + en carpeta %1 + + + Podcast created %1 + Podcast creado %1 + + + Podcast recording error (%1) + Error en la grabación de podcast (%1) + + + Default Audio Input + Entrada de audio predeterminada + + + No Audio Recording + Ninguna grabación de audio + + + Small + Pequeño + + + Medium + Medio + + + Full + Completo + + + Publish to Intranet + Publicar en Intranet + + + Publish to Youtube + Publicar en Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + versión: + + + Marker is pressure sensitive + El marcador es sensible a la presión + + + + UBProxyLoginDlg + + Proxy Login + Inicio de sesión en proxy + + + Username: + Nombre de usuario: + + + Password: + Contraseña: + + + + UBPublicationDlg + + Publish document on the web + Publicar documento en la web + + + Title: + Título: + + + Description: + Descripción: + + + Publish + Publicar + + + + UBSettings + + My Movies + Mis películas + + + + UBStartupHintsPalette + + Visible next time + Visible la próxima vez + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Generando miniaturas de previsualización... + + + %1 thumbnails generated ... + %1 miniaturas generadas... + + + loading thumbnail of page %1 + cargando miniaturas de la página %1 + + + + UBThumbnailTextItem + + Page %0 + Página %0 + + + + UBToolsManager + + Mask + Máscara + + + Ruler + Regla + + + Compass + Brújula + + + Protractor + Transportador + + + Triangle + Triángulo + + + Magnifier + Lupa + + + Cache + Caché + + + Axes + + + + + UBTrapFlashController + + Whole page + Página completa + + + Web + Web + + + + UBUpdateDlg + + Document updater + Actualizador de documento + + + files require an update. + los archivos requieren una actualización. + + + Backup path: + Ruta de la copia de seguridad: + + + Browse + Explorar + + + Update + Actualizar + + + Select a backup folder + Seleccione una carpeta para la copia de seguridad + + + Files update successful! +Please reboot the application to access the updated documents. + ¡Actualización de archivos satisfactoria! +Por favor, reinicie la aplicación para acceder a los documentos actualizados. + + + An error occured during the update. The files have not been affected. + Ha ocurrido un error durante la actualización. Los archivos no han sido afectados. + + + Files update results + Resultados de la actualización de archivos + + + Updating file + Actualizando archivo + + + Please wait the import process will start soon... + Por favor espere, el proceso de importación comenzará pronto... + + + Remind me later + Recordármelo más tarde + + + + UBWebPluginWidget + + Loading... + Cargando... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 llamado (método=%1, estado=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Fallo en la autentificación de YouTube. + + + Error while uploading video to YouTube (%1) + Error al cargar el vídeo a YouTube (%1) + + + Upload to YouTube in progress %1 % + Carga a YoutTube en progreso %1 % + + + + UBYouTubePublishingDialog + + Upload + Cargar + + + Autos & Vehicles + Autos & Vehículos + + + Music + Música + + + Pets & Animals + Mascotas & Animales + + + Sports + Deportes + + + Travel & Events + Viajes & Eventos + + + Gaming + Juego + + + Comedy + Comedia + + + People & Blogs + Personas & Blogs + + + News & Politics + Noticias & Política + + + Entertainment + Entretenimiento + + + Education + Educación + + + Howto & Style + Howto & estilo + + + Nonprofits & Activism + Sin fines de lucro & Activismo + + + Science & Technology + Ciencia & Tecnología + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Eliminar + + + + WBDownloadItem + + Save File + Guardar archivo + + + Download canceled: %1 + Descarga cancelada: %1 + + + Error opening saved file: %1 + Error al abrir el archivo guardado: %1 + + + Error saving: %1 + Error al guardar: %1 + + + Network Error: %1 + Error de red: %1 + + + seconds + segundos + + + minutes + minutos + + + - %4 %5 remaining + - %4 %5 restante + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/seg) %4 + + + ? + unknown file size + ¿? + + + %1 of %2 - Stopped + %1 de %2 - Detenido + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Descarga + + + %1 Downloads + always >= 2 + %1 Descargas + + + + WBHistoryModel + + Title + Título + + + Address + Dirección + + + + WBHistoryTreeModel + + Earlier Today + Anteriormente hoy + + + %1 items + %1 elementos + + + + WBSearchLineEdit + + Search + Búsqueda + + + + WBTabBar + + New &Tab + Nueva &Pestaña + + + Clone Tab + Duplicar pestaña + + + &Close Tab + &Cerrar pestaña + + + Close &Other Tabs + Cerrar & Otras pestañas + + + Reload Tab + Recargar pestaña + + + Reload All Tabs + Volver a cargar todas las pestañas + + + + WBTabWidget + + Recently Closed Tabs + Pestañas cerradas recientemente + + + (Untitled) + (Sin título) + + + + WBToolbarSearch + + Search + Búsqueda + + + No Recent Searches + Ninguna búsqueda reciente + + + Recent Searches + Búsquedas recientes + + + Clear Recent Searches + Borrar búsquedas recientes + + + + WBWebPage + + Download + Descargar + + + Add to Current Document + Añadir al documento actual + + + PDF + PDF + + + Error loading page: %1 + Error al cargar la página: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Descargar documento PDF: prefererías descargar el archivo PDF ou añadirlo al documento actual de OpenBoard? + + + + WBWebView + + Open in New Tab + Abrir en nueva pestaña + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicar Podcast en YouTube + + + Title + Título + + + Description + Descripción + + + Keywords + Palabras clave + + + Category + Categoría + + + YouTube Username + Nombre de usuario de YouTube + + + YouTube Password + Contraseña de Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Al hacer clic en 'Descargar' usted certifica que posee todos los derechos sobre el contenido o que está autorizado por el propietario a publicar el contenido en YouTube, y que éste cumple con los términos de servicio de YouTube que aparecen en</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Restablece las credenciais al reiniciar + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Sobre fondo claro + + + On Dark Background + Sobre fondo oscuro + + + Opacity + Opacidad + + + Line Width + Ancho de línea + + + Medium + Medio + + + Strong + Fuerte + + + Fine + Fino + + + Pen is Pressure Sensitive + El bolígrafo es sensible a la presión + + + Show preview circle from + Mostrar vista previa del círculo de + + + px + px + + + + capturePublishingDialog + + Dialog + Diálogo + + + Title + Título + + + E-mail + Correo electrónico + + + Author + Autor + + + Description + Descripción + + + + documentPublishingDialog + + Dialog + Diálogo + + + Title + Título + + + E-mail + Correo electrónico + + + Author + Autor + + + Description + Descripción + + + + documents + + OpenBoard Documents + Documentos OpenBoard + + + Creation date + Fecha de creación + + + Update date + Fecha de actualización + + + Alphabetical order + Orden alfabético + + + Sort Order + Orden de clasificación + + + + preferencesDialog + + Preferences + Preferencias + + + version : … + versión : … + + + Default Settings + Configuración predeterminada + + + Close + Cerrar + + + Display + Mostrar + + + Internet + Internet + + + Show Page with External Browser + Mostrar página con explorador externo + + + Home Page: + Página de inicio: + + + Virtual Keyboard + Teclado virtual + + + Keyboard button size: + Tamaño de los botones del teclado: + + + Toolbar + Barra de herramientas + + + Positioned at the Top (recommended for tablets) + Colocar en la parte superior (recomendado para computadores tipo tablet) + + + Positioned at the Bottom (recommended for white boards) + Colocar en la parte inferior (recomendado para pizarras blancas) + + + Display Text Under Button + Mostrar texto debajo del botón + + + Stylus Palette + Paleta del lápiz + + + Horizontal + Horizontal + + + Vertical + Vertical + + + Pen + Bolígrafo + + + Marker + Marcador + + + About + Acerca de + + + Software Update + Actualización del software + + + Check software update at launch + Comprobar si hay actualizaciones del software al iniciarse + + + Licences + Licencias + + + Network + Red + + + Show internal web page content on secondary screen or projector + Mostrar el contenido de la página web en un monitor secundario o proyector + + + Multi display + Pantalla múltiple + + + Swap control display and view display + Intercambiar control de pantalla y vista de pantalla + + + Mode + Modalidad + + + Mode to start in: + Comenzar en modalidad : + + + Board + Pizarra + + + Desktop + Escritorio + + + Proxy User: + Nombre de usuario Proxy: + + + Pass: + Contraseña: + + + Credits + Créditos + + + Open-Sankoré Importer + Importar de Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Compruebe si los datos de Open-Sankoré se pueden importar al iniciar + + + Use system keyboard (recommended) + Usar el teclado del sistema (recomendado) + + + Built-in virtual keyboard button size: + Tamaño del botón del teclado virtual integrado + + + Grid + Cuadrícula + + + On Dark Background + Sobre fondo oscuro + + + Opacity + Opacidad + + + On Light Background + Sobre fondo claro + + + Swap first and second view displays + Intercambiar control de pantalla y vista de pantalla + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Capturar elemento flash + + + Select a flash to trap + Seleccionar un flash para capturar + + + about:blank + about:blank + + + Application name + Nombre de la aplicación + + + Create Application + Crear aplicación + + + diff --git a/resources/i18n/OpenBoard_eu.ts b/resources/i18n/OpenBoard_eu.ts new file mode 100644 index 0000000..06368f7 --- /dev/null +++ b/resources/i18n/OpenBoard_eu.ts @@ -0,0 +1,2536 @@ + + + + + BlackoutWidget + + Click to Return to Application + Egin klik aplikaziora bueltatzeko + + + + DownloadDialog + + Downloads + Deskargak + + + Clean Up + Garbitu + + + 0 Items + 0 item + + + + DownloadItem + + Form + Formularioa + + + Filename + Fitxategi izena + + + Try Again + Saiatu berriro + + + Stop + Gelditu + + + Open + Ireki + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publikatu podcasta YouTuben + + + Title + Izenburua + + + Description + Deskribapena + + + Author + Egilea + + + + MainWindow + + OpenBoard + OpenBoard + + + Board + Arbela + + + Web + Web + + + Documents + Dokumentuak + + + Stylus + Arkatza + + + Ctrl+T + Ktrl+T + + + Backgrounds + Atzeko planoak + + + Change Background + Aldatu atzeko planoa + + + Undo + Desegin + + + Ctrl+Z + Ktrl+Z + + + Redo + Berregin + + + Ctrl+Y + Ktrl+Y + + + Previous + Aurrekoa + + + Previous Page + Aurreko orria + + + PgUp + OrriaGora + + + Next + Hurrengoa + + + Next Page + Hurrengo orria + + + PgDown + OrriaBehera + + + Manage Documents + Dokumentuak kudeatu + + + Ctrl+D + Ktrl+D + + + Web Browsing + Sare arakatzea + + + Ctrl+W + Ktrl+W + + + Line + Lerroa + + + Small Line + Lerro txikia + + + Medium Line + Lerro ertaina + + + Large Line + Lerro handia + + + Quit + Itxi + + + Quit OpenBoard + Itxi OpenBoard + + + Eraser + Borragoma + + + Smalle Eraser + Borragoma txikia + + + Medium Eraser + Borragoma ertaina + + + Large Eraser + Borragoma handia + + + Color + Kolorea + + + Back + Atzera + + + Left + Ezkerrera + + + Forward + Aurrera + + + Right + Eskuinera + + + Reload + Birkargatu + + + Reload Current Page + Birkargatu uneko orria + + + Home + Hasiera-orria + + + Load Home Page + Kargatu hasierako orria + + + Bookmarks + Laster-markak + + + Show Bookmarks + Erakutsi lastermarkak + + + Bookmark + Laster-marka + + + Add Bookmark + Gehitu laster-marka + + + Display Board + Erakutsi arbela + + + Ctrl+B + Ktrl+B + + + Erase + Ezabatu + + + Erase Content + Ezabatu edukia + + + Preferences + Ezarpenak + + + Display Preferences + Erakutsi ezarpenak + + + Library + Liburutegia + + + Show Library + Erakutsi liburutegia + + + Ctrl+L + Ktrl+L + + + Show Desktop + Erakutsi mahaigaina + + + Show Computer Desktop + Erakutsi ordenagailuaren mahaigaina + + + Ctrl+Shift+H + Ktrl+Shift+H + + + Bigger + Handiagoa + + + Zoom In + Zoom egin + + + Ctrl++ + Ktrl++ + + + Smaller + Txikiagoa + + + Zoom Out + Zooma kendu + + + Ctrl+- + Ktrl+- + + + New Folder + Karpeta berria + + + Create a New Folder + Sortu karpeta berria + + + New Document + Dokumentu berria + + + Create a New Document + Sortu dokumentu berria + + + Import + Inportatu + + + Import a Document + Inportatu dokumentua + + + Export + Esportatu + + + Export a Document + Esportatu dokumentua + + + Open in Board + Ireki arbelean + + + Open Page in Board + Ireki orria arbelean + + + Ctrl+O + Ktrl+O + + + Duplicate + Bikoiztu + + + Duplicate Selected Content + Bikoiztu hautatutako edukia + + + Delete + Ezabatu + + + Delete Selected Content + Ezabatu hautatutako edukia + + + Del + Ezab + + + Add to Working Document + Gehitu laneko dokumentura + + + Add Selected Content to Open Document + Gehitu hautatuko edukia irekitako dokumentura + + + Add + Gehitu + + + Add Content to Document + Gehitu edukia dokumentura + + + Rename + Berrizendatu + + + Rename Content + Berrizendatu edukia + + + Tools + Tresnak + + + Display Tools + Erakutsi tresnak + + + Multi Screen + Pantaila anitzak + + + Wide Size (16/9) + Tamaina panoramikoa (16/9) + + + Use Document Wide Size (16/9) + Erabili tamaina zabaleko dokumentua (16/9) + + + Regular Size (4/3) + Ohiko tamaina (4/3) + + + Use Document Regular Size (4/3) + Erabili dokumentu tamaina arrunta (4/3) + + + Custom Size + Tamaina pertsonalizatua + + + Use Custom Document Size + Erabili dokumentu tamaina pertsonalizatua + + + Stop Loading + Utzi kargatzeari + + + Stop Loading Web Page + Utzi web orria kargatzeari + + + Cut + Moztu + + + Copy + Kopiatu + + + Paste + Itsatsi + + + Sleep + Lo + + + Put Presentation to Sleep + Eraman aurkezpena lotara + + + Virtual Keyboard + Teklatu birtuala + + + Display Virtual Keyboard + Erakutsi teklatu birtuala + + + Plain Light Background + Atzeko plano argia + + + Light + Argia + + + Grid Light Background + Atzeko plano sareta argia + + + Ruled Light Background + Atzeko plano marradun argia + + + Plain Dark Background + Atzeko plano iluna + + + Dark + Iluna + + + Grid Dark Background + Atzeko plano sareta iluna + + + Ruled Dark Background + Atzeko plano marradun iluna + + + Podcast + Podcast-a + + + Record Presentation to Video + Grabatu aurkezpena bideora + + + Record + Grabatu + + + Start Screen Recording + Hasi pantaila grabatzen + + + Erase Items + Ezabatu itemak + + + Erase All Items + Ezabatu item guztiak + + + Erase Annotations + Ezabatu oharrak + + + Erase All Annotations + Ezabatu ohar guztiak + + + Clear Page + Garbitu orria + + + Clear All Elements + Garbitu elementu guztiak + + + Pen + Bolaluma + + + Annotate Document + Gehit oharrak dokumentuan + + + Ctrl+I + Ktrl+I + + + Erase Annotation + Ezabatu oharra + + + Ctrl+E + Ktrl+E + + + Marker + Errotulagailua + + + Highlight + Azpimarratu + + + Ctrl+M + Ktrl+M + + + Selector + Aukeratzailea + + + Select And Modify Objects + Aukeratu eta eraldatu objektuak + + + Ctrl+F + Ktrl+F + + + Hand + Eskua + + + Scroll Page + Jeitsi orria + + + Laser Pointer + Laser puntua + + + Virtual Laser Pointer + Laser puntu birtuala + + + Ctrl+G + Ktrl+G + + + Draw Lines + Marraztu lerroak + + + Ctrl+J + Ktrl+J + + + Text + Testua + + + Write Text + Idatzi testua + + + Ctrl+K + Ktrl+K + + + Capture + Kapturatu + + + Capture Part of the Screen + Kapturatu pantailaren zati bat + + + Add To Current Page + Gehitu uneko orrira + + + Add Item To Current Page + Gehitu itema uneko orrira + + + Add To New Page + Gehitu orri berrira + + + Add Item To New Page + Gehitu itema orri berrira + + + Add To Library + Gehitu liburutegira + + + Add Item To Library + Gehitu itema liburutegira + + + Pages + Orriak + + + Create a New Page + Sortu orri berria + + + New Page + Orri berria + + + Duplicate Page + Bikoiztu orria + + + Duplicate the Current Page + Bikoiztu uneko orria + + + Import Page + Inportatu orria + + + Import an External Page + Inportatu kanpoko orria + + + Pause + Gelditu + + + Pause Podcast Recording + Gelditu Podcast-aren grabaketa + + + Podcast Config + Podcast konfiguratu + + + Configure Podcast Recording + Konfiguratu podcast-aren grabaketa + + + Custom Capture + Pertsonalizatutako kaptura + + + Window Capture + Leiho kaptura + + + Capture a Window + Leiho bat kapturatu + + + Embed Web Content + Kabiatutako web edukia + + + Capture Embeddable Web Content + Kapturatu kabiatutako web edukia + + + Show on Display + Erakutsi pantailan + + + Show Main Screen on Display Screen + Erakutsi pantaila nagusia erakusteko pantailan + + + Erase all Annotations + Ezabatu ohar guztiak + + + eduMedia + eduMedia + + + Import eduMedia simulation + Inportatu eduMedia simulazioa + + + Check Update + Egiaztatu eguneraketa + + + Hide OpenBoard + Ezkutatu OpenBoard + + + Hide OpenBoard Application + Ezkutatu OpenBoard aplikazioa + + + Ctrl+H + Ktrl+H + + + Play + Erreproduzitu + + + Interact with items + Itemekin elkar ekin + + + Erase Background + Ezabatu atzeko planoa + + + Remove the backgound + Kendu atzeko planoa + + + Open Tutorial + Ireki tutoriala + + + Open the tutorial web page + Ireki tutorialaren web orria + + + + PasswordDialog + + Authentication Required + Autentikazioa beharrezkoa + + + Username: + Erabiltzailea: + + + Password: + Pasahitza: + + + + ProxyDialog + + Proxy Authentication + Proxy autentikazioa + + + Connect to Proxy + Konektatu proxyra + + + Username: + Erabiltzailea: + + + Password: + Pasahitza: + + + Save username and password for future use + Gorde erabltzailea eta pasahitza etorkizuneko erabiletarako + + + + QObject + + Remove Page + Ezabatu orrialdea + + + Are you sure you want to remove 1 page from the selected document '%0'? + Ziur zaude orri bat ezabatu nahi duzulua '%0' dokumentutik? + + + + UBApplication + + Page Size + Orri tamaina + + + Podcast + Podcast-a + + + + UBApplicationController + + Web + Web-a + + + Update available + Eguneratzea eskuragarri + + + New update available, would you go to the web page ? + Eguneraketa berria eskuragarri, nahi duzu web orrira joan? + + + Update + Eguneraketa + + + No update available + Ez dago eguneraketarik eskuragarri + + + + UBBackgroundPalette + + Grid size + Sareta tamaina + + + + UBBoardController + + Group + Taldekatu + + + Ungroup + Taldekatzea kendu + + + Saving document... + Dokumentua gordetzen... + + + Document has just been saved... + Dokumentua oraintxe izan da gordea... + + + Delete page %1 from document + Ezabatu %1 orria dokumentutik + + + Page %1 deleted + %1 orria ezabatua + + + Downloading content %1 failed + %1 edukiaren deskargak huts egin du + + + Download finished + Deskarga amaitua + + + Add file operation failed: file copying error + Fitxategia gehitzearen prozesuak huts egin du: fitxategi kopiaren errorea + + + Unknown tool type %1 + %1 tresna mota ezezaguna + + + Unknown content type %1 + %1 eduki mota ezezaguna + + + Add Item + Gehitu itema + + + All Supported (%1) + Denak onartuak (%1) + + + + UBBoardPaletteManager + + CapturedImage + KapturatutakoIrudia + + + Error Adding Image to Library + Errorea Irudai liburutegira gehitzean + + + + UBCachePropertiesWidget + + Cache Properties + Katxearen propietateak + + + Color: + Kolorea: + + + Shape: + Forma: + + + Size: + Tamaina: + + + Close + Itxi + + + + UBDesktopPalette + + Show OpenBoard + Erakutsi OpenBoard + + + Capture Part of the Screen + Kapturatu pantailaren zati bat + + + Capture the Screen + Kapturatu pantaila + + + Show the stylus palette + Erakutsi stylus paleta + + + Show Board on Secondary Screen + Erakutsi arbela bigarren pantailan + + + Show Desktop on Secondary Screen + Erakutsi mahaigaina bigarren pantailan + + + + UBDocumentController + + Trash + Zakarrontzia + + + Untitled Documents + Izengabeko dokumentuak + + + New Folder + Karpeta berria + + + Add Folder of Images + Gehitu irudien karpeta + + + Add Images + Gehitu irudiak + + + Add Pages from File + Gehitu orriak fitxategitik + + + Duplicating Document %1 + Bikoiztu %1 dokumentua + + + Document %1 copied + %1 dokumentua kopiatua + + + Empty Trash + Hustu zakarrontzia + + + Are you sure you want to empty trash? + Ziur zaude zakarrontzia hustu nahi duzula? + + + Emptying trash + Zakarrontzia husten + + + Emptied trash + Zakarrontzia hutsa + + + Remove Document + Ezabatu dokumentua + + + Are you sure you want to remove the document '%1'? + Ziur zaude '%1' dokumentua ezabatu nahi duzula? + + + Remove Folder + Ezabatu karpeta + + + Are you sure you want to remove the folder '%1' and all its content? + Ziur zaude '%1' karpeta eta bere eduki guztia borratu nahi dituzula? + + + Remove multiple documents + Ezabatu dokumentu anitzak + + + Are you sure you want to remove all selected documents? + Ziur zaude aukeratutako dokumentuak ezabatu nahi dituzula? + + + No document selected! + Ez da dokumenturik aukeratu! + + + Open Supported File + Ireki onartutako fitxategia + + + Importing file %1... + %1 fitxategia inportatzen... + + + Failed to import file ... + Fitxategiaren inportazioak huts egin du... + + + Import all Images from Folder + Inportatu karpetako fitxategi guztiak + + + Folder does not contain any image files + Karpetak ez dauka irudi fitxategirik + + + Delete + Ezabatu + + + Empty + Hustu + + + Open Document + Ireki dokumentua + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + '%1' dokumentua OpenBoarden bertsio berriago batekin (%2) sortua da. Irekitzean baliteke informazioa galtzea. Jarraitu nahi duzu? + + + Add all Images to Document + Gehitu irudi guztiak dokumentura + + + All Images (%1) + Irudi guztiak (%1) + + + Selection does not contain any image files! + Aukeraketak ez du inongo irudi fitxategirik! + + + Remove Page + Ezabatu orria + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Ziur zaude orri %n ezabatu nahi duzula '%1' dokumentutik? + Ziur zaude %n orri ezabatu nahi dituzula '%1' dokumentutik? + + + + Page %1 + %1 orria + + + + UBDocumentManager + + images + irudiak + + + videos + bideoak + + + objects + objektuak + + + widgets + widgetak + + + All supported files (*.%1) + Onartutako fitxategi guztiak (*.%1) + + + Inserting page %1 of %2 + %1 orria txertatzen %2tik + + + Import successful. + Inportazio arrakastatsua. + + + Importing file %1 + %1 inportatzen + + + Import of file %1 successful. + %1 fitxategiaren inportazio arrakastatsua. + + + File %1 saved + %1 fitxategia gordea + + + + UBDocumentNavigator + + Page %0 + %0 orria + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopia) + + + Copying page %1/%2 + %1/%2 orria kopiatzen + + + %1 pages copied + + orri %1 kopiatua + %1 orri kopiatua + + + + + UBDownloadWidget + + Downloading files + Fitxategiak jeisten + + + Cancel + Ezeztatu + + + + UBExportAdaptor + + Exporting document... + Dokumentua esportatzen... + + + Export failed + Esportazioak huts egin du + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Ezin da aukeratutako tokira esportatu. Ez daukazu nahikoa baimenik fitxategia gordetzeko. + + + Export failed: location not writable + Esportazioak huts egin du: helburuan ezin da idatzi + + + Export successful. + Esportazio arrakastatsua. + + + Warnings during export was appeared + Esportazioan zehar arazoak egon dira + + + + UBExportDocument + + Page + Orria + + + Export as UBZ File + UBZ fitxategi moduan esportatu + + + Exporting %1 %2 of %3 + Esportatu %1 %2 %3tik + + + Export to OpenBoard Format + Esportatu OpenBoard formatura + + + + UBExportFullPDF + + Export as PDF File + Esportatu PDF fitxategira + + + Export to PDF + Esportatu PDFra + + + + UBExportPDF + + Export as PDF File + Esportatu PDF fitxategira + + + Exporting page %1 of %2 + %1 orria %2tik esportatzen + + + Export to PDF + Esportatu PDFra + + + + UBExportWeb + + Page + Orria + + + Export as Web data + Esportatu Web datu mduan + + + Exporting document... + Dokumentua esportatzen... + + + Export successful. + Esportazio arraskatatsua. + + + Export failed. + Esportazioak huts egin du. + + + Export to Web Browser + Esportatu web arakatzailera + + + + UBFeatureProperties + + Add to page + Gehitu orrira + + + Set as background + Ezarri atzeko plano moduan + + + Add to library + Gehitu liburutegira + + + Object informations + Objektuaren informazioa + + + + UBFeaturesActionBar + + Add to favorites + Gehitu gogokoenetara + + + Share + Elkarbanatu + + + Search + Bilatu + + + Rescan file system + Berreskaneatu fitxategi sistema + + + Delete + Ezabatu + + + Back to folder + Atzera karpetara + + + Remove from favorites + Ezabatu gogokoenetatik + + + Create new folder + Sortu karpeta berria + + + + UBFeaturesController + + Audios + Audioak + + + Movies + Filmak + + + Pictures + Irudiak + + + Animations + Animazioak + + + Interactivities + Interjarduerak + + + Applications + Aplikazioak + + + Shapes + Formak + + + Favorites + Gogokoenak + + + Web search + Web bilaketak + + + Trash + Zakarrontzia + + + ImportedImage + InportatutakoIrudia + + + + UBFeaturesNewFolderDialog + + Accept + Onartu + + + Cancel + Ezeztatu + + + Enter a new folder name + Sartu karpeta izen berria + + + + UBFeaturesProgressInfo + + Loading + Kargatzen + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Blokeatua + + + Visible on Extended Screen + Hedatutako pantailan ikusgarri + + + + UBGraphicsItemDelegate + + Locked + Blokeatua + + + Visible on Extended Screen + Hedatutako pantailan ikusgarri + + + Go to Content Source + Joan edukiaren jatorrira + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Multimedia baliabidea ezin izan da ebatzi + + + Unsupported media format + Multimedia formatua ez da onargarria + + + Media playback service not found + Multimedia erreproduzitze zerbitzua ez da aurkitu + + + Media error: + Multimedia errorea: + + + + UBGraphicsTextItem + + <Type Text Here> + <Idatzi Testua hemen> + + + + UBGraphicsTextItemDelegate + + Text Color + TestuKolorea + + + Editable + Editagarria + + + + UBGraphicsW3CWidgetItem + + Web + Weba + + + + UBGraphicsWidgetItem + + Loading ... + Kargatzen... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Izoztua + + + Transform as Tool + Eraldatu tresna moduan + + + + UBImportDocument + + OpenBoard (*.ubz) + OPenBoard (*.ubz) + + + Importing file %1... + %1 fitxategia inportatzen... + + + Import of file %1 failed. + %1 fitxategiaren inportazioak huts egin du. + + + Import successful. + Inportazio arrakastatsua. + + + + UBImportImage + + Image Format ( + Irudi formatua ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Dokumentu formatu eramangarria (*.pdf) + + + PDF import failed. + PDF inportazioak huts egin du. + + + Importing page %1 of %2 + %1 orria %2tik inportatzen + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Errorea bideoa intranetera esportatzen zen bitartean (%1) + + + Publishing to Intranet in progress %1 % + Intranetera publikatzea abian %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publikatu + + + + UBKeyboardPalette + + Enter + Sartu + + + + UBMainWindow + + Yes + Bai + + + No + Ez + + + Ok + Ok + + + + UBMessagesDialog + + Close + Itxi + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Sartu erabiltzailea eta pasahitza "%1" %2n</qt> + + + Failed to log to Proxy + Proxyra sartzean errorea + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL Erroreak: + +%1 + +%2 + +Ostalari onentzako errore hauek ez-ikusi nahi dituzu? + + + Yes + Bai + + + No + Ez + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Open-Sankore dokumentuak antzemanda + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Open-Sankoré dokumentuak daude zure ordenagailuan. OpenBoardera inportatu daitezke inportazio-aplikazioa irekitzeko "Jarraitu" botoia sakatuz. + + + Show this panel next time + Erakutsi panel hau hurrengoan + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Beti ere OPenBoard dokumentuak inportatzailea atzi dezakezu Ezarpenen paneleko Honi buruz fitxan. Kontuz, jada Open-Sankore datuak inportatu badituzu oraingo OpenBoard dokumentuak gal ditzakezu. + + + Cancel + Ezeztu + + + Proceed + Jarraitu + + + + UBPersistenceManager + + (copy) + (kopiatu) + + + Document Repository Loss + Dokumentuen repositorioaren galera + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + %1 dokumentu errepositorira sarbidea galdu da. Tamalez aplikazioa itxi egingo da datuen galera sahiesteko. Azken aldaketak galdu daitezke ere. + + + + UBPlatformUtils + + English + Ingelesa + + + Russian + Errusiera + + + German + Alemaniera + + + French + Frantsesa + + + Swiss French + Suitzar frantsesa + + + + UBPodcastController + + Failed to start encoder ... + Kodegailuaren hasierak huts egin du... + + + No Podcast encoder available ... + Ez dago Podcast kodegailurik erabilgarri... + + + Part %1 + %1 Zatia + + + on your desktop ... + zure mahaigainean... + + + in folder %1 + %1 karpetan + + + Podcast created %1 + %1 Podcasta sortua + + + Podcast recording error (%1) + Errorea Podcasta grabatzean (%1) + + + Default Audio Input + Lehenetsitako audio sarrera + + + No Audio Recording + Audio grabaziorik ez + + + Small + Txikia + + + Medium + Ertaina + + + Full + Osoa + + + Publish to Intranet + Publikatu intraneten + + + Publish to Youtube + Publikatu Youtuben + + + + UBPreferencesController + + version: + bertsioa: + + + Marker is pressure sensitive + Markadorea presioarekiko sentibera da + + + + UBProxyLoginDlg + + Proxy Login + Proxy sarrera + + + Username: + Erabiltzailea: + + + Password: + Pasahitza: + + + + UBPublicationDlg + + Publish document on the web + Publikatu dokumentua webean + + + Title: + Izenburua: + + + Description: + Deskribapena: + + + Publish + Publikatu + + + + UBSettings + + My Movies + Nire filmak + + + + UBStartupHintsPalette + + Visible next time + Ikusgarri hurrengoan + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Aurreikuste irudiak sortzen... + + + %1 thumbnails generated ... + %1 aurreikuspen sortuak... + + + + UBToolsManager + + Mask + Maskara + + + Ruler + Erregela + + + Compass + Konpasa + + + Protractor + Angelu-garraiagailu + + + Triangle + Triangelua + + + Magnifier + Handitzailea + + + Cache + Katxea + + + + UBTrapFlashController + + Whole page + Orri osoa + + + Web + Weba + + + + UBUpdateDlg + + Document updater + Dokumentu eguneratzailea + + + files require an update. + fitxategiek eguneraketa behar dute. + + + Backup path: + Babeskopia helbidea: + + + Browse + Arakatu + + + Update + Eguneratu + + + Remind me later + Gogoratu beranduago + + + Select a backup folder + Aukeratu babeskopia karpeta + + + Please wait the import process will start soon... + Mesedez itxaron, inportatze prozesua laster hasiko da... + + + Files update successful! +Please reboot the application to access the updated documents. + Fitxategien eguneraketa ondo egin da! +Mesedez berrabiarazi aplikazioa eguneratutako dokumentuak irekitzeko. + + + An error occured during the update. The files have not been affected. + Errorea gertatu da eguneraketan zehar. Fitxategiak ez dira kaltetuak izan. + + + Files update results + Fitxategien eguneraketa emaitzak + + + Updating file + FItxategia eguneratzen + + + + UBWebPluginWidget + + Loading... + Kargatzen... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 deitua (metodoa=%1, egoera=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Youtuberen autentikazioak huts egin du. + + + Error while uploading video to YouTube (%1) + Errorea Youtubeko bideoa igotzean (%1) + + + Upload to YouTube in progress %1 % + Youtubera igotzen % %1 + + + + UBYouTubePublishingDialog + + Upload + Igo + + + Autos & Vehicles + Autoak eta ibilgailuak + + + Music + Musika + + + Pets & Animals + Maskotak eta animaliak + + + Sports + Kirolak + + + Travel & Events + Bidaiak eta gertaerak + + + Gaming + Jokoak + + + Comedy + Komedia + + + People & Blogs + Jendea eta Blogak + + + News & Politics + Berriak eta Politikak + + + Entertainment + Denbora-pasa + + + Education + Hezkuntza + + + Howto & Style + Estiloa + + + Nonprofits & Activism + Aktibismoa + + + Science & Technology + Zientzia eta teknologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Garbitu + + + + WBDownloadItem + + Save File + Gorde fitxategia + + + Download canceled: %1 + Deskarga bertan behera; %1 + + + Error opening saved file: %1 + Errorea gordetako fitxategia irekitzea: %1 + + + Error saving: %1 + Errorea gordetzean: %1 + + + Network Error: %1 + Sare errorea: %1 + + + seconds + Segundo + + + minutes + minutu + + + - %4 %5 remaining + - %4 %5 falta dira + + + %1 of %2 (%3/sec) %4 + %1 %2tik (%3/seg) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 %2tik - Geldituta + + + bytes + byte + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + Deskarga bat + + + %1 Downloads + always >= 2 + %1 Deskarga + + + + WBHistoryModel + + Title + Izenburua + + + Address + Helbidea + + + + WBHistoryTreeModel + + Earlier Today + Lehenago gaur + + + %1 items + %1 item + + + + WBSearchLineEdit + + Search + Bilatu + + + + WBTabBar + + New &Tab + &Fitxa berria + + + Clone Tab + Klonatu fitxa + + + &Close Tab + &Fitxa itxi + + + Close &Other Tabs + Itxi &beste fitxak + + + Reload Tab + Birkargatu fitxa + + + Reload All Tabs + Birkargatu fitxa guztiak + + + + WBTabWidget + + Recently Closed Tabs + DUela gutxi itxitako fitxak + + + (Untitled) + (Izengabea) + + + + WBToolbarSearch + + Search + Bilatu + + + No Recent Searches + Ez dago duela gutxiko bilaketarik + + + Recent Searches + Duela gutxiko bilaketak + + + Clear Recent Searches + Garbitu duela gutxiko bilaketak + + + + WBWebPage + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Jeitsi PDF dokumentua: nahiago duzu PDfdokumentua jeistea edo uneko OpenBoard dokumentuan txertatzea? + + + Download + Jeitsi + + + Add to Current Document + Gehitu uneko dokumentura + + + PDF + PDF + + + Error loading page: %1 + Errorea orria kargatzean: %1 + + + + WBWebView + + Open in New Tab + Ireki fitxa berrian + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publikatu Podcasta Youtuben + + + Title + Izenburua + + + Description + Deskribapena + + + Keywords + HItz klabeak + + + OpenBoard + Open Board + + + Category + Kategoria + + + YouTube Username + Youtubeko erabiltzailea + + + YouTube Password + Youtubeko pasahitza + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">'Igo' klikatuz zertifikatzen duzu edukiaren eskubideak dituzula edo jabearen baimena duzula modu publikoan Youtuben publikatzeko eta bestela Youtuberen erabilera terminoak puskatzen direla: </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Berrezarri kredentzialak berrabiaraztean + + + + brushProperties + + On Light Background + Atzeko-plano argian + + + On Dark Background + Atzeko plano ilunean + + + Opacity + Opakotasuna + + + Line Width + Lerroaren lodiera + + + Medium + Ertaina + + + Strong + Indartsua + + + Fine + FIna + + + Pen is Pressure Sensitive + Bolaluma presioarekiko sentibera da + + + Smooth strokes (experimental) + Lerroak lausotu (esperimentala) + + + Simplify strokes after drawing (experimental) + Sinplifikatu trazuak marraztu eta gero (esperimentala) + + + + capturePublishingDialog + + Dialog + Elkarrizketa + + + Title + Izenburua + + + E-mail + E-posta + + + Author + Egilea + + + Description + Deskribapena + + + + documents + + OpenBoard Documents + OpenBoard dokumentuak + + + + preferencesDialog + + Preferences + Ezarpenak + + + version : … + bertsioa: ... + + + Display + Pantailaratu + + + Multi display + Pantailaratze anitza + + + Show internal web page content on secondary screen or projector + Erakutsi barruko web orriaren edukia bigarren pantailan edo proiektorean + + + Swap control display and view display + Aldatu kontrol pantaila eta ikuste pantaila + + + Toolbar + Tresna barra + + + Positioned at the Top (recommended for tablets) + Goikaldean kokatu (tabletentzako gomendatua) + + + Positioned at the Bottom (recommended for white boards) + Behekaldean kokatu (Arbel zurientzako gomendatua) + + + Display Text Under Button + Erakutsi testua botoiaren azpian + + + Stylus Palette + Luma paleta + + + Horizontal + Horizontala + + + Vertical + Bertikala + + + Mode + Modua + + + Mode to start in: + Hasteko modua: + + + Board + Arbela + + + Desktop + Mahaigaina + + + Virtual Keyboard + Teklatu birtuala + + + Built-in virtual keyboard button size: + Teklatu birutalaren botoi tamaina: + + + Use system keyboard (recommended) + Erabili sistemaren teklatua (gomendatua) + + + Pen + Bolaluma + + + Marker + Markadorea + + + Network + Sarea + + + Internet + Internet + + + Show Page with External Browser + Erakutsi orria kanpoko arakatzailearekin + + + Home Page: + Hasiera orria: + + + Proxy User: + Proxy erabiltzailea: + + + Pass: + Pasahitza: + + + Licences + Lizentziak + + + Credits + Kredituak + + + About + Honi buruz + + + Software Update + SOftware eguneraketa + + + Check software update at launch + Egiaztatu software eguneraketa hasieran + + + Open-Sankoré Importer + Open-Sankoré inportatzailea + + + Check if Open-Sankoré data could be imported at launch + Egiaztatu hasieran Open-Sankoré datuak inportatu daitezkeen + + + Default Settings + Ezarpen lehenetsiak + + + Close + Itxi + + + + trapFlashDialog + + Trap flash + Flasha harrapatu + + + Select a flash to trap + Aukeratu harrapatzeko Flasha + + + about:blank + about:blank + + + Application name + Aplikazio izena + + + Create Application + Sortu aplikazioa + + + diff --git a/resources/i18n/OpenBoard_fr.ts b/resources/i18n/OpenBoard_fr.ts new file mode 100644 index 0000000..a0735e7 --- /dev/null +++ b/resources/i18n/OpenBoard_fr.ts @@ -0,0 +1,3013 @@ + + + + + BlackoutWidget + + Click to Return to Application + Cliquer pour revenir à l'application + + + + DownloadDialog + + Downloads + Téléchargement(s) + + + Clean Up + Nettoyer + + + 0 Items + 0 élément + + + + DownloadItem + + Form + Formulaire + + + Filename + Nom de fichier + + + Try Again + Réessayer + + + Stop + Arrêter + + + Open + Ouvrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publier Podcast sur YouTube + + + Title + Titre + + + Description + Description + + + Author + Auteur + + + + MainWindow + + Board + Tableau + + + Stylus + Stylets + + + Backgrounds + Fonds + + + Undo + Annuler + + + Redo + Rétablir + + + Previous + Précédente + + + PgUp + Page haut + + + Next + Suivante + + + PgDown + Page bas + + + Documents + Documents + + + Web + Web + + + Ctrl+T + Ctrl+T + + + Grid Light Background + Fond quadrillé clair + + + Grid Dark Background + Fond quadrillé foncé + + + Start Screen Recording + Démarrer l'enregistrement de l'écran + + + Marker + Surligneur + + + Selector + Sélecteur + + + Hand + Main + + + Zoom In + Zoomer en avant + + + Zoom Out + Zoomer en arrière + + + Text + Texte + + + Capture + Capture + + + Add To Current Page + Ajouter à la page courante + + + Add To New Page + Ajouter sur une nouvelle page + + + Add To Library + Ajouter à la bibliothèque + + + Pages + Pages + + + New Page + Nouvelle page + + + Configure Podcast Recording + Configurer le podcast + + + Flash Trap + Capturer du contenu Flash + + + Trap Flash Content + Capturer du contenu Flash + + + Web Trap + Capturer du contenu Web + + + Trap Web Content + Capturer du contenu Web + + + Window Capture + Capture d'une fenêtre + + + Show on Display + Montrer sur l'écran de projection + + + Ctrl+D + Ctrl+D + + + Ctrl+W + Ctrl+W + + + Line + Trait + + + Quit + Quitter + + + Pen + Stylet + + + Eraser + Gomme + + + Change Background + Changer le fond d'écran + + + Previous Page + Page précédente + + + Next Page + Page suivante + + + Manage Documents + Gérer les documents + + + Web Browsing + Parcourir le Web + + + Small Line + Ligne fine + + + Medium Line + Ligne moyenne + + + Large Line + Ligne large + + + Smalle Eraser + Gomme fine + + + Medium Eraser + Gomme moyenne + + + Large Eraser + Gomme large + + + Color + Couleur + + + Back + Précédente + + + Left + Gauche + + + Forward + Suivante + + + Right + Droite + + + Reload + Recharger + + + Reload Current Page + Recharger la page courante + + + Load Home Page + Charger la page d'accueil + + + Show Bookmarks + Afficher les favoris + + + Add Bookmark + Ajouter un favori + + + Display Board + Afficher le tableau + + + Ctrl+B + Ctrl+B + + + Erase + Effacer + + + Erase Content + Effacer le contenu + + + Display Preferences + Afficher les préférences + + + Show Library + Afficher la bibliothèque + + + Show Computer Desktop + Afficher le bureau de l'ordinateur + + + Create a New Folder + Créer un nouveau dossier + + + Create a New Document + Créer un nouveau document + + + Import a Document + Importer un document + + + Export a Document + Exporter un document + + + Open Page in Board + Ouvrir la page dans le tableau + + + Duplicate Selected Content + Dupliquer le contenu sélectionné + + + Delete Selected Content + Supprimer le contenu sélectionné + + + Add Content to Document + Ajouter un contenu au document + + + Show Desktop + Bureau + + + Ctrl+Shift+H + Ctrl+Maj+H + + + Rename Content + Renommer le contenu + + + Display Tools + Afficher les outils + + + Use Document Wide Size (16/9) + Utiliser un format large (16/9) + + + Use Document Regular Size (4/3) + Utiliser un format normal (4/3) + + + Use Custom Document Size + Utiliser un format de document personnalisé + + + Stop Loading Web Page + Arrêter le chargement de la page Web + + + Put Presentation to Sleep + Mettre la présentation en pause + + + Display Virtual Keyboard + Afficher le clavier virtuel + + + Record Presentation to Video + Enregistrer la présentation en vidéo + + + Erase Items + Effacer les éléments + + + Erase All Items + Effacer tous les éléments + + + Erase Annotations + Effacer les annotations + + + Erase All Annotations + Effacer toutes les annotations + + + Clear Page + Effacer la page + + + Clear All Elements + Effacer tous les éléments + + + Annotate Document + Annoter le document + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Effacer l'annotation + + + Ctrl+E + Ctrl+E + + + Highlight + Surligner + + + Ctrl+M + Ctrl+M + + + Select And Modify Objects + Sélectionner et modifier des objets + + + Ctrl+F + Ctrl+F + + + Scroll Page + Déplacer la page + + + Laser Pointer + Utiliser le "pointeur laser" + + + Virtual Laser Pointer + Utiliser le "pointeur laser" + + + Ctrl+G + Ctrl+G + + + Draw Lines + Tracer une ligne droite + + + Ctrl+J + Ctrl+J + + + Write Text + Ecrire un texte + + + Ctrl+K + Ctrl+K + + + Add Item To Current Page + Ajouter l'élément à la page courante + + + Add Item To New Page + Ajouter l'élément à une nouvelle page + + + Add Item To Library + Ajouter l'élément à la bibliothèque + + + Create a New Page + Créer une nouvelle page + + + Duplicate Page + Dupliquer la page + + + Duplicate the Current Page + Dupliquer la page courante + + + Import Page + Importer une page + + + Import an External Page + Importer une page externe + + + Pause + Pause + + + Pause Podcast Recording + Mettre en pause l'enregistrement + + + Podcast Config + Configuration du podcast + + + Check Update + Contrôler la mise à jour + + + Ctrl+H + Ctrl+H + + + Capture Part of the Screen + Capturer une partie de l'écran + + + Custom Capture + Capture personnalisée + + + Capture a Window + Capturer une fenêtre + + + Embed Web Content + Embarquer un contenu Web + + + Capture Embeddable Web Content + Capturer un contenu Web embarquable + + + Show Main Screen on Display Screen + Afficher l'écran principal sur l'écran d'affichage + + + Erase all Annotations + Effacer toutes les annotations + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importer une simulation eduMedia + + + Del + Supprimer + + + Add Selected Content to Open Document + Ajouter le contenu sélectionné au document ouvert + + + Stop Loading + Arrêter + + + Sleep + Veille + + + Virtual Keyboard + Clavier virtuel + + + Plain Light Background + Fond clair uni + + + Light + Clair + + + Plain Dark Background + Fond sombre uni + + + Dark + Sombre + + + Podcast + Podcast + + + Record + Enregistrer + + + Wide Size (16/9) + Format large (16/9) + + + Regular Size (4/3) + Format normal (4/3) + + + Custom Size + Format personnalisé + + + Ctrl+L + Ctrl+L + + + Bigger + Plus grand + + + Ctrl++ + Ctrl++ + + + Smaller + Plus petit + + + Ctrl+- + Ctrl+- + + + Open in Board + Ouvrir la page + + + Ctrl+O + Ctrl+O + + + Cut + Couper + + + Copy + Copier + + + Paste + Coller + + + Tools + Outils + + + Multi Screen + Multi-écrans + + + New Folder + Nouveau dossier + + + New Document + Nouveau document + + + Import + Importer + + + Export + Exporter + + + Duplicate + Dupliquer + + + Delete + Supprimer + + + Add to Working Document + Ajouter au document + + + Add + Ajouter + + + Rename + Renommer + + + Home + Accueil + + + Bookmarks + Signets + + + Bookmark + Signet + + + Preferences + Préférences + + + Library + Bibliothèque + + + Ctrl+Z + Ctrl+Z + + + Ctrl+Y + Ctrl+Y + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Quitter OpenBoard + + + Hide OpenBoard + Cacher OpenBoard + + + Hide OpenBoard Application + Masquer OpenBoard + + + Play + j'hésite avec Lancer (dépend du contexte d'usage) + Jouer + + + Interact with items + Interagir avec des objets + + + Erase Background + Effacer le fond + + + Remove the backgound + Supprimer le fond + + + Open Tutorial + Tutoriels + + + Open the tutorial web page + Ouvrir la page Web des tutoriels + + + Ruled Light Background + Fond ligné clair + + + Ruled Dark Background + Fond ligné foncé + + + Reset grid size + Réinitialiser la taille du quadrillage + + + Small Eraser + Gomme fine + + + Color 1 + Couleur 1 + + + Color 2 + Couleur 2 + + + Color 3 + Couleur 3 + + + Color 4 + Couleur 4 + + + Color 5 + Couleur 5 + + + Draw intermediate grid lines + Dessiner des lignes intermédiaires + + + + PasswordDialog + + Authentication Required + Authentification requise + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + + ProxyDialog + + Proxy Authentication + Authentification sur le proxy + + + Connect to Proxy + Se connecter par le proxy + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + Save username and password for future use + Enregistrer le nom d'utilisateur et le mot de passe pour la prochaine.utilisation + + + + QObject + + Element ID = + ID de l'élément = + + + Content is not supported in destination format. + Contenu non supporté dans le format souhaité. + + + Remove Page + Supprimer la page + + + Are you sure you want to remove 1 page from the selected document '%0'? + Voulez-vous vraiment effacer 1 page de ce document '%0'? + + + + UBApplication + + Page Size + Taille de la page + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Nouvelle mise à jour disponible : voulez-vous accéder à la page de téléchargement ? + + + No update available + Pas de mise à jour disponible + + + Update available + Mise à jour disponible + + + Update + Mettre à jour + + + Drawing active scene and thumbnail previews + Dessin de la page active et des aperçus + + + Board drawing... + Dessin du tableau... + + + + UBBackgroundPalette + + Grid size + Taille du quadrillage + + + Draw intermediate grid lines + Dessiner des lignes intermédiaires + + + + UBBoardController + + Downloading content %1 failed + Erreur de téléchargement du contenu %1 + + + Download finished + Téléchargement terminé + + + Unknown tool type %1 + Type d'outil inconnu %1 + + + Add Item + Ajouter un élément + + + All Supported (%1) + Tous (%1) + + + Unknown content type %1 + Type de contenu inconnu (%1) + + + Delete page %1 from document + Supprimer la page %1 du document + + + Page %1 deleted + Page %1 supprimée + + + Add file operation failed: file copying error + Echec d'ajout de document : erreur de copie + + + Group + Grouper + + + Ungroup + Dégrouper + + + Saving document... + Sauvegarde du document... + + + Document has just been saved... + Le document vient d'être sauvegardé... + + + Deleting page %1 + Supression de la page %1 + + + Color + Couleur + + + + UBBoardPaletteManager + + Error Adding Image to Library + Erreur lors de l'ajout d'images à la bibliothèque + + + CapturedImage + Image capturée + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Chargement page (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Propriétés du cache + + + Color: + Couleur : + + + Shape: + Forme : + + + Size: + Taille : + + + Close + Fermer + + + + UBDesktopPalette + + Capture Part of the Screen + Capturer une partie de l'écran + + + Capture the Screen + Capturer l'écran + + + Show the stylus palette + Afficher la barre d'outils du stylet + + + Show Board on Secondary Screen + Afficher le tableau sur l'écran secondaire + + + Show Desktop on Secondary Screen + Afficher le bureau sur l'écran secondaire + + + Show OpenBoard + Afficher OpenBoard + + + + UBDocumentController + + No document selected! + Aucun document sélectionné ! + + + Open Supported File + Ouvrir un fichier compatible + + + New Folder + Nouveau dossier + + + Add Folder of Images + Ajouter un dossier d'images + + + Add Images + Ajouter des images + + + Add Pages from File + Ajouter des pages depuis un fichier + + + Duplicating Document %1 + Copie du document %1 en cours + + + Document %1 copied + Document %1 copié + + + Remove Page + Supprimer la page + + + Remove Document + Supprimer le document + + + Empty Trash + Vider la corbeille + + + Are you sure you want to empty trash? + Voulez-vous vraiment vider la corbeille ? + + + Emptying trash + Supression du contenu de la corbeille + + + Emptied trash + Corbeille vidée + + + Remove Folder + Supprimer le dossier + + + Are you sure you want to remove the folder '%1' and all its content? + Voulez-vous vraiment supprimer le dossier '%1' et tout son contenu ? + + + Importing file %1... + Importation du fichier %1... + + + Failed to import file ... + Impossible d'importer le fichier ... + + + Import all Images from Folder + Importer toutes les images d'un dossier + + + Delete + Supprimer + + + Empty + Vider + + + Trash + Corbeille + + + Open Document + Ouvrir le document + + + Add all Images to Document + Ajouter toutes les images au document + + + All Images (%1) + Toutes les images (%1) + + + Selection does not contain any image files! + La sélection ne contient aucune image ! + + + Are you sure you want to remove the document '%1'? + Voulez-vous vraiment supprimer le document '%1'? + + + Page %1 + Page %1 + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Voulez-vous vraiment effacer %n page de ce document '%1'? + Voulez-vous vraiment effacer %n pages de ce document '%1'? + + + + Folder does not contain any image files + Le dossier ne contient pas d'image + + + Untitled Documents + Documents sans titre + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Le document '%1' a été créé avec une nouvelle version d'OpenBoard (%2). En l'ouvrant vous pourriez perdre des informations. Voulez-vous continuer ? + + + Remove mutliple documents + Supprimer plusieurs documents + + + Are you sure you want to remove all selected documents? + Voulez-vous vraiment supprimer tous les documents sélectionnés? + + + Remove multiple documents + Supprimer plusieurs documents + + + duplicated %1 page + duplicated %1 pages + + %1 page dupliquée + %1 pages dupliquées + + + + Remove Item + Effacer les éléments + + + Are you sure you want to remove the selected item(s) ? + Voulez-vous vraiment supprimer le(s) élément(s) sélectionné(s) ? + + + Title page + page Titre + + + Empty My Documents + Vider Mes Documents + + + + UBDocumentManager + + images + images + + + videos + vidéos + + + objects + objets + + + widgets + appliquettes + + + All supported files (*.%1) + Tous les fichiers supportés (*.%1) + + + File %1 saved + Fichier %1 enregistré + + + Inserting page %1 of %2 + Ajout de la page %1 sur %2 + + + Import successful. + Importation réussie. + + + Import of file %1 successful. + Importation du document %1 réussie. + + + Importing file %1 + j'ai raccourci la phrase pour eviter les soucis de place ! + Importation de %1 en cours + + + + UBDocumentNavigator + + Page %0 + Page %0 + + + + UBDocumentPublisher + + Export failed. + Echec de l'export. + + + + UBDocumentReplaceDialog + + Accept + Accepter + + + Replace + Remplacer + + + Cancel + Annuler + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + Le nom %1 est déjà utilisé. +ATTENTION : En gardant ce nom, l'ancien document sera écrasé par le nouveau. +Un nouveau nom vous permettra de conserver l'ancien document. + + + + UBDocumentTreeModel + + My documents + Mes documents + + + Trash + Corbeille + + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + + UBDocumentTreeView + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + Remove Item + Effacer les éléments + + + Are you sure you want to remove the selected item(s) ? + Voulez-vous vraiment supprimer le(s) élément(s) sélectionné(s) ? + + + Copying page %1/%2 + Copie de la page %1/%2 en cours + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copie) + + + Copying page %1/%2 + Copie de la page %1/%2 en cours + + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + + UBDownloadWidget + + Downloading files + Téléchargement des fichiers en cours + + + Cancel + Annuler + + + + UBDraggableThumbnail + + Page %0 + Page %0 + + + + UBDraggableThumbnailView + + Page %0 + Page %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Avertissements lors de l'exportation + + + Exporting document... + Export du document... + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export successful. + Export réussi. + + + + UBExportCFF + + Export to IWB + Exporter au format CFF (*.iwb) + + + Export as IWB File + Exporter au format CFF (*.iwb) + + + Exporting document... + Exportation du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + + UBExportDocument + + Export as UBZ File + Exporter au format UBZ (*.ubz) + + + Export successful. + Export réussi. + + + Page + Page + + + Exporting document... + Exportation du document... + + + Exporting %1 %2 of %3 + Exportation %1 %2 sur %3 + + + Export to OpenBoard Format + Exporter au format OpenBoard + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + + UBExportDocumentSetAdaptor + + Failed to export... + Echec de l'export... + + + Export as UBX File + Exporter au format UBX (*.ubx) + + + Exporting document... + Export du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + Export to OpenBoard UBX Format + Exporter au format OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Exporter au format PDF (*.pdf) + + + Exporting document... + Exportation du document... + + + Export to PDF + Exporter au format PDF + + + Export successful. + Export terminé. + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + + UBExportPDF + + Export as PDF File + Exporter au format PDF (*.pdf) + + + Exporting page %1 of %2 + Exportation de la page %1 sur %2 + + + Export successful. + Export terminé. + + + Exporting document... + Exportation du document... + + + Export to PDF + Exporter au format PDF (*.pdf) + + + + UBExportWeb + + Page + Page + + + Export as Web data + Exporter en tant que donnée Web + + + Exporting document... + Exportation du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + Export to Web Browser + Exporter vers un navigateur Web + + + + UBFeatureProperties + + Add to page + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + Ajout page + + + Set as background + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + Ajout en fond + + + Add to library + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + Ajout bibliothèque + + + Object informations + Informations + + + + UBFeaturesActionBar + + Add to favorites + Ajouter aux favoris + + + Share + Partager + + + Search + Rechercher + + + Delete + Supprimer + + + Back to folder + Retour au répertoire + + + Remove from favorites + Supprimer des favoris + + + Create new folder + Créer nouveau dossier + + + Rescan file system + Parcourir le système de fichiers + + + + UBFeaturesController + + ImportedImage + Image importée + + + Audios + Sons + + + Movies + Vidéos + + + Pictures + Images + + + Animations + Animations + + + Interactivities + Interactivités + + + Applications + Applications + + + Shapes + Formes + + + Favorites + Favoris + + + Web search + Recherche Web + + + Trash + Corbeille + + + + UBFeaturesNewFolderDialog + + Accept + Accepter + + + Cancel + Annuler + + + Enter a new folder name + Saisir le nom du nouveau dossier + + + + UBFeaturesProgressInfo + + Loading + Chargement en cours + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Verrouillé + + + Visible on Extended Screen + Visible sur l'écran étendu + + + + UBGraphicsItemDelegate + + Locked + Verrouillé + + + Visible on Extended Screen + Visible sur l'écran étendu + + + Go to Content Source + Aller à la source du contenu + + + Set as background + Mettre en fond de page + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Ressource introuvable + + + Unsupported media format + Format multimédia non supporté + + + Media playback service not found + Service multimédia indisponible + + + Media error: + Erreur multimédia : + + + + UBGraphicsTextItem + + <Type Text Here> + <Saisir votre texte ici> + + + + UBGraphicsTextItemDelegate + + Text Color + Couleur du texte + + + Editable + Éditable + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Chargement en cours ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Figé + + + Transform as Tool + Transformer en outil + + + + UBImportCFF + + Common File Format ( + Format de fichier CFF ( + + + Importing file %1... + Importation du fichier %1... + + + Import of file %1 failed. + Echec de l'import du fichier %1. + + + Import successful. + Import terminée. + + + Import failed. + Echec de l'import. + + + + UBImportDocument + + Importing file %1... + Importation du fichier %1... + + + Import successful. + Import terminé. + + + Import of file %1 failed. + Échec de l'import du fichier %1. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (set of documents) (*.ubx) + + + + UBImportImage + + Image Format ( + Format d'image ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Format PDF (*.pdf) + + + PDF import failed. + Échec de l'import du fichier PDF. + + + Importing page %1 of %2 + Importation de la page %1 sur %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Erreur durant la publication de la vidéo sur l'intranet (%1) + + + Publishing to Intranet in progress %1 % + Publication sur l'intranet en cours %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publier + + + + UBKeyboardPalette + + Enter + Retour + + + + UBMainWindow + + Yes + Oui + + + No + Non + + + Ok + Ok + + + + UBMessagesDialog + + Close + Fermer + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Renseigner le nom de l'utilisateur et le mot de passe pour "%1" à %2</qt> + + + Failed to log to Proxy + Connexion au proxy impossible + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Erreur SSL (Secure Socket Layer) sur un serveur sécurisé: + +%1 + +%2 + +Voulez-vous ignorer les erreurs pour ce serveur ? + + + Yes + Oui + + + No + Non + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Données d’Open-Sankoré détectées + + + Show this panel next time + Afficher ce panneau à la prochaine ouverture du logiciel + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Vous pouvez accéder à nouveau à ce panneau au travers des Préférences dans l’onglet A propos. Attention, si vous avez déjà importé les données d’Open-Sankoré vous risquez de perdre les documents courants dans OpenBoard. + + + Cancel + Annuler + + + Proceed + Procéder + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en appuyant sur le bouton “Procéder” pour lancer le processus d’importation. + + + + UBPersistenceManager + + (copy) + (copie) + + + Document Repository Loss + Accès perdu vers le répertoire des documents + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + a perdu l'accès au répertoire des documents '%1'. Malheureusement, l'application sera fermée afin d'éviter la corruption des données. Les dernières modifications pourraient être également perdues. + + + saving document thumbnail for the page %1 + Sauvegarde aperçu page %1 + + + Saving thumbnail of page %1 + Sauvegarde aperçu page %1 + + + Moving page to trash folder... + Déplacement de la page dans la corbeille... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + OpenBoard a perdu l'accès au répertoire des documents '%1'. Malheureusement, l'application sera fermée afin d'éviter la corruption des données. Les dernières modifications pourraient être également perdues. + + + + UBPlatformUtils + + English + Anglais + + + Russian + Russe + + + German + Allemand + + + French + Français + + + Swiss French + Français suisse + + + + UBPodcastController + + Failed to start encoder ... + Échec du démarrage de l'encodeur... + + + No Podcast encoder available ... + Aucun encodeur disponible.pour le podcast... + + + Part %1 + Partie %1 + + + on your desktop ... + sur le bureau ... + + + in folder %1 + dans le dossier %1 + + + Podcast created %1 + Podcast créé %1 + + + Podcast recording error (%1) + Erreur d'enregistrement du podcast (%1) + + + Default Audio Input + Entrée audio par défaut + + + No Audio Recording + Pas d'enregistrement audio + + + Small + Petit + + + Medium + Moyen + + + Full + Maximum + + + Publish to Intranet + Publier sur l'intranet + + + Publish to Youtube + Publier sur Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + Marker is pressure sensitive + Stylet sensible à la pression + + + version: + version : + + + + UBProxyLoginDlg + + Proxy Login + Identification sur le Proxy + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + + UBPublicationDlg + + Publish document on the web + Publier un fichier OpenBoard sur Planète-Sankoré + + + Title: + Titre : + + + Description: + Description : + + + Publish + Publier + + + + UBSettings + + My Movies + Mes films + + + + UBStartupHintsPalette + + Visible next time + Réouvrir la prochaine fois + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Création de vignettes en cours ... + + + %1 thumbnails generated ... + %1 vignettes créées ... + + + loading thumbnail of page %1 + Chargement aperçu page %1 + + + + UBThumbnailTextItem + + Page %0 + Page %0 + + + + UBToolsManager + + Compass + Compas + + + Ruler + Règle + + + Protractor + Rapporteur + + + Mask + Masque + + + Triangle + Équerre + + + Magnifier + Loupe + + + Cache + Spot + + + Axes + Axes + + + + UBTrapFlashController + + Whole page + Page complète + + + Web + Web + + + + UBUpdateDlg + + Document updater + Mise à niveau du document + + + files require an update. + fichiers nécessitant une mise à jour. + + + Backup path: + Chemin de sauvegarde : + + + Browse + Parcourir + + + Update + Mettre à jour + + + Select a backup folder + Sélectionner un dossier de sauvegarde + + + Files update successful! +Please reboot the application to access the updated documents. + Fichiers mis à jour correctement ! +Veuillez redémarrer l'application pour accéder aux documents mis à jour. + + + An error occured during the update. The files have not been affected. + Une erreur s'est produite durant la mise à jour. Les fichiers n'ont pas été affectés. + + + Files update results + Résultats de la mise à jour + + + Updating file + Mise à jour du fichier + + + Please wait the import process will start soon... + Merci de patienter, le processus d'import va commencer... + + + Remind me later + Me le rappeler plus tard + + + + UBWebPluginWidget + + Loading... + Chargement... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 appelé (méthode=%1, statut=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Échec de l'identification YouTube. + + + Error while uploading video to YouTube (%1) + Erreur lors du transfert de la vidéo vers YouTube (%1) + + + Upload to YouTube in progress %1 % + Transfert vers YouTube en cours %1 % + + + + UBYouTubePublishingDialog + + Upload + Téléchargement + + + Autos & Vehicles + Auto/Moto + + + Music + Musique + + + Pets & Animals + Animaux + + + Sports + Sports + + + Travel & Events + Voyages et événements + + + Gaming + Jeux vidéo et autres + + + Comedy + Humour + + + People & Blogs + Personnalités et blogues + + + News & Politics + Actualités et politique + + + Entertainment + Divertissement + + + Education + Éducation + + + Howto & Style + Vie pratique et style + + + Nonprofits & Activism + Organisations à but non lucratif + + + Science & Technology + Sciences et technologies + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Effacer + + + + WBDownloadItem + + Save File + Enregistrer le fichier + + + Download canceled: %1 + Téléchargement annulé : %1 + + + Error opening saved file: %1 + Erreur durant l'ouverture du fichier : %1 + + + Error saving: %1 + Erreur lors de la sauvegarde du fichier : %1 + + + Network Error: %1 + Erreur réseau : %1 + + + seconds + secondes + + + minutes + minutes + + + - %4 %5 remaining + - %4 %5 restante(s) + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/sec) %4 + + + ? + unknown file size + si je me fie aux commentaires des développeurs... + Taille de fichier inconnue + + + %1 of %2 - Stopped + %1 de %2 - arrêté + + + bytes + octets + + + KB + Ko + + + MB + Mo + + + + WBDownloadManager + + 1 Download + 1 téléchargement(s) + + + %1 Downloads + always >= 2 + %1 téléchargement(s) + + + + WBHistoryModel + + Title + Titre + + + Address + Adresse + + + + WBHistoryTreeModel + + Earlier Today + Précédemment dans la journée + + + %1 items + %1 élément(s) + + + + WBSearchLineEdit + + Search + Recherche + + + + WBTabBar + + New &Tab + Nouvel &onglet + + + Clone Tab + Dupliquer onglet + + + &Close Tab + &Fermer onglet + + + Close &Other Tabs + Fermer &autres onglets + + + Reload Tab + Recharger &onglet + + + Reload All Tabs + Recharger tous les onglets + + + + WBTabWidget + + Recently Closed Tabs + Onglets récemment fermés + + + (Untitled) + (Sans titre) + + + + WBToolbarSearch + + Search + Recherche + + + No Recent Searches + Aucune recherche récente + + + Recent Searches + Historique des recherches + + + Clear Recent Searches + Supprimer l'historique des recherches + + + + WBWebPage + + Download + Téléchargement + + + Add to Current Document + Ajouter au document courant + + + PDF + PDF + + + Error loading page: %1 + Erreur de chargement de la page : %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Téléchargement du PDF : préférez-vous télécharger le fichier PDF ou l'ajouter à votre document courant ? + + + + WBWebView + + Open in New Tab + Ouvrir dans un nouvel onglet + + + + XPDFRenderer + + Processing... + Traitement en cours... + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publier le podcast sur YouTube + + + Title + Titre du podcast + + + Description + Description + + + Keywords + Mots-clés + + + Category + Catégorie + + + YouTube Username + Nom d'utilisateur YouTube + + + YouTube Password + Mot de passe YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">En cliquant sur le bouton "Téléchargement", vous certifiez que vous respectez les conditions générales d'utilisation de YouTube </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Sauvegarder les paramètres de connexion + + + OpenBoard + OpenBoard + + + + brushProperties + + Opacity + Opacité + + + On Light Background + Sur fond clair + + + On Dark Background + Sur fond foncé + + + Line Width + Largeur de ligne + + + Medium + Moyenne + + + Strong + Large + + + Fine + Fine + + + Show preview circle from + Visualiser la taille dès + + + Pen is Pressure Sensitive + Stylet sensible à la pression + + + Smooth strokes (experimental) + Lissage des traits (expérimental) + + + Simplify strokes after drawing (experimental) + Simplification des traits post-dessin (expérimental) + + + px + px + + + + capturePublishingDialog + + Dialog + Dialogue + + + Title + Titre + + + E-mail + Courriel + + + Author + Auteur + + + Description + Description + + + + documentPublishingDialog + + Dialog + Dialogue + + + E-mail + Courriel + + + Author + Auteur + + + Description + Description + + + + documents + + OpenBoard Documents + Documents OpenBoard + + + Creation date + Date de création + + + Update date + Date de modification + + + Alphabetical order + Ordre alphabétique + + + Sort Order + Ordre de tri + + + + preferencesDialog + + Preferences + Préférences + + + Default Settings + Réglages par défaut + + + Close + Fermer + + + Display + Afficher + + + Show Page with External Browser + Ouvrir la page dans un navigateur Web externe + + + Virtual Keyboard + Clavier virtuel + + + Keyboard button size: + Taille des touches du clavier virtuel: + + + Positioned at the Top (recommended for tablets) + Positionnée en haut (recommandé pour les tablettes) + + + Positioned at the Bottom (recommended for white boards) + Positionnée en bas (recommandé pour les tableaux interactifs) + + + Display Text Under Button + Afficher les textes sous les boutons + + + Software Update + Mise à jour du logiciel + + + Check software update at launch + Vérifier la mise à jour au lancement + + + Internet + Internet + + + Home Page: + Page d'accueil : + + + version : … + version :... + + + Toolbar + Barre d'outils + + + Stylus Palette + Barre du stylet + + + Horizontal + Horizontale + + + Vertical + Verticale + + + Pen + Stylo + + + Marker + Surligneur + + + About + A propos + + + Licences + Licences + + + Network + Réseau + + + Show internal web page content on secondary screen or projector + Afficher le contenu du navigateur Web interne sur l'écran de projection + + + Multi display + Multi-écrans + + + Swap control display and view display + Inverser la disposition des écrans + + + Mode + Mode + + + Mode to start in: + Démarrer en mode : + + + Board + Tableau + + + Desktop + Bureau + + + Proxy User: + Proxy : + + + Pass: + Mot de passe : + + + Credits + Crédits + + + Open-Sankoré Importer + Importateur de documents Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Vérifier si des données Open-Sankoré peuvent être importées au redémarrage + + + Use system keyboard (recommended) + Utiliser le clavier virtuel système (recommandé) + + + Built-in virtual keyboard button size: + Taille des touches du clavier virtuel integré : + + + Grid + Quadrillage + + + On Dark Background + Sur fond foncé + + + Opacity + Opacité + + + On Light Background + Sur fond clair + + + Swap first and second view displays + Inverser les écrans élèves + + + Documents Mode + Mode Documents + + + Display date column on alphabetical sort + Afficher la colonne des dates avec le tri alphabétique + + + Empty trash for documents older than + Supprimer de la corbeille les documents de plus de + + + days + jours + + + PDF Rendering + Rendu PDF + + + Enable quality loss to increase zoom performances + Activer la perte de qualité pour améliorer les performaces de zoom + + + Improve zoom execution time (can slightly affect rendering quality) + Améliorer la vitesse d'exécution du zoom (peut légèrement affecter la qualité du rendu) + + + + trapFlashDialog + + Trap flash + Capturer du contenu Flash + + + Select a flash to trap + Sélectionner un contenu Flash à capturer + + + about:blank + à propos : vide + + + Application name + Nom de l'application + + + Create Application + Créer une application + + + diff --git a/resources/i18n/OpenBoard_fr_CH.ts b/resources/i18n/OpenBoard_fr_CH.ts new file mode 100644 index 0000000..2b764e9 --- /dev/null +++ b/resources/i18n/OpenBoard_fr_CH.ts @@ -0,0 +1,3013 @@ + + + + + BlackoutWidget + + Click to Return to Application + Cliquer pour revenir à l'application + + + + DownloadDialog + + Downloads + Téléchargement(s) + + + Clean Up + Nettoyer + + + 0 Items + 0 élément + + + + DownloadItem + + Form + Formulaire + + + Filename + Nom de fichier + + + Try Again + Réessayer + + + Stop + Arrêter + + + Open + Ouvrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publier Podcast sur YouTube + + + Title + Titre + + + Description + Description + + + Author + Auteur + + + + MainWindow + + Board + Tableau + + + Stylus + Stylets + + + Backgrounds + Fonds + + + Undo + Annuler + + + Redo + Rétablir + + + Previous + Précédente + + + PgUp + Page haut + + + Next + Suivante + + + PgDown + Page bas + + + Documents + Documents + + + Web + Web + + + Ctrl+T + Ctrl+T + + + Grid Light Background + Fond quadrillé clair + + + Grid Dark Background + Fond quadrillé foncé + + + Start Screen Recording + Démarrer l'enregistrement de l'écran + + + Marker + Surligneur + + + Selector + Sélecteur + + + Hand + Main + + + Zoom In + Zoomer en avant + + + Zoom Out + Zoomer en arrière + + + Text + Texte + + + Capture + Capture + + + Add To Current Page + Ajouter à la page courante + + + Add To New Page + Ajouter sur une nouvelle page + + + Add To Library + Ajouter à la bibliothèque + + + Pages + Pages + + + New Page + Nouvelle page + + + Configure Podcast Recording + Configurer le podcast + + + Flash Trap + Capturer du contenu Flash + + + Trap Flash Content + Capturer du contenu Flash + + + Web Trap + Capturer du contenu Web + + + Trap Web Content + Capturer du contenu Web + + + Window Capture + Capture d'une fenêtre + + + Show on Display + Montrer sur l'écran de projection + + + Ctrl+D + Ctrl+D + + + Ctrl+W + Ctrl+W + + + Line + Trait + + + Quit + Quitter + + + Pen + Stylet + + + Eraser + Gomme + + + Change Background + Changer le fond d'écran + + + Previous Page + Page précédente + + + Next Page + Page suivante + + + Manage Documents + Gérer les documents + + + Web Browsing + Parcourir le Web + + + Small Line + Ligne fine + + + Medium Line + Ligne moyenne + + + Large Line + Ligne large + + + Smalle Eraser + Gomme fine + + + Medium Eraser + Gomme moyenne + + + Large Eraser + Gomme large + + + Color + Couleur + + + Back + Précédente + + + Left + Gauche + + + Forward + Suivante + + + Right + Droite + + + Reload + Recharger + + + Reload Current Page + Recharger la page courante + + + Load Home Page + Charger la page d'accueil + + + Show Bookmarks + Afficher les favoris + + + Add Bookmark + Ajouter un favori + + + Display Board + Afficher le tableau + + + Ctrl+B + Ctrl+B + + + Erase + Effacer + + + Erase Content + Effacer le contenu + + + Display Preferences + Afficher les préférences + + + Show Library + Afficher la bibliothèque + + + Show Computer Desktop + Afficher le bureau de l'ordinateur + + + Create a New Folder + Créer un nouveau dossier + + + Create a New Document + Créer un nouveau document + + + Import a Document + Importer un document + + + Export a Document + Exporter un document + + + Open Page in Board + Ouvrir la page dans le tableau + + + Duplicate Selected Content + Dupliquer le contenu sélectionné + + + Delete Selected Content + Supprimer le contenu sélectionné + + + Add Content to Document + Ajouter un contenu au document + + + Show Desktop + Bureau + + + Ctrl+Shift+H + Ctrl+Maj+H + + + Rename Content + Renommer le contenu + + + Display Tools + Afficher les outils + + + Use Document Wide Size (16/9) + Utiliser un format large (16/9) + + + Use Document Regular Size (4/3) + Utiliser un format normal (4/3) + + + Use Custom Document Size + Utiliser un format de document personnalisé + + + Stop Loading Web Page + Arrêter le chargement de la page Web + + + Put Presentation to Sleep + Mettre la présentation en pause + + + Display Virtual Keyboard + Afficher le clavier virtuel + + + Record Presentation to Video + Enregistrer la présentation en vidéo + + + Erase Items + Effacer les éléments + + + Erase All Items + Effacer tous les éléments + + + Erase Annotations + Effacer les annotations + + + Erase All Annotations + Effacer toutes les annotations + + + Clear Page + Effacer la page + + + Clear All Elements + Effacer tous les éléments + + + Annotate Document + Annoter le document + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Effacer l'annotation + + + Ctrl+E + Ctrl+E + + + Highlight + Surligner + + + Ctrl+M + Ctrl+M + + + Select And Modify Objects + Sélectionner et modifier des objets + + + Ctrl+F + Ctrl+F + + + Scroll Page + Déplacer la page + + + Laser Pointer + Utiliser le "pointeur laser" + + + Virtual Laser Pointer + Utiliser le "pointeur laser" + + + Ctrl+G + Ctrl+G + + + Draw Lines + Tracer une ligne droite + + + Ctrl+J + Ctrl+J + + + Write Text + Ecrire un texte + + + Ctrl+K + Ctrl+K + + + Add Item To Current Page + Ajouter l'élément à la page courante + + + Add Item To New Page + Ajouter l'élément à une nouvelle page + + + Add Item To Library + Ajouter l'élément à la bibliothèque + + + Create a New Page + Créer une nouvelle page + + + Duplicate Page + Dupliquer la page + + + Duplicate the Current Page + Dupliquer la page courante + + + Import Page + Importer une page + + + Import an External Page + Importer une page externe + + + Pause + Pause + + + Pause Podcast Recording + Mettre en pause l'enregistrement + + + Podcast Config + Configuration du podcast + + + Check Update + Contrôler la mise à jour + + + Ctrl+H + Ctrl+H + + + Capture Part of the Screen + Capturer une partie de l'écran + + + Custom Capture + Capture personnalisée + + + Capture a Window + Capturer une fenêtre + + + Embed Web Content + Embarquer un contenu Web + + + Capture Embeddable Web Content + Capturer un contenu Web embarquable + + + Show Main Screen on Display Screen + Afficher l'écran principal sur l'écran d'affichage + + + Erase all Annotations + Effacer toutes les annotations + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importer une simulation eduMedia + + + Del + Supprimer + + + Add Selected Content to Open Document + Ajouter le contenu sélectionné au document ouvert + + + Stop Loading + Arrêter + + + Sleep + Veille + + + Virtual Keyboard + Clavier virtuel + + + Plain Light Background + Fond clair uni + + + Light + Clair + + + Plain Dark Background + Fond sombre uni + + + Dark + Sombre + + + Podcast + Podcast + + + Record + Enregistrer + + + Wide Size (16/9) + Format large (16/9) + + + Regular Size (4/3) + Format normal (4/3) + + + Custom Size + Format personnalisé + + + Ctrl+L + Ctrl+L + + + Bigger + Plus grand + + + Ctrl++ + Ctrl++ + + + Smaller + Plus petit + + + Ctrl+- + Ctrl+- + + + Open in Board + Ouvrir la page + + + Ctrl+O + Ctrl+O + + + Cut + Couper + + + Copy + Copier + + + Paste + Coller + + + Tools + Outils + + + Multi Screen + Multi-écrans + + + New Folder + Nouveau dossier + + + New Document + Nouveau document + + + Import + Importer + + + Export + Exporter + + + Duplicate + Dupliquer + + + Delete + Supprimer + + + Add to Working Document + Ajouter au document + + + Add + Ajouter + + + Rename + Renommer + + + Home + Accueil + + + Bookmarks + Signets + + + Bookmark + Signet + + + Preferences + Préférences + + + Library + Bibliothèque + + + Ctrl+Z + Ctrl+Z + + + Ctrl+Y + Ctrl+Y + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Quitter OpenBoard + + + Hide OpenBoard + Cacher OpenBoard + + + Hide OpenBoard Application + Masquer OpenBoard + + + Play + j'hésite avec Lancer (dépend du contexte d'usage) + Jouer + + + Interact with items + Interagir avec des objets + + + Erase Background + Effacer le fond + + + Remove the backgound + Supprimer le fond + + + Open Tutorial + Tutoriels + + + Open the tutorial web page + Ouvrir la page Web des tutoriels + + + Ruled Light Background + Fond ligné clair + + + Ruled Dark Background + Fond ligné foncé + + + Reset grid size + Réinitialiser la taille du quadrillage + + + Small Eraser + Gomme fine + + + Color 1 + Couleur 1 + + + Color 2 + Couleur 2 + + + Color 3 + Couleur 3 + + + Color 4 + Couleur 4 + + + Color 5 + Couleur 5 + + + Draw intermediate grid lines + Dessiner des lignes intermédiaires + + + + PasswordDialog + + Authentication Required + Authentification requise + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + + ProxyDialog + + Proxy Authentication + Authentification sur le proxy + + + Connect to Proxy + Se connecter par le proxy + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + Save username and password for future use + Enregistrer le nom d'utilisateur et le mot de passe pour la prochaine.utilisation + + + + QObject + + Element ID = + ID de l'élément = + + + Content is not supported in destination format. + Contenu non supporté dans le format souhaité. + + + Remove Page + Supprimer la page + + + Are you sure you want to remove 1 page from the selected document '%0'? + Voulez-vous vraiment effacer 1 page de ce document '%0'? + + + + UBApplication + + Page Size + Taille de la page + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Nouvelle mise à jour disponible : voulez-vous accéder à la page de téléchargement ? + + + No update available + Pas de mise à jour disponible + + + Update available + Mise à jour disponible + + + Update + Mettre à jour + + + Drawing active scene and thumbnail previews + Dessin de la page active et des aperçus + + + Board drawing... + Dessin du tableau... + + + + UBBackgroundPalette + + Grid size + Taille du quadrillage + + + Draw intermediate grid lines + Dessiner des lignes intermédiaires + + + + UBBoardController + + Downloading content %1 failed + Erreur de téléchargement du contenu %1 + + + Download finished + Téléchargement terminé + + + Unknown tool type %1 + Type d'outil inconnu %1 + + + Add Item + Ajouter un élément + + + All Supported (%1) + Tous (%1) + + + Unknown content type %1 + Type de contenu inconnu (%1) + + + Delete page %1 from document + Supprimer la page %1 du document + + + Page %1 deleted + Page %1 supprimée + + + Add file operation failed: file copying error + Echec d'ajout de document : erreur de copie + + + Group + Grouper + + + Ungroup + Dégrouper + + + Saving document... + Sauvegarde du document... + + + Document has just been saved... + Le document vient d'être sauvegardé... + + + Deleting page %1 + Supression de la page %1 + + + Color + Couleur + + + + UBBoardPaletteManager + + Error Adding Image to Library + Erreur lors de l'ajout d'images à la bibliothèque + + + CapturedImage + Image capturée + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Chargement page (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Propriétés du cache + + + Color: + Couleur : + + + Shape: + Forme : + + + Size: + Taille : + + + Close + Fermer + + + + UBDesktopPalette + + Capture Part of the Screen + Capturer une partie de l'écran + + + Capture the Screen + Capturer l'écran + + + Show the stylus palette + Afficher la barre d'outils du stylet + + + Show Board on Secondary Screen + Afficher le tableau sur l'écran secondaire + + + Show Desktop on Secondary Screen + Afficher le bureau sur l'écran secondaire + + + Show OpenBoard + Afficher OpenBoard + + + + UBDocumentController + + No document selected! + Aucun document sélectionné ! + + + Open Supported File + Ouvrir un fichier compatible + + + New Folder + Nouveau dossier + + + Add Folder of Images + Ajouter un dossier d'images + + + Add Images + Ajouter des images + + + Add Pages from File + Ajouter des pages depuis un fichier + + + Duplicating Document %1 + Copie du document %1 en cours + + + Document %1 copied + Document %1 copié + + + Remove Page + Supprimer la page + + + Remove Document + Supprimer le document + + + Empty Trash + Vider la corbeille + + + Are you sure you want to empty trash? + Voulez-vous vraiment vider la corbeille ? + + + Emptying trash + Supression du contenu de la corbeille + + + Emptied trash + Corbeille vidée + + + Remove Folder + Supprimer le dossier + + + Are you sure you want to remove the folder '%1' and all its content? + Voulez-vous vraiment supprimer le dossier '%1' et tout son contenu ? + + + Importing file %1... + Importation du fichier %1... + + + Failed to import file ... + Impossible d'importer le fichier ... + + + Import all Images from Folder + Importer toutes les images d'un dossier + + + Delete + Supprimer + + + Empty + Vider + + + Trash + Corbeille + + + Open Document + Ouvrir le document + + + Add all Images to Document + Ajouter toutes les images au document + + + All Images (%1) + Toutes les images (%1) + + + Selection does not contain any image files! + La sélection ne contient aucune image ! + + + Are you sure you want to remove the document '%1'? + Voulez-vous vraiment supprimer le document '%1'? + + + Page %1 + Page %1 + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Voulez-vous vraiment effacer %n page de ce document '%1'? + Voulez-vous vraiment effacer %n pages de ce document '%1'? + + + + Folder does not contain any image files + Le dossier ne contient pas d'image + + + Untitled Documents + Documents sans titre + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Le document '%1' a été créé avec une nouvelle version d'OpenBoard (%2). En l'ouvrant vous pourriez perdre des informations. Voulez-vous continuer ? + + + Remove mutliple documents + Supprimer plusieurs documents + + + Are you sure you want to remove all selected documents? + Voulez-vous vraiment supprimer tous les documents sélectionnés? + + + Remove multiple documents + Supprimer plusieurs documents + + + duplicated %1 page + duplicated %1 pages + + %1 page dupliquée + %1 pages dupliquées + + + + Remove Item + Effacer les éléments + + + Are you sure you want to remove the selected item(s) ? + Voulez-vous vraiment supprimer le(s) élément(s) sélectionné(s) ? + + + Title page + page Titre + + + Empty My Documents + Vider Mes Documents + + + + UBDocumentManager + + images + images + + + videos + vidéos + + + objects + objets + + + widgets + appliquettes + + + All supported files (*.%1) + Tous les fichiers supportés (*.%1) + + + File %1 saved + Fichier %1 enregistré + + + Inserting page %1 of %2 + Ajout de la page %1 sur %2 + + + Import successful. + Importation réussie. + + + Import of file %1 successful. + Importation du document %1 réussie. + + + Importing file %1 + j'ai raccourci la phrase pour eviter les soucis de place ! + Importation de %1 en cours + + + + UBDocumentNavigator + + Page %0 + Page %0 + + + + UBDocumentPublisher + + Export failed. + Echec de l'export. + + + + UBDocumentReplaceDialog + + Accept + Accepter + + + Replace + Remplacer + + + Cancel + Annuler + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + Le nom %1 est déjà utilisé. +ATTENTION : En gardant ce nom, l'ancien document sera écrasé par le nouveau. +Un nouveau nom vous permettra de conserver l'ancien document. + + + + UBDocumentTreeModel + + My documents + Mes documents + + + Trash + Corbeille + + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + + UBDocumentTreeView + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + Remove Item + Effacer les éléments + + + Are you sure you want to remove the selected item(s) ? + Voulez-vous vraiment supprimer le(s) élément(s) sélectionné(s) ? + + + Copying page %1/%2 + Copie de la page %1/%2 en cours + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copie) + + + Copying page %1/%2 + Copie de la page %1/%2 en cours + + + %1 pages copied + + %1 page copiée + %1 pages copiées + + + + + UBDownloadWidget + + Downloading files + Téléchargement des fichiers en cours + + + Cancel + Annuler + + + + UBDraggableThumbnail + + Page %0 + Page %0 + + + + UBDraggableThumbnailView + + Page %0 + Page %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Avertissements lors de l'exportation + + + Exporting document... + Export du document... + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export successful. + Export réussi. + + + + UBExportCFF + + Export to IWB + Exporter au format CFF (*.iwb) + + + Export as IWB File + Exporter au format CFF (*.iwb) + + + Exporting document... + Exportation du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + + UBExportDocument + + Export as UBZ File + Exporter au format UBZ (*.ubz) + + + Export successful. + Export réussi. + + + Page + Page + + + Exporting document... + Exportation du document... + + + Exporting %1 %2 of %3 + Exportation %1 %2 sur %3 + + + Export to OpenBoard Format + Exporter au format OpenBoard + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + + UBExportDocumentSetAdaptor + + Failed to export... + Echec de l'export... + + + Export as UBX File + Exporter au format UBX (*.ubx) + + + Exporting document... + Export du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + Export to OpenBoard UBX Format + Exporter au format OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Exporter au format PDF (*.pdf) + + + Exporting document... + Exportation du document... + + + Export to PDF + Exporter au format PDF + + + Export successful. + Export terminé. + + + Export failed: location not writable + Impossible d'exporter: pas de droits d'écriture dans le répertoire + + + Export failed + Echec de l'export + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossible d'exporter dans le dossier sélectionné. Vous n'avez pas les permissions nécessaires pour sauvegarder le fichier. + + + + UBExportPDF + + Export as PDF File + Exporter au format PDF (*.pdf) + + + Exporting page %1 of %2 + Exportation de la page %1 sur %2 + + + Export successful. + Export terminé. + + + Exporting document... + Exportation du document... + + + Export to PDF + Exporter au format PDF (*.pdf) + + + + UBExportWeb + + Page + Page + + + Export as Web data + Exporter en tant que donnée Web + + + Exporting document... + Exportation du document... + + + Export successful. + Export réussi. + + + Export failed. + Echec de l'export. + + + Export to Web Browser + Exporter vers un navigateur Web + + + + UBFeatureProperties + + Add to page + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + Ajout page + + + Set as background + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + mettre en fond de page + + + Add to library + j'ai choisi de rendre le bouton plus compact (mais info moins complète) + Ajout bibliothèque + + + Object informations + Informations + + + + UBFeaturesActionBar + + Add to favorites + Ajouter aux favoris + + + Share + Partager + + + Search + Rechercher + + + Delete + Supprimer + + + Back to folder + Retour au répertoire + + + Remove from favorites + Supprimer des favoris + + + Create new folder + Créer nouveau dossier + + + Rescan file system + Parcourir le système de fichiers + + + + UBFeaturesController + + ImportedImage + Image importée + + + Audios + Sons + + + Movies + Vidéos + + + Pictures + Images + + + Animations + Animations + + + Interactivities + Interactivités + + + Applications + Applications + + + Shapes + Formes + + + Favorites + Favoris + + + Web search + Recherche Web + + + Trash + Corbeille + + + + UBFeaturesNewFolderDialog + + Accept + Accepter + + + Cancel + Annuler + + + Enter a new folder name + Saisir le nom du nouveau dossier + + + + UBFeaturesProgressInfo + + Loading + Chargement en cours + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Verrouillé + + + Visible on Extended Screen + Visible sur l'écran étendu + + + + UBGraphicsItemDelegate + + Locked + Verrouillé + + + Visible on Extended Screen + Visible sur l'écran étendu + + + Go to Content Source + Aller à la source du contenu + + + Set as background + mettre en fond de page + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Ressource introuvable + + + Unsupported media format + Format multimédia non supporté + + + Media playback service not found + Service multimédia indisponible + + + Media error: + Erreur multimédia : + + + + UBGraphicsTextItem + + <Type Text Here> + <Saisir votre texte ici> + + + + UBGraphicsTextItemDelegate + + Text Color + Couleur du texte + + + Editable + Éditable + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Chargement en cours ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Figé + + + Transform as Tool + Transformer en outil + + + + UBImportCFF + + Common File Format ( + Format de fichier CFF ( + + + Importing file %1... + Importation du fichier %1... + + + Import of file %1 failed. + Echec de l'import du fichier %1. + + + Import successful. + Import terminée. + + + Import failed. + Echec de l'import. + + + + UBImportDocument + + Importing file %1... + Importation du fichier %1... + + + Import successful. + Import terminé. + + + Import of file %1 failed. + Échec de l'import du fichier %1. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (set of documents) (*.ubx) + + + + UBImportImage + + Image Format ( + Format d'image ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Format PDF (*.pdf) + + + PDF import failed. + Échec de l'import du fichier PDF. + + + Importing page %1 of %2 + Importation de la page %1 sur %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Erreur durant la publication de la vidéo sur l'intranet (%1) + + + Publishing to Intranet in progress %1 % + Publication sur l'intranet en cours %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publier + + + + UBKeyboardPalette + + Enter + Retour + + + + UBMainWindow + + Yes + Oui + + + No + Non + + + Ok + Ok + + + + UBMessagesDialog + + Close + Fermer + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Renseigner le nom de l'utilisateur et le mot de passe pour "%1" à %2</qt> + + + Failed to log to Proxy + Connexion au proxy impossible + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Erreur SSL (Secure Socket Layer) sur un serveur sécurisé: + +%1 + +%2 + +Voulez-vous ignorer les erreurs pour ce serveur ? + + + Yes + Oui + + + No + Non + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Données d’Open-Sankoré détectées + + + Show this panel next time + Afficher ce panneau à la prochaine ouverture du logiciel + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Vous pouvez accéder à nouveau à ce panneau au travers des Préférences dans l’onglet A propos. Attention, si vous avez déjà importé les données d’Open-Sankoré vous risquez de perdre les documents courants dans OpenBoard. + + + Cancel + Annuler + + + Proceed + Procéder + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Des documents Open-Sankoré sont présents sur votre ordinateur. Il est possible de les importer dans OpenBoard en cliquant le bouton "Continuer" pour lancer l'application d'import. + + + + UBPersistenceManager + + (copy) + (copie) + + + Document Repository Loss + Accès perdu vers le répertoire des documents + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + a perdu l'accès au répertoire des documents '%1'. Malheureusement, l'application sera fermée afin d'éviter la corruption des données. Les dernières modifications pourraient être également perdues. + + + saving document thumbnail for the page %1 + Sauvegarde aperçu page %1 + + + Saving thumbnail of page %1 + Sauvegarde aperçu page %1 + + + Moving page to trash folder... + Déplacement de la page dans la corbeille... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + OpenBoard a perdu l'accès au répertoire des documents '%1'. Malheureusement, l'application sera fermée afin d'éviter la corruption des données. Les dernières modifications pourraient être également perdues. + + + + UBPlatformUtils + + English + Anglais + + + Russian + Russe + + + German + Allemand + + + French + Français + + + Swiss French + Français suisse + + + + UBPodcastController + + Failed to start encoder ... + Échec du démarrage de l'encodeur... + + + No Podcast encoder available ... + Aucun encodeur disponible.pour le podcast... + + + Part %1 + Partie %1 + + + on your desktop ... + sur le bureau ... + + + in folder %1 + dans le dossier %1 + + + Podcast created %1 + Podcast créé %1 + + + Podcast recording error (%1) + Erreur d'enregistrement du podcast (%1) + + + Default Audio Input + Entrée audio par défaut + + + No Audio Recording + Pas d'enregistrement audio + + + Small + Petit + + + Medium + Moyen + + + Full + Maximum + + + Publish to Intranet + Publier sur l'intranet + + + Publish to Youtube + Publier sur Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + Marker is pressure sensitive + Stylet sensible à la pression + + + version: + version : + + + + UBProxyLoginDlg + + Proxy Login + Identification sur le Proxy + + + Username: + Nom d'utilisateur : + + + Password: + Mot de passe : + + + + UBPublicationDlg + + Publish document on the web + Publier un fichier OpenBoard sur Planète-Sankoré + + + Title: + Titre : + + + Description: + Description : + + + Publish + Publier + + + + UBSettings + + My Movies + Mes films + + + + UBStartupHintsPalette + + Visible next time + Réouvrir la prochaine fois + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Création de vignettes en cours ... + + + %1 thumbnails generated ... + %1 vignettes créées ... + + + loading thumbnail of page %1 + Chargement aperçu page %1 + + + + UBThumbnailTextItem + + Page %0 + Page %0 + + + + UBToolsManager + + Compass + Compas + + + Ruler + Règle + + + Protractor + Rapporteur + + + Mask + Masque + + + Triangle + Équerre + + + Magnifier + Loupe + + + Cache + Spot + + + Axes + Axes + + + + UBTrapFlashController + + Whole page + Page complète + + + Web + Web + + + + UBUpdateDlg + + Document updater + Mise à niveau du document + + + files require an update. + fichiers nécessitant une mise à jour. + + + Backup path: + Chemin de sauvegarde : + + + Browse + Parcourir + + + Update + Mettre à jour + + + Select a backup folder + Sélectionner un dossier de sauvegarde + + + Files update successful! +Please reboot the application to access the updated documents. + Fichiers mis à jour correctement ! +Veuillez redémarrer l'application pour accéder aux documents mis à jour. + + + An error occured during the update. The files have not been affected. + Une erreur s'est produite durant la mise à jour. Les fichiers n'ont pas été affectés. + + + Files update results + Résultats de la mise à jour + + + Updating file + Mise à jour du fichier + + + Please wait the import process will start soon... + Merci de patienter, le processus d'import va commencer... + + + Remind me later + Me le rappeler plus tard + + + + UBWebPluginWidget + + Loading... + Chargement... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 appelé (méthode=%1, statut=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Échec de l'identification YouTube. + + + Error while uploading video to YouTube (%1) + Erreur lors du transfert de la vidéo vers YouTube (%1) + + + Upload to YouTube in progress %1 % + Transfert vers YouTube en cours %1 % + + + + UBYouTubePublishingDialog + + Upload + Téléchargement + + + Autos & Vehicles + Auto/Moto + + + Music + Musique + + + Pets & Animals + Animaux + + + Sports + Sports + + + Travel & Events + Voyages et événements + + + Gaming + Jeux vidéo et autres + + + Comedy + Humour + + + People & Blogs + Personnalités et blogues + + + News & Politics + Actualités et politique + + + Entertainment + Divertissement + + + Education + Éducation + + + Howto & Style + Vie pratique et style + + + Nonprofits & Activism + Organisations à but non lucratif + + + Science & Technology + Sciences et technologies + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Effacer + + + + WBDownloadItem + + Save File + Enregistrer le fichier + + + Download canceled: %1 + Téléchargement annulé : %1 + + + Error opening saved file: %1 + Erreur durant l'ouverture du fichier : %1 + + + Error saving: %1 + Erreur lors de la sauvegarde du fichier : %1 + + + Network Error: %1 + Erreur réseau : %1 + + + seconds + secondes + + + minutes + minutes + + + - %4 %5 remaining + - %4 %5 restante(s) + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/sec) %4 + + + ? + unknown file size + si je me fie aux commentaires des développeurs... + Taille de fichier inconnue + + + %1 of %2 - Stopped + %1 de %2 - arrêté + + + bytes + octets + + + KB + Ko + + + MB + Mo + + + + WBDownloadManager + + 1 Download + 1 téléchargement(s) + + + %1 Downloads + always >= 2 + %1 téléchargement(s) + + + + WBHistoryModel + + Title + Titre + + + Address + Adresse + + + + WBHistoryTreeModel + + Earlier Today + Précédemment dans la journée + + + %1 items + %1 élément(s) + + + + WBSearchLineEdit + + Search + Recherche + + + + WBTabBar + + New &Tab + Nouvel &onglet + + + Clone Tab + Dupliquer onglet + + + &Close Tab + &Fermer onglet + + + Close &Other Tabs + Fermer &autres onglets + + + Reload Tab + Recharger &onglet + + + Reload All Tabs + Recharger tous les onglets + + + + WBTabWidget + + Recently Closed Tabs + Onglets récemment fermés + + + (Untitled) + (Sans titre) + + + + WBToolbarSearch + + Search + Recherche + + + No Recent Searches + Aucune recherche récente + + + Recent Searches + Historique des recherches + + + Clear Recent Searches + Supprimer l'historique des recherches + + + + WBWebPage + + Download + Téléchargement + + + Add to Current Document + Ajouter au document courant + + + PDF + PDF + + + Error loading page: %1 + Erreur de chargement de la page : %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Téléchargement du PDF : préférez-vous télécharger le fichier PDF ou l'ajouter à votre document courant ? + + + + WBWebView + + Open in New Tab + Ouvrir dans un nouvel onglet + + + + XPDFRenderer + + Processing... + Traitement en cours... + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publier le podcast sur YouTube + + + Title + Titre du podcast + + + Description + Description + + + Keywords + Mots-clés + + + Category + Catégorie + + + YouTube Username + Nom d'utilisateur YouTube + + + YouTube Password + Mot de passe YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">En cliquant sur le bouton "Téléchargement", vous certifiez que vous respectez les conditions générales d'utilisation de YouTube </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Sauvegarder les paramètres de connexion + + + OpenBoard + OpenBoard + + + + brushProperties + + Opacity + Opacité + + + On Light Background + Sur fond clair + + + On Dark Background + Sur fond foncé + + + Line Width + Largeur de ligne + + + Medium + Moyenne + + + Strong + Large + + + Fine + Fine + + + Show preview circle from + Visualiser la taille dès + + + Pen is Pressure Sensitive + Stylet sensible à la pression + + + Smooth strokes (experimental) + Lissage des traits (expérimental) + + + Simplify strokes after drawing (experimental) + Simplification des traits post-dessin (expérimental) + + + px + px + + + + capturePublishingDialog + + Dialog + Dialogue + + + Title + Titre + + + E-mail + Courriel + + + Author + Auteur + + + Description + Description + + + + documentPublishingDialog + + Dialog + Dialogue + + + E-mail + Courriel + + + Author + Auteur + + + Description + Description + + + + documents + + OpenBoard Documents + Documents OpenBoard + + + Creation date + Date de création + + + Update date + Date de modification + + + Alphabetical order + Ordre alphabétique + + + Sort Order + Ordre de tri + + + + preferencesDialog + + Preferences + Préférences + + + Default Settings + Réglages par défaut + + + Close + Fermer + + + Display + Afficher + + + Show Page with External Browser + Ouvrir la page dans un navigateur Web externe + + + Virtual Keyboard + Clavier virtuel + + + Keyboard button size: + Taille des touches du clavier virtuel: + + + Positioned at the Top (recommended for tablets) + Positionnée en haut (recommandé pour les tablettes) + + + Positioned at the Bottom (recommended for white boards) + Positionnée en bas (recommandé pour les tableaux interactifs) + + + Display Text Under Button + Afficher les textes sous les boutons + + + Software Update + Mise à jour du logiciel + + + Check software update at launch + Vérifier la mise à jour au lancement + + + Internet + Internet + + + Home Page: + Page d'accueil : + + + version : … + version :... + + + Toolbar + Barre d'outils + + + Stylus Palette + Barre du stylet + + + Horizontal + Horizontale + + + Vertical + Verticale + + + Pen + Stylo + + + Marker + Surligneur + + + About + A propos + + + Licences + Licences + + + Network + Réseau + + + Show internal web page content on secondary screen or projector + Afficher le contenu du navigateur Web interne sur l'écran de projection + + + Multi display + Multi-écrans + + + Swap control display and view display + Inverser la disposition des écrans + + + Mode + Mode + + + Mode to start in: + Démarrer en mode : + + + Board + Tableau + + + Desktop + Bureau + + + Proxy User: + Proxy : + + + Pass: + Mot de passe : + + + Credits + Crédits + + + Open-Sankoré Importer + Importateur de documents Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Vérifier si des données Open-Sankoré peuvent être importées au redémarrage. + + + Use system keyboard (recommended) + Utiliser le clavier virtuel système (recommandé) + + + Built-in virtual keyboard button size: + Taille des touches du clavier virtuel integré : + + + Grid + Quadrillage + + + On Dark Background + Sur fond foncé + + + Opacity + Opacité + + + On Light Background + Sur fond clair + + + Swap first and second view displays + Inverser les écrans élèves + + + Documents Mode + Mode Documents + + + Display date column on alphabetical sort + Afficher la colonne des dates avec le tri alphabétique + + + Empty trash for documents older than + Supprimer de la corbeille les documents de plus de + + + days + jours + + + PDF Rendering + Rendu PDF + + + Enable quality loss to increase zoom performances + Activer la perte de qualité pour améliorer les performaces de zoom + + + Improve zoom execution time (can slightly affect rendering quality) + Améliorer la vitesse d'exécution du zoom (peut légèrement affecter la qualité du rendu) + + + + trapFlashDialog + + Trap flash + Capturer du contenu Flash + + + Select a flash to trap + Sélectionner un contenu Flash à capturer + + + about:blank + à propos : vide + + + Application name + Nom de l'application + + + Create Application + Créer une application + + + diff --git a/resources/i18n/OpenBoard_gl.ts b/resources/i18n/OpenBoard_gl.ts new file mode 100644 index 0000000..ba0a075 --- /dev/null +++ b/resources/i18n/OpenBoard_gl.ts @@ -0,0 +1,2919 @@ + + + + + BlackoutWidget + + Click to Return to Application + Faga clic para voltar á aplicación + + + + DownloadDialog + + Downloads + Descargas + + + Clean Up + Limpar + + + 0 Items + 0 Elementos + + + + DownloadItem + + Form + Formulario + + + Filename + Nome de arquivo + + + Try Again + Volva a intentalo + + + Stop + Deter + + + Open + Abrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicar Podcast en YouTube + + + Title + Título + + + Description + Descripción + + + Author + Autor + + + + MainWindow + + Board + Encerado + + + Web + Web + + + Documents + Documentos + + + Stylus + Lapis + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fondos + + + Change Background + Cambiar Fondo + + + Undo + Desfacer + + + Ctrl+Z + Ctrl+Z + + + Redo + Repetir + + + Ctrl+Y + Ctrl+Y + + + Previous + Anterior + + + Previous Page + Páxina anterior + + + PgUp + PxArriba + + + Next + Seguinte + + + Next Page + Páxina siguiente + + + PgDown + PxAbaixo + + + Manage Documents + Xestionar documentos + + + Ctrl+D + Ctrl+D + + + Web Browsing + Exploración web + + + Ctrl+W + Ctrl+W + + + Line + Liña + + + Small Line + Liña pequena + + + Medium Line + Liña media + + + Large Line + Liña grande + + + Quit + Saír + + + Eraser + Borrador + + + Smalle Eraser + Borrador pequeno + + + Medium Eraser + Borrador mediano + + + Large Eraser + Borrador grande + + + Color + Cor + + + Back + Atrás + + + Left + Esquerda + + + Forward + Cara a diante + + + Right + Dereita + + + Reload + Volver a cargar + + + Reload Current Page + Volver a cargar páxina actual + + + Home + Inicio + + + Load Home Page + Cargar páxina de inicio + + + Bookmarks + Favoritos + + + Show Bookmarks + Mostrar favoritos + + + Bookmark + Favorito + + + Add Bookmark + Engadir a favoritos + + + Display Board + Mostrar encerado + + + Ctrl+B + Ctrl+B + + + Erase + Borrar + + + Erase Content + Borrar contido + + + Preferences + Preferencias + + + Display Preferences + Mostrar preferencias + + + Library + Biblioteca + + + Show Library + Mostrar biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + Mostrar escritorio + + + Show Computer Desktop + Mostrar escritorio do ordenador + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Máis grande + + + Zoom In + Achegar + + + Ctrl++ + Ctrl++ + + + Smaller + Máis pequeno + + + Zoom Out + Afastar + + + Ctrl+- + Ctrl+- + + + New Folder + Novo cartafol + + + Create a New Folder + Crear un novo cartafol + + + New Document + Novo documento + + + Create a New Document + Crear un novo documento + + + Import + Importar + + + Import a Document + Importar un documento + + + Export + Exportar + + + Export a Document + Exportar un Documento + + + Open in Board + Abrir no encerado + + + Open Page in Board + Abrir a páxina no encerado + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicar + + + Duplicate Selected Content + Duplicar o contido seleccionado + + + Delete + Eliminar + + + Delete Selected Content + Eliminar o contido seleccionado + + + Del + Eliminar + + + Add to Working Document + Engadir ao documento de traballo + + + Add Selected Content to Open Document + Engadir o contido seleccionado ao documento aberto + + + Add + Engadir + + + Add Content to Document + Engadir contido ao documento + + + Rename + Cambiar nome + + + Rename Content + Cambiar nome ao documento + + + Tools + Ferramentas + + + Display Tools + Mostrar Ferramentas + + + Multi Screen + Multipantalla + + + Wide Size (16/9) + Tamaño ancho (16/9) + + + Use Document Wide Size (16/9) + Usar tamaño ancho de documento (16/9) + + + Regular Size (4/3) + Tamaño regular (4/3) + + + Use Document Regular Size (4/3) + Usar tamaño regular de documento (4/3) + + + Custom Size + Tamaño personalizado + + + Use Custom Document Size + Usar tamaño personalizado de documento + + + Stop Loading + Deter carga + + + Stop Loading Web Page + Deter carga da páxina web + + + Cut + Cortar + + + Copy + Copiar + + + Paste + Pegar + + + Sleep + Durmir + + + Put Presentation to Sleep + Poñer a presentación en modo durmir + + + Virtual Keyboard + Teclado virtual + + + Display Virtual Keyboard + Mostrar teclado virtual + + + Plain Light Background + Fondo claro liso + + + Light + Claro + + + Grid Light Background + Fondo claro cuadriculado + + + Plain Dark Background + Fondo escuro liso + + + Dark + Escuro + + + Grid Dark Background + Fondo escuro cuadriculado + + + Podcast + Podcast + + + Record Presentation to Video + Grabar presentación en vídeo + + + Record + Grabar + + + Start Screen Recording + Iniciar grabación de pantalla + + + Erase Items + Borrar elementos + + + Erase All Items + Borrar tódolos elementos + + + Erase Annotations + Borrar anotacións + + + Erase All Annotations + Borrar tódalas anotacións + + + Clear Page + Borrar páxina + + + Clear All Elements + Borrar tódolos elementos + + + Pen + Bolígrafo + + + Annotate Document + Anotar documento + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Borrar anotación + + + Ctrl+E + Ctrl+E + + + Marker + Marcador + + + Highlight + Destacar + + + Ctrl+M + Ctrl+M + + + Selector + Selector + + + Select And Modify Objects + Seleccionar e modificar obxectos + + + Ctrl+F + Ctrl+F + + + Hand + Man + + + Scroll Page + Desplazar páxina + + + Laser Pointer + Punteiro láser + + + Virtual Laser Pointer + Punteiro láser virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Debuxar líneas + + + Ctrl+J + Ctrl+J + + + Text + Texto + + + Write Text + Escribir texto + + + Ctrl+K + Ctrl+K + + + Capture + Captura + + + Capture Part of the Screen + Capturar parte da pantalla + + + Add To Current Page + Engadir á páxina actual + + + Add Item To Current Page + Engadir elemento á páxina actual + + + Add To New Page + Engadir á nova páxina + + + Add Item To New Page + Engadir elemento á nova páxina + + + Add To Library + Engadir á biblioteca + + + Add Item To Library + Engadir elemento á biblioteca + + + Pages + Páxinas + + + Create a New Page + Crear unha nova páxina + + + New Page + Nova páxina + + + Duplicate Page + Duplicar páxina + + + Duplicate the Current Page + Duplicar a páxina actual + + + Import Page + Importar páxina + + + Import an External Page + Importar unha páxina externa + + + Pause + Pausa + + + Pause Podcast Recording + Pausar a grabación de Podcast + + + Podcast Config + Config de podcast + + + Configure Podcast Recording + Configurar grabación de podcast + + + Flash Trap + Captura de elemento Flash + + + Trap Flash Content + Capturar contido Flash + + + Web Trap + Captura de contido web + + + Trap Web Content + Capturar contido web + + + Custom Capture + Captura personalizada + + + Window Capture + Captura de ventana + + + Capture a Window + Capturar unha ventana + + + Embed Web Content + Integrar contido web + + + Capture Embeddable Web Content + Capturar contido web integrable + + + Show on Display + Mostrar en pantalla + + + Show Main Screen on Display Screen + Mostrar pantalla principal na pantalla do monitor + + + Erase all Annotations + Borrar tódalas anotacións + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importar simulación eduMedia + + + Check Update + Comprobar actualizacións + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Salir de OpenBoard + + + Hide OpenBoard + Ocultar OpenBoard + + + Hide OpenBoard Application + Ocultar aplicación OpenBoard + + + Play + Reproducir + + + Interact with items + Interactuar cos elementos + + + Erase Background + Borrar o fondo + + + Remove the backgound + Eliminar o fondo + + + Open Tutorial + Abrir Titorial + + + Open the tutorial web page + Abrir o titorial en páxina web + + + Ruled Light Background + Fondo claro con cuadrícula + + + Ruled Dark Background + Fondo escuro con cuadrícula + + + Reset grid size + Restablecer o tamaño da cuadrícula + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Requirese autentificación + + + Username: + Nome de usuario: + + + Password: + Contrasinal: + + + + ProxyDialog + + Proxy Authentication + Autentificación de proxy + + + Connect to Proxy + Conectar ao Proxy + + + Username: + Nome de usuario: + + + Password: + Contrasinal: + + + Save username and password for future use + Gardar nome de usuario e contrasinal para uso futuro + + + + QObject + + Element ID = + Elemento ID = + + + Content is not supported in destination format. + O formato de destino non permite este contido + + + Remove Page + Eliminar páxina + + + Are you sure you want to remove 1 page from the selected document '%0'? + ¿Está seguro de que quere eliminar 1 páxina do documento seleccionado.'%0? + + + + UBApplication + + Page Size + Tamaño de páxina + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Nova actualización dispoñible, ¿desexa visitar a páxina web? + + + No update available + Ningunha actualización disponible + + + Update available + Actualización dispoñible + + + Update + Actualizar + + + Board drawing... + Debuxo de encerado.. + + + + UBBackgroundPalette + + Grid size + Tamaño da cuadrícula + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Fallo ao descargar contido %1 + + + Download finished + Descarga terminada + + + Unknown tool type %1 + Tipo de ferramenta descoñecida %1 + + + Unknown content type %1 + Tipo de contido descoñecido %1 + + + Add Item + Engadir elemento + + + All Supported (%1) + Todos compatibles (%1) + + + Delete page %1 from document + Borrar a páxina %1 do documento + + + Page %1 deleted + Páxina %1 eliminada + + + Add file operation failed: file copying error + Tódalas operacións con ficheiros fallaron. Erro ao copiar os ficheiros + + + Group + Agrupar + + + Ungroup + Desagrupar + + + Saving document... + Gardando documento... + + + Document has just been saved... + Acaba de gardarse o documento... + + + Deleting page %1 + Borrando páxina %1 + + + Color + Cor + + + + UBBoardPaletteManager + + Error Adding Image to Library + Error ao engadir a imaxe á biblioteca + + + CapturedImage + Imaxe capturada + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Cargando páxina (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Almacenar propiedades en caché + + + Color: + Cor: + + + Shape: + Forma: + + + Size: + Tamaño: + + + Close + Pechar + + + + UBDesktopPalette + + Capture Part of the Screen + Capturar parte da pantalla + + + Capture the Screen + Capturar a pantalla + + + Show the stylus palette + Mostrar a paleta do lapis + + + Show Board on Secondary Screen + Mostrar o encerado na pantalla secundaria + + + Show Desktop on Secondary Screen + Mostrar escritorio na pantalla secundaria + + + Show OpenBoard + Mostrar OpenBoard + + + + UBDocumentController + + New Folder + Novo cartafol + + + Page %1 + Páxina %1 + + + Add Folder of Images + Engadir cartafol de imaxes + + + Add Images + Engadir imaxes + + + Add Pages from File + Engadir páxina dende arquivo + + + Duplicating Document %1 + Duplicando documento %1 + + + Document %1 copied + Documento %1 copiado + + + Remove Page + Eliminar páxina + + + Remove Document + Eliminar documento + + + Are you sure you want to remove the document '%1'? + ¿Está seguro de que desexa eliminar o documento '%1'? + + + Empty Trash + Baleirar papeleira + + + Are you sure you want to empty trash? + ¿Está seguro de que desexa baleirar a papeleira? + + + Emptying trash + Baleirando papeleira + + + Emptied trash + Papelera baleirada + + + Remove Folder + Eliminar cartafol + + + Are you sure you want to remove the folder '%1' and all its content? + ¿Está seturo de que desexa eliminar o cartafol '%1' e todo o seu contido? + + + No document selected! + ¡Ningún documento seleccionado! + + + Open Supported File + Abrir arquivo compatible + + + Importing file %1... + Importando arquivo %1... + + + Failed to import file ... + Fallo ao importar arquivo ... + + + Import all Images from Folder + Importar tódalas imaxes dende o cartafol + + + Delete + Eliminar + + + Empty + Baleirar + + + Trash + Papeleira + + + Open Document + Abrir documento + + + Add all Images to Document + Engadir tódalas imaxes ao documento + + + All Images (%1) + Tódalas imaxes (%1) + + + Selection does not contain any image files! + ¡A selección non contén ningún arquivo de imaxes! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + ¿Está seguro de que desexa eliminar %n páxina(s) do documento seleccionado '%1'? + + + + + Folder does not contain any image files + O cartafol non contén ningún ficheiro con imaxes + + + Untitled Documents + Documentos sen título + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + O documento '%1' foi xerado cunha nova versión de OpenBoard (%2). Ao abrilo, pode perder información. Desexa continuar? + + + Are you sure you want to remove all selected documents? + Está seguro de querer eliminar tódolos documentos seleccionados? + + + Remove multiple documents + Eliminar varios documentos + + + duplicated %1 page + duplicated %1 pages + + %1 páxina copiada + %1 páxinas copiadas + + + + Remove Item + borrar o elemento + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro de que desexa eliminar els elements seleccionats? + + + Title page + Páxina de título + + + + UBDocumentManager + + images + Imaxes + + + videos + Vídeos + + + objects + Obxectos + + + widgets + Widgets + + + All supported files (*.%1) + Tódolos arquivos compatibles (*.%1) + + + File %1 saved + Arquivo %1 gardado + + + Inserting page %1 of %2 + Inserindo páxina %1 de %2 + + + Import successful. + Importación correcta + + + Import of file %1 successful. + O arquivo %1 importouse correctamente + + + Importing file %1 + Importando o ficheiro %1 + + + + UBDocumentNavigator + + Page %0 + Páxina %0 + + + + UBDocumentReplaceDialog + + Accept + Aceptar + + + Replace + substituír + + + Cancel + Cancelar + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + O nome %1 xa está en uso. +Manter este nome sustituirá o documento. +Proporcionar un novo nome creará un novo documento. + + + + UBDocumentTreeModel + + My documents + Os meus documentos + + + Trash + Papeleira + + + %1 pages copied + + %1 páxina copiada + %1 páxinas copiadas + + + + + UBDocumentTreeView + + %1 pages copied + + %1 páxina copiada + %1 páxinas copiadas + + + + Remove Item + borrar o elemento + + + Are you sure you want to remove the selected item(s) ? + ¿Está seguro que desexa eliminar o/s elemento(s) seleccionado(s) ? + + + Copying page %1/%2 + Copiando páxina %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copia) + + + Copying page %1/%2 + Copiando páxina %1/%2 + + + %1 pages copied + + %1 páxinas copiadas + + + + + + UBDownloadWidget + + Downloading files + Descargando arquivos + + + Cancel + Cancelar + + + + UBDraggableThumbnail + + Page %0 + Páxina %0 + + + + UBDraggableThumbnailView + + Page %0 + Páxina %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Apareceron advertencias durante a exportación + + + Exporting document... + Exportando documento... + + + Export failed + Fallou a exportación + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Non foi posible exportar ao lugar seleccionado. Non ten os permisos necesarios para gardar o ficheiro + + + Export failed: location not writable + Fallou a exportación: non se pode escribir no lugar seleccionado + + + Export successful. + Exportación satisfactoria. + + + + UBExportCFF + + Export to IWB + Exportar a IWB + + + Export as IWB File + Exportar como ficheiro IWB + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo na exportación + + + + UBExportDocument + + Page + Páxina + + + Export as UBZ File + Exportar como arquivo UBZ + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Exporting %1 %2 of %3 + Exportando %1 %2 de %3 + + + Export to OpenBoard Format + Exportar ao formato OpenBoard + + + + UBExportDocumentSetAdaptor + + Failed to export... + Fallo na exportación... + + + Export as UBX File + Exportar como arquivo UBX + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo na exportación + + + Export to OpenBoard UBX Format + Exportar ao formato OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Exportar como arquivo PDF + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export to PDF + Exportar a PDF + + + + UBExportPDF + + Export as PDF File + Exportar como arquivo PDF + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Exporting page %1 of %2 + Exportando páxina %1 de %2 + + + Export to PDF + Exportación a PDF + + + + UBExportWeb + + Page + Páxina + + + Export as Web data + Exportar como datos web + + + Exporting document... + Exportando documento... + + + Export successful. + Exportación satisfactoria. + + + Export failed. + Fallo da exportación. + + + Export to Web Browser + Exportar ao explorador web + + + + UBFeatureProperties + + Add to page + Engadir á páxina + + + Set as background + Definir como fondo + + + Add to library + Engadir á biblioteca + + + Object informations + Información do obxecto + + + + UBFeaturesActionBar + + Add to favorites + Engadir a favoritos + + + Share + Compartir + + + Search + Buscar + + + Delete + Eliminar + + + Back to folder + Regresar ao cartafol + + + Remove from favorites + Eliminar de favoritos + + + Create new folder + Crear novo cartafol + + + Rescan file system + Comprobar os ficheiros do sistema + + + + UBFeaturesController + + ImportedImage + Imaxe importada + + + Audios + Ficheiros de Audio + + + Movies + Películas + + + Pictures + Imaxes + + + Animations + Animacións + + + Interactivities + Interactividades + + + Applications + Aplicacións + + + Shapes + Formas + + + Favorites + Favoritos + + + Web search + Búsqueda Web + + + Trash + Papeleira + + + + UBFeaturesNewFolderDialog + + Accept + Aceptar + + + Cancel + Cancelar + + + Enter a new folder name + Introduza un novo nome para o cartafol + + + + UBFeaturesProgressInfo + + Loading + Cargando + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visible en pantalla extendida + + + + UBGraphicsItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visible en pantalla extendida + + + Go to Content Source + Ir á fonte de contido + + + Set as background + Definir como fondo + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Non se puido resolver o recurso multimedia + + + Unsupported media format + Formato multimedia non soportado + + + Media playback service not found + Servizo de reprodución multimedia non atopado + + + Media error: + Erro multimedia: + + + + UBGraphicsTextItem + + <Type Text Here> + <Teclear Texto aquí> + + + + UBGraphicsTextItemDelegate + + Text Color + Cor de texto + + + Editable + Editable + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Cargando... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Conxelado + + + Transform as Tool + Transformar como ferramenta + + + + UBImportCFF + + Common File Format ( + Formato de arquivo común ( + + + Importing file %1... + Importando arquivo %1... + + + Import of file %1 failed. + Fallo na importanción do arquivo %1. + + + Import successful. + Importación satisfactoria. + + + Import failed. + Fallo da importación. + + + + UBImportDocument + + Importing file %1... + Importando arquivo %1... + + + Import successful. + Importación satisfactoria. + + + Import of file %1 failed. + Fallo da importación do arquivo %1. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (conxunto de documentos) (*.ubx) + + + + UBImportImage + + Image Format ( + Formato de imaxe ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Formato de documento portátil (*.pdf) + + + PDF import failed. + Fallo da importación de PDF. + + + Importing page %1 of %2 + Importando páxina %1 de %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Produciuse un erro ao publicar vídeo na intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicación na Intranet en progreso %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicar + + + + UBKeyboardPalette + + Enter + Entrar + + + + UBMainWindow + + Yes + + + + No + Non + + + Ok + Ok + + + + UBMessagesDialog + + Close + Pechar + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Introduza o nome de usuario e o contrasinal para "%1" en %2</qt> + + + Failed to log to Proxy + Fallo ao iniciar sesión en proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Errores SSL: %1 %2 ¿Desexa ignorar estos erros para este servidor? + + + Yes + + + + No + Non + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Borrados Documentos Open-Sankore + + + Show this panel next time + Mostrar este panel a próxima vez + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Sempre pode acceder ao importador de documentos OpenBoard a través do panel Preferencias na lapela Sobre. Aviso, se xa importou os seus datos Open-Sankore, pode perder documentos OpenBoard actuais + + + Cancel + Cancelar + + + Proceed + Continuar + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Os documentos de Open-Sankoré do seu computador. É posible importalos a OpenBoard premendo no botón "Continuar" da aplicación importadora. + + + + UBPersistenceManager + + (copy) + (copiar) + + + Document Repository Loss + Pérdida de documentos do Repositorio + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + perdeu o acceso ao repositorio de documentos '%1'. Desafortunadamente, a aplicación debe pecharse para evitar a corrrupción de datos. Tamén se poden perder os últimos cambios. + + + Moving page to trash folder... + Mover a páxina ao lixo + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + OpenBoard perdeu o acceso ao repositorio de documentos '%1'. Desafortunadamente, a aplicación debe pecharse para evitar a corrrupción de datos. Tamén se poden perder os últimos cambios. + + + + UBPlatformUtils + + English + Inglés + + + Russian + Ruso + + + German + Alemán + + + French + Francés + + + Swiss French + Francés-Suizo + + + + UBPodcastController + + Failed to start encoder ... + Fallo ao iniciar o codificador... + + + No Podcast encoder available ... + Ningún condificador de Podcast dispoñible... + + + Part %1 + Parte %1 + + + on your desktop ... + no seu escritorio... + + + in folder %1 + en cartafol %1 + + + Podcast created %1 + Podcast creado %1 + + + Podcast recording error (%1) + Erro na grabación de podcast (%1) + + + Default Audio Input + Entrada de audio predeterminada + + + No Audio Recording + Ningunha grabación de audio + + + Small + Pequeno + + + Medium + Medio + + + Full + Completo + + + Publish to Intranet + Publicar na Intranet + + + Publish to Youtube + Publicar en Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + versión: + + + Marker is pressure sensitive + O marcador é sensible á presión + + + + UBProxyLoginDlg + + Proxy Login + Inicio de sesión en proxy + + + Username: + Nome de usuario: + + + Password: + Contrasinal: + + + + UBPublicationDlg + + Publish document on the web + Publicar documento na web + + + Title: + Título: + + + Description: + Descripción: + + + Publish + Publicar + + + + UBSettings + + My Movies + As miñas películas + + + + UBStartupHintsPalette + + Visible next time + Visible a próxima vez + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Xerando miniaturas de previsualización... + + + %1 thumbnails generated ... + %1 miniaturas xeradas... + + + loading thumbnail of page %1 + cargando miniaturas da páxina %1 + + + + UBThumbnailTextItem + + Page %0 + Páxina %0 + + + + UBToolsManager + + Mask + Máscara + + + Ruler + Regla + + + Compass + Compás + + + Protractor + Transportador + + + Triangle + Triángulo + + + Magnifier + Lupa + + + Cache + Caché + + + Axes + + + + + UBTrapFlashController + + Whole page + Páxina completa + + + Web + Web + + + + UBUpdateDlg + + Document updater + Actualizador de documento + + + files require an update. + los arquivos requiren unha actualización. + + + Backup path: + Ruta da copia de seguridade: + + + Browse + Explorar + + + Update + Actualizar + + + Select a backup folder + Seleccione un cartafol para a copia de seguridade + + + Files update successful! +Please reboot the application to access the updated documents. + ¡Actualización de arquivos satisfactoria! +Por favor, reinicie a aplicación para acceder aos documentos actualizados. + + + An error occured during the update. The files have not been affected. + Ocurriu un erro durante a actualización. Os archivos no foron afectados. + + + Files update results + Resultados de la actualización de arquivos + + + Updating file + Actualizando arquivo + + + Please wait the import process will start soon... + Por favor espere, o proceso de importación comenzará pronto... + + + Remind me later + Recordamo máis tarde + + + + UBWebPluginWidget + + Loading... + Cargando... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 chamado (método=%1, estado=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Fallo na autentificación de YouTube. + + + Error while uploading video to YouTube (%1) + Error ao cargar o vídeo a YouTube (%1) + + + Upload to YouTube in progress %1 % + Carga de YoutTube en progreso %1 % + + + + UBYouTubePublishingDialog + + Upload + Cargar + + + Autos & Vehicles + Autos & Vehículos + + + Music + Música + + + Pets & Animals + Mascotas & Animais + + + Sports + Deportes + + + Travel & Events + Viaxes & Eventos + + + Gaming + Xogo + + + Comedy + Comedia + + + People & Blogs + Persoas & Blogs + + + News & Politics + Novas & Política + + + Entertainment + Entretemento + + + Education + Educación + + + Howto & Style + Howto & estilo + + + Nonprofits & Activism + Sen ánimo de lucro & Activismo + + + Science & Technology + Ciencia & Tecnoloxía + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Eliminar + + + + WBDownloadItem + + Save File + Gardar arquivo + + + Download canceled: %1 + Descarga cancelada: %1 + + + Error opening saved file: %1 + Erro ao abrir o arquivo gardado: %1 + + + Error saving: %1 + Erro ao gardar: %1 + + + Network Error: %1 + Erro de rede: %1 + + + seconds + segundos + + + minutes + minutos + + + - %4 %5 remaining + - %4 %5 restante + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/seg) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 de %2 - Detido + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Descarga + + + %1 Downloads + always >= 2 + %1 Descargas + + + + WBHistoryModel + + Title + Título + + + Address + Dirección + + + + WBHistoryTreeModel + + Earlier Today + Anteriormente hoxe + + + %1 items + %1 elementos + + + + WBSearchLineEdit + + Search + Búsqueda + + + + WBTabBar + + New &Tab + Nova &Lapela + + + Clone Tab + Duplicar Lapela + + + &Close Tab + &Pechar Lapela + + + Close &Other Tabs + Pechar & Outras Lapelas + + + Reload Tab + Recargar Lapela + + + Reload All Tabs + Volver a cargar tódalas lapelas + + + + WBTabWidget + + Recently Closed Tabs + Lapelas pechadas recentemente + + + (Untitled) + (Sen título) + + + + WBToolbarSearch + + Search + Búsqueda + + + No Recent Searches + Ningunha búsqueda recente + + + Recent Searches + Búsquedas recentes + + + Clear Recent Searches + Borrar búsquedas recentes + + + + WBWebPage + + Download + Descargar + + + Add to Current Document + Engadir ao documento actual + + + PDF + PDF + + + Error loading page: %1 + Erro ao cargar páxina: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Descargar documento PDF: prefererías descargar o arquivo PDF ou engadilo ao documento actual de OpenBoard? + + + + WBWebView + + Open in New Tab + Abrir en nova lapela + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicar Podcast en YouTube + + + Title + Título + + + Description + Descrición + + + Keywords + Palabras clave + + + Category + Categoría + + + YouTube Username + Nome de usuario de YouTube + + + YouTube Password + Contrasinal de Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Ao facer clic en 'Descargar' vostede certifica que posue tódolos dereitos sobre o contido ou que está autorizado por o propietario a publicar o contido en YouTube, e que éste cumple cos termos de servicio de YouTube que aparecen en</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Restablece as credenciais ao reiniciar + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Sobre fondo claro + + + On Dark Background + Sobre fondo escuro + + + Opacity + Opacidade + + + Line Width + Ancho de liña + + + Medium + Medio + + + Strong + Forte + + + Fine + Fino + + + Pen is Pressure Sensitive + O bolígrafo é sensible á presión + + + Show preview circle from + Mostrar vista previa do círculo de + + + px + px + + + + capturePublishingDialog + + Dialog + Diálogo + + + Title + Título + + + E-mail + Correo electrónico + + + Author + Autor + + + Description + Descrición + + + + documents + + OpenBoard Documents + Documentos OpenBoard + + + Creation date + Data de creación + + + Update date + Data de actualización + + + Alphabetical order + Orde alfabética + + + Sort Order + Orde de ordenación + + + + preferencesDialog + + Preferences + Preferencias + + + version : … + versión : … + + + Default Settings + Configuración predeterminada + + + Close + Pechar + + + Display + Mostrar + + + Internet + Internet + + + Show Page with External Browser + Mostrar páxina con explorador externo + + + Home Page: + Páxina de inicio: + + + Virtual Keyboard + Teclado virtual + + + Keyboard button size: + Tamaño das teclas do teclado: + + + Toolbar + Barra de ferramentas + + + Positioned at the Top (recommended for tablets) + Colocar na parte superior (recomendado para computadores tipo tablet) + + + Positioned at the Bottom (recommended for white boards) + Colocar na parte inferior (recomendado para encerados blancos) + + + Display Text Under Button + Mostrar texto debaixo do botón + + + Stylus Palette + Paleta do lápiz + + + Horizontal + Horizontal + + + Vertical + Vertical + + + Pen + Bolígrafo + + + Marker + Marcador + + + About + Acerca de + + + Software Update + Actualización do software + + + Check software update at launch + Comprobar se hai actualizacións do software ao iniciarse + + + Licences + Licenzas + + + Network + Rede + + + Show internal web page content on secondary screen or projector + Mostrar o contido da páxina web nun monitor secundario ou proxector + + + Multi display + Pantalla múltiple + + + Swap control display and view display + Intercambiar control de pantalla e vista de pantalla + + + Mode + Modalidade + + + Mode to start in: + Comenzar en modalidade : + + + Board + Encerado + + + Desktop + Escritorio + + + Proxy User: + Nome de usuario Proxy: + + + Pass: + Contrasinal: + + + Credits + Créditos + + + Open-Sankoré Importer + Importar de Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Comprobe se os datos de Open-Sankoré se poden importar al iniciar + + + Use system keyboard (recommended) + Usar o teclado do sistema (recomendado) + + + Built-in virtual keyboard button size: + Tamaño do botón do teclado virtual integrado + + + Grid + Cuadrícula + + + On Dark Background + Sobre fondo escuro + + + Opacity + Opacidade + + + On Light Background + Sobre fondo claro + + + Swap first and second view displays + Intercambiar control de pantalla e vista de pantalla + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Capturar elemento flash + + + Select a flash to trap + Seleccionar un flash para capturar + + + about:blank + about:blank + + + Application name + Nome da aplicación + + + Create Application + Crear aplicación + + + diff --git a/resources/i18n/OpenBoard_hu.ts b/resources/i18n/OpenBoard_hu.ts new file mode 100644 index 0000000..a66081c --- /dev/null +++ b/resources/i18n/OpenBoard_hu.ts @@ -0,0 +1,2881 @@ + + + + + BlackoutWidget + + Click to Return to Application + Kattintson az alkalmazáshoz való visszatéréshez + + + + DownloadDialog + + Downloads + Letöltések + + + Clean Up + Takarítás + + + 0 Items + 0 elem + + + + DownloadItem + + Form + Űrlap + + + Filename + Fájlnév + + + Try Again + Újra + + + Stop + Állj + + + Open + Megnyitás + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Podcast publikálása a YouTubera + + + Title + Cím + + + Description + Leírás + + + Author + Szerző + + + + MainWindow + + Board + Tábla + + + Web + Web + + + Documents + Dokumentumok + + + Stylus + Képernyő eszköztár + + + Ctrl+T + Ctrl+T + + + Backgrounds + Hátterek + + + Change Background + Háttér váltása + + + Undo + Visszavonás + + + Ctrl+Z + Ctrl+Z + + + Redo + Újra + + + Ctrl+Y + Ctrl+Y + + + Previous + Előző + + + Previous Page + Előző oldal + + + PgUp + PgUp + + + Next + Következő + + + Next Page + Következő oldal + + + PgDown + PgDown + + + Manage Documents + Dokumentumok kezelése + + + Ctrl+D + Ctrl+D + + + Web Browsing + Web böngészés + + + Ctrl+W + Ctrl+W + + + Quit + Kilépés + + + Back + Vissza + + + Left + Bal + + + Forward + Előre + + + Right + Jobb + + + Reload + Újratöltés + + + Home + Kezdőlap + + + Bookmarks + Könyvjelzők + + + Bookmark + Könyvjelző + + + Ctrl+B + Ctrl+B + + + Erase + Törlés + + + Preferences + Beállítások + + + Library + Könyvtár + + + Ctrl+L + Ctrl+L + + + Show Desktop + Asztal megjelenítése + + + Bigger + Nagyobb + + + Ctrl++ + Ctrl++ + + + Smaller + Kisebb + + + Ctrl+- + Ctrl+- + + + New Folder + Új mappa + + + New Document + Új dokumentum + + + Import + Importálás + + + Export + Export + + + Open in Board + Megnyitás a Táblán + + + Ctrl+O + Ctrl+O + + + Duplicate + Másolat + + + Delete + Törlés + + + Del + Del + + + Add to Working Document + Hozzáadás a nyitott dokumentumhoz + + + Add Selected Content to Open Document + Kiválasztott tartalom hozzáadása a megnyitott dokumentumhoz + + + Add + Hozzáadás + + + Rename + Átnevezés + + + Tools + Eszközök + + + Multi Screen + Több kijelző + + + Wide Size (16/9) + Széles méret (16/9) + + + Regular Size (4/3) + szabályos méret (4/3) + + + Custom Size + Egyéni méret + + + Stop Loading + Betöltés megállítása + + + Cut + Kivágás + + + Copy + Másolás + + + Paste + Beillesztés + + + Sleep + Alvó mód + + + Virtual Keyboard + Virtuális billentyűzet + + + Plain Light Background + Sima világos háttér + + + Light + Világos + + + Grid Light Background + Rács világos háttéren + + + Plain Dark Background + Sima sötét háttér + + + Dark + Sötét + + + Grid Dark Background + Rács sötét háttéren + + + Podcast + Podcast + + + Record + Felvétel + + + Start Screen Recording + Képernyő felvétel indítása + + + Erase Items + Elem törlése + + + Erase Annotations + Jegyzetek törlése + + + Clear Page + Oldal törlése + + + Pen + Toll + + + Check Update + Frissítés ellenőrzése + + + Ctrl+H + Ctrl+H + + + Eraser + Radír + + + Marker + Jelölő + + + Selector + Kiválasztó + + + Hand + Kéz + + + Zoom In + Nagyítás + + + Zoom Out + Kicsinyítés + + + Line + Vonal + + + Small Line + Keskeny vonal + + + Medium Line + Közepes vonal + + + Large Line + Vastag vonal + + + Smalle Eraser + Kis radír + + + Medium Eraser + Közepes radír + + + Large Eraser + Nagy radír + + + Color + Szín + + + Reload Current Page + Aktuális oldal újratöltése + + + Load Home Page + Kezdőoldal betöltése + + + Show Bookmarks + Könyvjelzők megjelenítése + + + Add Bookmark + Könyvjelző hozzáadása + + + Display Board + Tábla megjelenítése + + + Erase Content + Tartalom törlése + + + Display Preferences + Tulajdonágok megjelenítése + + + Show Library + Könyvtár megjelenítése + + + Show Computer Desktop + Számítógép Asztal megjelenítése + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Create a New Folder + Új mappa létrehozása + + + Create a New Document + Új dokumentum létrehozása + + + Import a Document + Dokumentum importálása + + + Export a Document + Dokumentum exportálása + + + Open Page in Board + Oldal megnyitása a Táblán + + + Duplicate Selected Content + Kiválasztott tartalom megkettőzése + + + Delete Selected Content + Kijelölt tartalom törlése + + + Add Content to Document + Tartalom hozzáadása a dokumentumhoz + + + Rename Content + Tartalom átnevezése + + + Display Tools + Eszközök megjelenítése + + + Use Document Wide Size (16/9) + Széles méretű dokumentum (16:9) + + + Use Document Regular Size (4/3) + Szabályos dokumentumméret (4/3) + + + Use Custom Document Size + Egyéni documentumméret + + + Stop Loading Web Page + Weboldal betöltésének megállítása + + + Put Presentation to Sleep + Prezentáció alvó módba helyezése + + + Display Virtual Keyboard + Virtuális billentyűzet megjelenítése + + + Record Presentation to Video + Prezentáció rögzítése videóban + + + Erase All Items + Minden elem törlése + + + Erase All Annotations + Minden jegyzet törlése + + + Clear All Elements + Minden elem törlése + + + Annotate Document + Dokuemtum kijegyzetelése + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Jegyzet törlése + + + Ctrl+E + Ctrl+E + + + Highlight + Kiemelő + + + Ctrl+M + Ctrl+M + + + Select And Modify Objects + Objektumok kiválasztása és módosítása + + + Ctrl+F + Ctrl+F + + + Scroll Page + Oldal görgetése + + + Laser Pointer + Lézermutató + + + Virtual Laser Pointer + Virtuális lézermutató + + + Ctrl+G + Ctrl + + + Draw Lines + Vonal rajzolása + + + Ctrl+J + Ctrl+J + + + Text + Szöveg + + + Write Text + Szöveg írása + + + Ctrl+K + Ctrl+K + + + Capture + Metszet + + + Add To Current Page + Hozzáadás a jelenlegi oldalhoz + + + Add Item To Current Page + Elem hozzáadása a jelenlegi oldalhoz + + + Add To New Page + Hozzáadás új oldalhoz + + + Add Item To New Page + Tartalom hozzáadása új oldalhoz + + + Add To Library + Hozzáadás a könyvtárhoz + + + Add Item To Library + Tartalom hozzáadása a könyvtárhoz + + + Pages + Oldalak + + + Create a New Page + Úl oldal létrehozása + + + New Page + Új oldal + + + Duplicate Page + Oldal megkettőzése + + + Duplicate the Current Page + Jelenlegi oldal megkettőzése + + + Import Page + Oldal importálása + + + Import an External Page + Külső oldal importálása + + + Pause + Szünet + + + Pause Podcast Recording + Podcast felvétel szüneteltetése + + + Podcast Config + Podcast konfigurálása + + + Configure Podcast Recording + Podcast felvétel beállítasai + + + Flash Trap + Flash rögzítése + + + Trap Flash Content + Flash tartalom rögzítése + + + Web Trap + Web rögzítése + + + Trap Web Content + Webes tartalom rögzítése + + + Capture Part of the Screen + Képernyőrészlet metszet + + + Custom Capture + Egyéni metszet + + + Capture a Window + Albakmetszet + + + Embed Web Content + Webes tartalom beágyazása + + + Capture Embeddable Web Content + Beágyazott webtartalom metszet + + + Show Main Screen on Display Screen + Kezdőképernyő megjelenítése a kijelzőn + + + Erase all Annotations + Minden jegyzet törlése + + + eduMedia + eduMedia + + + Import eduMedia simulation + eduMedia szimuláció importálása + + + Window Capture + Ablak metszet + + + Show on Display + Megjelenítés a kijelzőn + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Kilépés az OpenBoardból + + + Hide OpenBoard + OpenBoard elrejtése + + + Hide OpenBoard Application + OpenBoard alkalmazás elrejtése + + + Play + Lejátszás + + + Interact with items + Elemek mozgatása + + + Erase Background + Háttér törlése + + + Remove the backgound + Háttér eltávolítása + + + Open Tutorial + Útmutató megnyitása + + + Open the tutorial web page + Útmutató weboldal megnyitása + + + Ruled Light Background + Vonalazott világos háttér + + + Ruled Dark Background + Vonalazott sötét háttér + + + Reset grid size + Rácsméret alaphelyzetbe állítása + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Hitelesítés szükséges + + + Username: + Felhasználónév: + + + Password: + Jelszó: + + + + ProxyDialog + + Proxy Authentication + Proxy hitelesítés + + + Connect to Proxy + Kapcsolódás a proxyhoz + + + Username: + Felhasználónév: + + + Password: + Jelszó: + + + Save username and password for future use + Felhasználónév és jelszó mentése + + + + QObject + + Remove Page + Oldal eltávolítása + + + Are you sure you want to remove 1 page from the selected document '%0'? + Biztosan el akarsz távolítani 1 oldalt a kiválasztott dokumentumból '%0'? + + + Element ID = + + + + Content is not supported in destination format. + + + + + UBApplication + + Page Size + Oldal méret + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Új frissítés elérhető. Szeretne ellátogatni a weboldalra? + + + No update available + Nincs elérhető frissítés + + + Update available + Frissítés elérhető + + + Update + Frissítés + + + Board drawing... + Tábla rajzolása... + + + + UBBackgroundPalette + + Grid size + Rács mérete + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + %1 tartalom letöltése sikertelen + + + Download finished + Letöltés befejezve + + + Unknown tool type %1 + Ismeretlen eszköz típus: %1 + + + Unknown content type %1 + Ismeretlen tartalom típus: %1 + + + Add Item + Elem hozzáadása + + + All Supported (%1) + Mind támogatott (%1) + + + Page %1 deleted + %1. oldal törölve + + + Add file operation failed: file copying error + Fájl hozzáadása sikertelen: Fájl másolási hiba + + + Group + Csoportosítás + + + Ungroup + Csoport bontás + + + Saving document... + Dokumentum mentése... + + + Document has just been saved... + Dokumentum éppen most mentve... + + + Deleting page %1 + %1. oldal törlése + + + Color + Szín + + + + UBBoardPaletteManager + + Error Adding Image to Library + Hiba a kép könyvtárhoz adásakor + + + CapturedImage + KépMetszet + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Oldalak betöltése (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Átmeneti tároló tulajonságok + + + Color: + Szín: + + + Shape: + Alak: + + + Size: + Méret: + + + Close + Bezárás + + + + UBDesktopPalette + + Capture Part of the Screen + Képernyőrészlet metszése + + + Capture the Screen + Képernyőmentés + + + Show the stylus palette + Képernyőeszköztár megjelenítése + + + Show Board on Secondary Screen + Tábla megjelenítése a második kijelzőn + + + Show Desktop on Secondary Screen + Asztal megjelenítése a második kijelzőn + + + Show OpenBoard + OpenBoard megjelenítése + + + + UBDocumentController + + New Folder + Új mappa + + + Page %1 + %1. oldal + + + Add Folder of Images + Képeket tartalmazó mappa hozzáadása + + + Add Images + Képek hozzáadása + + + Add Pages from File + Oldalak hozzáadása fájlból + + + Duplicating Document %1 + %1 dokumentum megkettőzve + + + Document %1 copied + %1 dokumentum átmásolva + + + Remove Page + Oldal eltávolítása + + + Remove Document + Documentum eltávolítása + + + Are you sure you want to remove the document '%1'? + Biztosan szeretné eltávolítani a '%1' dokumentumot? + + + Empty Trash + Kuka kiürítése + + + Are you sure you want to empty trash? + Biztosan szeretné a kukát üríteni? + + + Emptying trash + Kuka kiürítése folyamatban + + + Emptied trash + Kuka kiürítve + + + Remove Folder + Mappa eltávolítása + + + Are you sure you want to remove the folder '%1' and all its content? + Biztosan eltávolítja a(z) '%1' mappát és minden tartalmát? + + + No document selected! + Nincs dokumentum kiválasztva! + + + Open Supported File + Támogatott fájl megnyitása + + + Importing file %1... + %1 fájl importálása... + + + Failed to import file ... + Fájl importálása sikertelen ... + + + Import all Images from Folder + Minden kép importálása mappából + + + Delete + Törlés + + + Empty + Üres + + + Trash + Kuka + + + Open Document + Dokumentum megnyitása + + + Add all Images to Document + Minden kép hozzáadása a Dokumentumhoz + + + All Images (%1) + Minden kép (%1) + + + Selection does not contain any image files! + A kiválasztásban nincs egyetlen kép sem! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Biztosan szeretne eltávolítani %n oldalt a kiválasztott '%1' dokumentumból? + + + + Folder does not contain any image files + A mappa nem tartalmaz egyetlen képet sem + + + Untitled Documents + Névtelen dokumentumok + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + A '%1' dokumentum az OpenBoard újabb verziójával (%2) készült. Megnyitásával néhány információ elveszhet. Szeretné folytatni? + + + Are you sure you want to remove all selected documents? + Biztosan szeretne eltávolítani minden kiválasztott dokumentumot? + + + Remove multiple documents + Több dokumentum eltávolítása + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Title page + + + + + UBDocumentManager + + images + képek + + + videos + videók + + + objects + objektumok + + + widgets + minialkalmazások + + + All supported files (*.%1) + Minden támogatott fájl (*.%1) + + + File %1 saved + %1 fájl mentve + + + Inserting page %1 of %2 + %2 / %1 oldal beszúrása + + + Import successful. + Importálás sikeres. + + + Import of file %1 successful. + %1 fájl importálása sikeres. + + + Importing file %1 + %1 fájl importálása + + + + UBDocumentNavigator + + Page %0 + + + + + UBDocumentReplaceDialog + + Accept + Elfogad + + + Replace + + + + Cancel + Mégse + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + My documents + + + + Trash + Kuka + + + %1 pages copied + + %1 oldal másolva + + + + + UBDocumentTreeView + + Copying page %1/%2 + %1/%2 oldal másolása + + + %1 pages copied + + %1 oldal másolva + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (másolás) + + + Copying page %1/%2 + %1/%2 oldal másolása + + + %1 pages copied + + %1 oldal másolva + + + + + UBDownloadWidget + + Downloading files + Fájlok letöltése + + + Cancel + Mégse + + + + UBDraggableThumbnail + + Page %0 + + + + + UBDraggableThumbnailView + + Page %0 + Oldal %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Figyelmeztetés jelent meg az exportálás alatt + + + Exporting document... + Dokumentum exportálása... + + + Export failed + Exportálás sikertelen + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Az exportálás nem lehetséges a kiválasztott helyre. Nincs megfelelő jogosultsága a fájl mentésére. + + + Export failed: location not writable + Exportálás sikertelen: célhely nem írható + + + Export successful. + Exportálás sikeres. + + + + UBExportCFF + + Export to IWB + + + + Export as IWB File + + + + Exporting document... + Dokumentum exportálása... + + + Export successful. + Exportálás sikeres. + + + Export failed. + Exportálás sikertelen. + + + + UBExportDocument + + Page + oldal + + + Export as UBZ File + Exportálás UBZ fájlként + + + Exporting %1 %2 of %3 + %1 exportálása %2/%3 + + + Export to OpenBoard Format + Exportálás OpenBoard formátumba + + + + UBExportDocumentSetAdaptor + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + Dokumentum exportálása... + + + Export successful. + Exportálás sikeres. + + + Export failed. + Exportálás sikertelen. + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportálás PDF fájlként + + + Export to PDF + Exportálás PDFbe + + + + UBExportPDF + + Export as PDF File + Exportálás PDF fájlként + + + Exporting page %1 of %2 + %2 / %1 oldal exportálása + + + Export to PDF + Exportálás PDFbe + + + + UBExportWeb + + Page + oldal + + + Export as Web data + Exportálás WEB adatként + + + Exporting document... + Dokumentum exportálása... + + + Export successful. + Exportálás sikeres. + + + Export failed. + Exportálás sikertelen. + + + Export to Web Browser + Exportálás WEB Böngészőbe + + + + UBFeatureProperties + + Add to page + Hozzáadás az oldalhoz + + + Add to library + Hozzáadás könyvtárhoz + + + Object informations + Objektum információk + + + + UBFeaturesActionBar + + Add to favorites + Hozzáadás a kedvencekhez + + + Share + Megosztás + + + Search + Keresés + + + Delete + Törlés + + + Back to folder + Vissza a mappába + + + Remove from favorites + Eltávolítás a kedvencekből + + + Create new folder + Új mappa létrehozása + + + Rescan file system + Fájlrendszer újraolvasása + + + + UBFeaturesController + + ImportedImage + ImportáltKépek + + + Audios + Hangok + + + Movies + Filmek + + + Pictures + Képek + + + Animations + Animációk + + + Interactivities + Interaktívok + + + Applications + Alkalmazások + + + Shapes + Alakzatok + + + Favorites + Kedvencek + + + Web search + Webes keresés + + + Trash + Kuka + + + + UBFeaturesNewFolderDialog + + Accept + Elfogad + + + Cancel + Mégse + + + Enter a new folder name + Írjon be egy új mappa nevet + + + + UBFeaturesProgressInfo + + Loading + Betöltés + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Zárolva + + + Visible on Extended Screen + Látható a kiterjesztett képernyőn + + + + UBGraphicsItemDelegate + + Locked + Zárolva + + + Visible on Extended Screen + Látható a kiterjesztett képernyőn + + + Go to Content Source + Ugrás a tartalom forrásához + + + Set as background + Beállítás háttérként + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Média erőforrás nem oldható fel + + + Unsupported media format + Nem támogatott média formátum + + + Media playback service not found + Média lejátszó szolgáltatás nem található + + + Media error: + Média hiba: + + + + UBGraphicsTextItem + + <Type Text Here> + <Szöveg helye> + + + + UBGraphicsTextItemDelegate + + Text Color + Szöveg színe + + + Editable + Szerkeszthető + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Betöltés ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Rögzített + + + Transform as Tool + Átalakítás eszközként + + + + UBImportCFF + + Common File Format ( + + + + Importing file %1... + %1 fájl importálása... + + + Import of file %1 failed. + %1 fájl importálása sikertelen. + + + Import successful. + Importálás sikeres. + + + Import failed. + + + + + UBImportDocument + + Importing file %1... + %1 fájl importálása... + + + Import successful. + Importálás sikeres. + + + Import of file %1 failed. + %1 fájl importálása sikertelen. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Kép formátum ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + PDF importálása sikertelen. + + + Importing page %1 of %2 + %2 / %1 oldal importálása + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Hiba a videó intranetre való publikálása közben (%1) + + + Publishing to Intranet in progress %1 % + Intranetre publikálás folyamatban %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publikálás + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Igen + + + No + Nem + + + Ok + OK + + + + UBMessagesDialog + + Close + Bezárás + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Felhasználónév és jelszó megadása "%1" -hoz %2 -nál</qt> + + + Failed to log to Proxy + Sikertelen a belépés a proxyra + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL hibák: + +%1 + +%2 + +Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál? + + + Yes + Igen + + + No + NEM + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Open-Sankoré dokumentumok észlelve + + + Show this panel next time + Ezen ablak megjelenítése a következő alkalommal + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Mindig elérheti az OpenBoard Importálót a Tulajdonságok panelen a Rólunk fülön. Figyelem, ha már importálta az Open-Sankoré adatait, elveszítheti az aktuális OpenBoard dokuemntumait. + + + Cancel + Mégse + + + Proceed + Folytatás + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Open-Sankoré dokumentumok vannak a számítógépén. Importálásuk az OpenBoardba, a "FOLYTATÁS" gombra kattintva, az elinduló importáló alkalmazással lehetséges. + + + + UBPersistenceManager + + (copy) + (másolás) + + + Document Repository Loss + Dokumentum repository veszteség + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + elveszítette a '%1' dokumentum repository hozzáférését. Sajnálatosan az alkalmazásnak le kellett állnia, hogy elkerülje az adatsérülést. A legutóbbi változtatások elveszhettek. + + + Moving page to trash folder... + Oldal áthelyezése a kukába... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Angol + + + Russian + Orosz + + + German + Német + + + French + Francia + + + Swiss French + Svájci-francia + + + + UBPodcastController + + Failed to start encoder ... + Sikertelen a kódoló indítása... + + + No Podcast encoder available ... + Nincs elérhető podcast kódoló ... + + + Part %1 + %1. rész + + + on your desktop ... + az asztalán ... + + + in folder %1 + %1 mappában + + + Podcast created %1 + %1 podcast létrehozva + + + Podcast recording error (%1) + Podcast rögzítési hiba (%1) + + + Default Audio Input + Alapértelmezett Hang bemenet + + + No Audio Recording + Nincs hangfelvétel + + + Small + Kicsi + + + Medium + Közepes + + + Full + Teljes + + + Publish to Intranet + Publikálás az Intranetre + + + Publish to Youtube + Publikálás a YouTubera + + + OpenBoard Cast + OpenBoard cast + + + + UBPreferencesController + + version: + verziószám: + + + Marker is pressure sensitive + A jelölőtoll nyomásérzékeny + + + + UBProxyLoginDlg + + Proxy Login + Proxy belépés + + + Username: + Felhasználónév: + + + Password: + Jelszó: + + + + UBPublicationDlg + + Publish document on the web + Dokumentum publikálása a WEBre + + + Title: + Cím: + + + Description: + Leírás: + + + Publish + Publikálás + + + + UBSettings + + My Movies + Videóim + + + + UBStartupHintsPalette + + Visible next time + Legközelebb látható + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Előképek létrehozása... + + + %1 thumbnails generated ... + %1 előkép létrehozva... + + + loading thumbnail of page %1 + %1. oldal előképének betöltése + + + + UBThumbnailTextItem + + Page %0 + oldal %0 + + + + UBToolsManager + + Mask + Maszk + + + Ruler + Vonalzó + + + Compass + Iránytű + + + Protractor + Szögmérő + + + Triangle + Háromszögvonalzó + + + Magnifier + Nagyító + + + Cache + Gyorsítótár + + + Axes + + + + + UBTrapFlashController + + Whole page + Teljes oldal + + + Web + Web + + + + UBUpdateDlg + + Document updater + Dokumentum frissítő + + + files require an update. + A fájlok frissítést igényelnek. + + + Backup path: + Biztonsági mentési útvonal: + + + Browse + Tallózás + + + Update + Frissítés + + + Select a backup folder + Válassza ki a biztonsági mentés mappáját + + + Files update successful! +Please reboot the application to access the updated documents. + A fájlok frissítése sikeres. Kérem, hogy indítsa újra az alkalmazást, hogy hozzáférhessen a frissített dokumentumokhoz. + + + An error occured during the update. The files have not been affected. + A frissítés közben hiba lépett fel. A fájlok nem sérültek. + + + Files update results + Fájl frissítés eredménye + + + Updating file + Fájl frissítése + + + Please wait the import process will start soon... + Kérem várjon. Az importálási folyamat hamarosan elindul... + + + Remind me later + Később emlékeztessen + + + + UBWebPluginWidget + + Loading... + Betöltés ... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 called (method=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube hitelesítés sikertelen. + + + Error while uploading video to YouTube (%1) + Hiba a videó YouTubera való feltöltése közben (%1) + + + Upload to YouTube in progress %1 % + Feltöltés a Youtubera folyamatban %1 % + + + + UBYouTubePublishingDialog + + Upload + Feltöltés + + + Autos & Vehicles + Autók & Járművek + + + Music + Zene + + + Pets & Animals + Házi kedvencek @ Állatok + + + Sports + Sport + + + Travel & Events + Utazás & Események + + + Gaming + Játék + + + Comedy + Vígjáték + + + People & Blogs + Emberek & Blogok + + + News & Politics + Hírek & Politika + + + Entertainment + Szórakoztatás + + + Education + Oktatás + + + Howto & Style + Hogyan Csináld & Stílus + + + Nonprofits & Activism + NonProfit & Aktivisták + + + Science & Technology + Tudomány & Technológia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Tisztítás + + + + WBDownloadItem + + Save File + Fájl mentése + + + Download canceled: %1 + Letölés megszakítva: %1 + + + Error opening saved file: %1 + Hiba a mentett állomány megnyitása közben: %1 + + + Error saving: %1 + Hiba a mentés közben: %1 + + + Network Error: %1 + Hálózati hiba: %1 + + + seconds + másodperc + + + minutes + perc + + + - %4 %5 remaining + - %4 %5 maradt + + + %1 of %2 (%3/sec) %4 + %1 / %2 (%3/mp) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 / %2 - Megállítva + + + bytes + byte + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Letöltés + + + %1 Downloads + always >= 2 + %1 Letöltés + + + + WBHistoryModel + + Title + Megnevezés + + + Address + Cím + + + + WBHistoryTreeModel + + Earlier Today + Korábban ma + + + %1 items + %1 elem + + + + WBSearchLineEdit + + Search + Keresés + + + + WBTabBar + + New &Tab + Új fül &T + + + Clone Tab + Fül másolása + + + &Close Tab + Fül bezárása &C + + + Close &Other Tabs + Többi fül bezárása &O + + + Reload Tab + Fül frissítése + + + Reload All Tabs + Minden fül frissítése + + + + WBTabWidget + + Recently Closed Tabs + Mostanában bezárt fülek + + + (Untitled) + (Névtelen) + + + + WBToolbarSearch + + Search + Keresés + + + No Recent Searches + Nincs keresési előzmény + + + Recent Searches + Keresési előzmények + + + Clear Recent Searches + Keresési előzmények törlése + + + + WBWebPage + + Download + Letöltés + + + Add to Current Document + Hozzaadás az aktuális dokumentumhoz + + + PDF + PDF + + + Error loading page: %1 + Hiba a %1 . oldal betöltése közben + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + PDF letöltése: Jobban szeretné letölteni a PDF fájlt vagy hozzáadné az aktuális dokumentumhoz? + + + + WBWebView + + Open in New Tab + Megnyitás új fülön + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Podcast publikálása YouTubera + + + Title + Cím + + + Description + Leírás + + + Keywords + Kulcsszavak + + + Category + Kategória + + + YouTube Username + YouTube felhasználónév + + + YouTube Password + YouTube jelszó + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">A 'Feltöltés' gombra kattintva tanusítod, hogy a tartalom minden jogával rendelkezel vagy a tulajdonos hatalmazott fel, hogy publikusan elérhetővé tedd a tartlmat a YouTubeon és eznem sérti a YouTube felhasználási feltételeit, ami itt található meg: </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Meghatalmazás visszaállítása újraindításkor + + + OpenBoard + OpenBoard + + + + brushProperties + + Opacity + Átlátszatlanság + + + On Light Background + Világos háttéren + + + On Dark Background + Sötét háttéren + + + Line Width + Vonal vastagság + + + Medium + Közepes + + + Strong + Erős + + + Fine + finom + + + Pen is Pressure Sensitive + A toll nyomásérzékeny + + + Show preview circle from + Kör előnézet megjelenítése + + + px + px + + + + capturePublishingDialog + + Dialog + Párbeszéd + + + Title + Cím + + + E-mail + E-mail + + + Author + Szerző + + + Description + Leírás + + + + documents + + OpenBoard Documents + OpenBoard Dokumentumok + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Beállítások + + + Default Settings + Alapbeállítások + + + Close + Bezárás + + + Display + Megjelenítés + + + Show Page with External Browser + Oldal megjelenítése külső böngészővel + + + Virtual Keyboard + Virtuális billentyűzet + + + Positioned at the Top (recommended for tablets) + Felülre állítva (Táblagépekhez ajánlott) + + + Positioned at the Bottom (recommended for white boards) + Alulra állítva (fehér táblákhoz ajánlott) + + + Display Text Under Button + Szöveg megjelenítése a gombok alatt + + + Stylus Palette + Képernyő eszköztár + + + Horizontal + Vízszintes + + + Vertical + Függőleges + + + About + Névjegy + + + Software Update + Szoftver frissítés + + + Check software update at launch + Frissítés ellenőrzése indításkor + + + Internet + Internet + + + Home Page: + Kezdőoldal: + + + Toolbar + Eszköztár + + + Pen + Toll + + + Marker + Jelölőtoll + + + version : … + verziószám: ... + + + Licences + Licenszek + + + Network + Hálózat + + + Show internal web page content on secondary screen or projector + Belső weboldal megjelenítése a másodlagos kijelzőn vagy projektoron + + + Multi display + Több kijelző + + + Swap control display and view display + Vezérlő és megjelenítő kijelző megcserélése + + + Mode + Mód + + + Mode to start in: + Ebben a módban induljon: + + + Board + Tábla + + + Desktop + Asztal + + + Proxy User: + Proxy felhasználó: + + + Pass: + Jelszó: + + + Credits + Készítők + + + Open-Sankoré Importer + Open-Sankoré importáló + + + Check if Open-Sankoré data could be imported at launch + Ellenőrizze ha lehet, hogy Open-Sancoré adatokat kell importálni az indításkor + + + Use system keyboard (recommended) + Rendszer billentyűzet használata (ajánlott) + + + Built-in virtual keyboard button size: + Beépített virtuális billentyűzet gomb méret: + + + Grid + Rács + + + On Dark Background + Sötét háttéren + + + Opacity + Átlátszatlanság + + + On Light Background + Világos háttéren + + + Swap first and second view displays + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Flash rögzítése + + + Select a flash to trap + Flash kiválasztása a rögzítéshez + + + about:blank + about:blank + + + Application name + Alkalmazás neve + + + Create Application + Alkalmazás létrehozása + + + diff --git a/resources/i18n/OpenBoard_it.ts b/resources/i18n/OpenBoard_it.ts new file mode 100644 index 0000000..c134c50 --- /dev/null +++ b/resources/i18n/OpenBoard_it.ts @@ -0,0 +1,2987 @@ + + + + + BlackoutWidget + + Click to Return to Application + Clicca per tornare all'applicazione + + + + DownloadDialog + + Downloads + Scarica + + + Clean Up + Pulisci + + + 0 Items + 0 oggetti + + + + DownloadItem + + Form + Modulo + + + Filename + Nome del file + + + Try Again + Prova di nuovo + + + Stop + Stop + + + Open + Apri + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Pubblica su YouTube + + + Title + Titolo + + + Description + Descrizione + + + Author + Autore + + + + MainWindow + + Board + Lavagna + + + Web + Web + + + Documents + Documenti + + + Stylus + Stilo + + + Ctrl+T + Ctrl+T + + + Backgrounds + Sfondi + + + Change Background + Cambia sfondo + + + Undo + Annulla + + + Ctrl+Z + Ctrl+Z + + + Redo + Rifai + + + Ctrl+Y + Ctrl+Y + + + Previous + Precedente + + + Previous Page + Pagina precedente + + + PgUp + PgSu + + + Next + Successivo + + + Next Page + Pagina successiva + + + PgDown + PgGiù + + + Manage Documents + Gestione documenti + + + Ctrl+D + Ctrl+D + + + Web Browsing + Navigazione web + + + Ctrl+W + Ctrl+W + + + Line + Tratto + + + Small Line + Tratto fine + + + Medium Line + Tratto medio + + + Large Line + Tratto grosso + + + Quit + Esci + + + Eraser + Gomma + + + Smalle Eraser + Gomma piccola + + + Medium Eraser + Gomma media + + + Large Eraser + Gomma grande + + + Color + Colore + + + Back + Indietro + + + Left + Sinistra + + + Forward + Avanti + + + Right + Destra + + + Reload + Ricarica + + + Reload Current Page + Ricarica pagina corrente + + + Home + Home + + + Load Home Page + Carica homepage + + + Bookmarks + Segnalibri + + + Show Bookmarks + Visualizza segnalibri + + + Bookmark + Segnalibro + + + Add Bookmark + Aggiungi segnalibro + + + Display Board + Visualizza lavagna + + + Ctrl+B + Ctrl+B + + + Erase + Cancella + + + Erase Content + Cancella contenuto + + + Preferences + Preferenze + + + Display Preferences + Visualizza preferenze + + + Library + Biblioteca + + + Show Library + Visualizza biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + Mostra desktop + + + Show Computer Desktop + Mostra il desktop del computer + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Più grande + + + Zoom In + Zoom avanti + + + Ctrl++ + Ctrl++ + + + Smaller + Più piccolo + + + Zoom Out + Zoom indietro + + + Ctrl+- + Ctrl+- + + + New Folder + Nuova cartella + + + Create a New Folder + Crea nuova cartella + + + New Document + Nuovo documento + + + Create a New Document + Crea un nuovo documento + + + Import + Importa + + + Import a Document + Importa un documento + + + Export + Esporta + + + Export a Document + Esporta un documento + + + Open in Board + Apri nella lavagna + + + Open Page in Board + Apri la pagina nella lavagna + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplica + + + Duplicate Selected Content + Duplica il contenuto selezionato + + + Delete + Elimina + + + Delete Selected Content + Elimina il contenuto selezionato + + + Del + Elimina + + + Add to Working Document + Aggiungi al documento di lavoro + + + Add Selected Content to Open Document + Aggiungi il contenuto selezionato al documento aperto + + + Add + Aggiungi + + + Add Content to Document + Aggiungi il contenuto al documento + + + Rename + Rinomina + + + Rename Content + Rinomina il contenuto + + + Tools + Strumenti + + + Display Tools + Visualizza strumenti + + + Multi Screen + Multischermo + + + Wide Size (16/9) + Formato largo (16/9) + + + Use Document Wide Size (16/9) + Usa il formato largo (16/9) + + + Regular Size (4/3) + Formato normale (4/3) + + + Use Document Regular Size (4/3) + Usa il formato normale (4/3) + + + Custom Size + Formato personalizzato + + + Use Custom Document Size + Usa il formato personalizzato + + + Stop Loading + Ferma il caricamento + + + Stop Loading Web Page + Ferma il caricamento della pagina web + + + Cut + Taglia + + + Copy + Copia + + + Paste + Incolla + + + Sleep + Sospendi + + + Put Presentation to Sleep + Sospendi la presentazione + + + Virtual Keyboard + Tastiera virtuale + + + Display Virtual Keyboard + Visualizza la tastiera virtuale + + + Plain Light Background + Sfondo chiaro semplice + + + Light + Chiaro + + + Grid Light Background + Sfondo chiaro con griglia + + + Plain Dark Background + Sfondo scuro semplice + + + Dark + Scuro + + + Grid Dark Background + Sfondo scuro con griglia + + + Podcast + Podcast + + + Record Presentation to Video + Registra presentazione come video + + + Record + Registra + + + Start Screen Recording + Inizia registrazione schermo + + + Erase Items + Cancella oggetti + + + Erase All Items + Cancella tutti gli oggetti + + + Erase Annotations + Cancella annotazioni + + + Erase All Annotations + Cancella tutte le annotazioni + + + Clear Page + Pulisci pagina + + + Clear All Elements + Pulisci tutti gli elementi + + + Pen + Penna + + + Annotate Document + Annota documento + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Cancella l'annotazione + + + Ctrl+E + Ctrl+E + + + Marker + Evidenziatore + + + Highlight + Evidenzia + + + Ctrl+M + Ctrl+M + + + Selector + Selettore + + + Select And Modify Objects + Seleziona e modifica oggetti + + + Ctrl+F + Ctrl+F + + + Hand + Mano + + + Scroll Page + Scorri pagina + + + Laser Pointer + Puntatore laser + + + Virtual Laser Pointer + Puntatore laser virtuale + + + Ctrl+G + Ctrl+G + + + Draw Lines + Disegna linee + + + Ctrl+J + Ctrl+J + + + Text + Testo + + + Write Text + Scrivi testo + + + Ctrl+K + Ctrl+K + + + Capture + Cattura + + + Capture Part of the Screen + Cattura parte dello schermo + + + Add To Current Page + Aggiungi alla pagina corrente + + + Add Item To Current Page + Aggiungi oggetto alla pagina corrente + + + Add To New Page + Aggiungi a nuova pagina + + + Add Item To New Page + Aggiungi oggetto a nuova pagina + + + Add To Library + Aggiungi alla biblioteca + + + Add Item To Library + Aggiungi oggetto alla biblioteca + + + Pages + Pagine + + + Create a New Page + Crea una nuova pagina + + + New Page + Nuova pagina + + + Duplicate Page + Duplica pagina + + + Duplicate the Current Page + Duplica la pagina corrente + + + Import Page + Importa pagina + + + Import an External Page + Importa una pagina esterna + + + Pause + Pausa + + + Pause Podcast Recording + Ferma la registrazione del Podcast + + + Podcast Config + Configurazione Podcast + + + Configure Podcast Recording + Configura la registrazione del Podcast + + + Flash Trap + Cattura Flash + + + Trap Flash Content + Cattura contenuto flash + + + Web Trap + Cattura Web + + + Trap Web Content + Cattura contenuto web + + + Custom Capture + Cattura personalizzata + + + Window Capture + Cattura della finestra + + + Capture a Window + Cattura una finestra + + + Embed Web Content + Incorpora contenuto web + + + Capture Embeddable Web Content + Cattura un contenuto web incorporabile + + + Show on Display + Visualizza sullo schermo + + + Show Main Screen on Display Screen + Visualizza lo schermo principale sullo schermo + + + Erase all Annotations + Cancella tutte le annotazioni + + + eduMedia + EduMedia + + + Import eduMedia simulation + Importa simulatore eduMedia + + + Check Update + Controlla aggiornamenti + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Chiudi OpenBoard + + + Hide OpenBoard + Nascondi OpenBoard + + + Hide OpenBoard Application + Nascondi l'applicazione OpenBoard + + + Play + Riproduci + + + Interact with items + Interagisci con gli oggetti + + + Erase Background + Cancella sfondo + + + Remove the backgound + Rimuove lo sfondo + + + Open Tutorial + Apri tutorial + + + Open the tutorial web page + Apri la pagina web del tutorial + + + Ruled Light Background + Sfondo chiaro a righe + + + Ruled Dark Background + Sfondo scuro a righe + + + Reset grid size + Ripristina la dimensione della griglia + + + Small Eraser + Gomma piccola + + + Color 1 + Colore 1 + + + Color 2 + Colore 2 + + + Color 3 + Colore 3 + + + Color 4 + Colore 4 + + + Color 5 + Colore 5 + + + Draw intermediate grid lines + disegna linee di griglia intermedie + + + + PasswordDialog + + Authentication Required + Autenticazione richiesta + + + Username: + Nome utente: + + + Password: + Password: + + + + ProxyDialog + + Proxy Authentication + Autenticazione Proxy + + + Connect to Proxy + Connessione al Proxy + + + Username: + Nome utente: + + + Password: + Password: + + + Save username and password for future use + Salva nome utente e password per usi futuri + + + + QObject + + Element ID = + Elemento ID = + + + Content is not supported in destination format. + Il contenuto non è supportato nel formato di destinazione. + + + Remove Page + Rimuovi pagina + + + Are you sure you want to remove 1 page from the selected document '%0'? + Sei sicuro di voler rimuovere 1 pagina dal documento selezionato '%0'? + + + + UBApplication + + Page Size + Dimensione pagina + + + Podcast + PodCast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Nuovo aggiornamento disponibile, vuoi andare alla pagina web? + + + No update available + Nessun aggiornamento disponibile + + + Update available + Aggiornamento disponibile + + + Update + Aggiornamento + + + Board drawing... + Disegno della lavagna... + + + + UBBackgroundPalette + + Grid size + Dimensione della griglia + + + Draw intermediate grid lines + disegna linee di griglia intermedie + + + + UBBoardController + + Downloading content %1 failed + Download contenuto %1 fallito + + + Download finished + Download completato + + + Unknown tool type %1 + Tipo di strumento %1 sconosciuto + + + Unknown content type %1 + Tipo di contentuto %1 sconosciuto + + + Add Item + Aggiungi oggetto + + + All Supported (%1) + Tutto supportato (%1) + + + Delete page %1 from document + Rimuovi pagina %1 dal documento + + + Page %1 deleted + Pagina %1 rimossa + + + Add file operation failed: file copying error + Operazione di aggiunta file fallita: errore nella copia file + + + Group + Raggruppa + + + Ungroup + Separa + + + Saving document... + Salvataggio documento... + + + Document has just been saved... + Il documento è stato appena salvato... + + + Deleting page %1 + eliminazione della pagina %1 + + + Color + Colore + + + + UBBoardPaletteManager + + Error Adding Image to Library + Errore aggiungendo l'immagine alla biblioteca + + + CapturedImage + ImmagineCatturata + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Caricamento pagina (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Proprietà della cache + + + Color: + Colore: + + + Shape: + Forma: + + + Size: + Dimensione: + + + Close + Chiudi + + + + UBDesktopPalette + + Capture Part of the Screen + Cattura parte dello schermo + + + Capture the Screen + Cattura lo schermo + + + Show the stylus palette + Mostra la palette dello stilo + + + Show Board on Secondary Screen + Mostra la lavagna sullo schermo secondario + + + Show Desktop on Secondary Screen + Mostra il desktop sullo schermo secondario + + + Show OpenBoard + Mostra OpenBoard + + + + UBDocumentController + + New Folder + Nuova cartella + + + Page %1 + Pagina %1 + + + Add Folder of Images + Aggiungi cartella di immagini + + + Add Images + Aggiungi immagini + + + Add Pages from File + Aggiungi pagine da file + + + Duplicating Document %1 + Sto duplicando il documento %1 + + + Document %1 copied + Documento %1 copiato + + + Remove Page + Elimina pagina + + + Remove Document + Elimina documento + + + Are you sure you want to remove the document '%1'? + Sei sicuro di voler eliminare il documento '%1'? + + + Empty Trash + Svuota il cestino + + + Are you sure you want to empty trash? + Sei sicuro di voler svuotare il cestino? + + + Emptying trash + Sto svuotanto il cestino + + + Emptied trash + Cestino svuotato + + + Remove Folder + Elimina cartella + + + Are you sure you want to remove the folder '%1' and all its content? + Sei sicuro di voler eliminare la cartella '%1' e tutto il suo contenuto? + + + No document selected! + Nessun documento selezionato! + + + Open Supported File + Apri file supportato + + + Importing file %1... + Sto importanto il file %1... + + + Failed to import file ... + Importazione del file fallita... + + + Import all Images from Folder + Importa tutte le immagini dalla cartella + + + Delete + Elimina + + + Empty + Vuoto + + + Trash + Cestino + + + Open Document + Apri documento + + + Add all Images to Document + Aggiungi tutte le immagini al documento + + + All Images (%1) + Tutte le immagini (%1) + + + Selection does not contain any image files! + La selezione non contiene nessun file immagine! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Sei sicuro di voler rimuovere %n pagina dal documento '%1' selezionato? + Sei sicuro di voler rimuovere %n pagine dal documento '%1' selezionato? + + + + Folder does not contain any image files + La cartella non contiene alcun file immagine + + + Untitled Documents + Documenti senza titolo + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Il documento "%1" è stato generato con una più recente versione di OpenBoard (%2). Aprendolo, si possono perdere alcune informazioni. Procedere ugualmente? + + + Are you sure you want to remove all selected documents? + Sicuri di voler rimuovere tutti i documenti selezionati? + + + Remove multiple documents + Rimuovi documenti multipli + + + duplicated %1 page + duplicated %1 pages + + %1 pagina copiata + %1 pagine copiate + + + + Remove Item + Cancella oggetti + + + Are you sure you want to remove the selected item(s) ? + Sei sicuro di voler cancellare l'(gli) item selezionato(i)? + + + Title page + Frontespizio + + + + UBDocumentManager + + images + immagini + + + videos + video + + + objects + oggetti + + + widgets + widget + + + All supported files (*.%1) + Tutti i file supportati (*.%1) + + + File %1 saved + File %1 salvato + + + Inserting page %1 of %2 + Inserimento di pagina %1 di %2 + + + Import successful. + Importazione riuscita. + + + Import of file %1 successful. + Importazione del file %1 riuscita. + + + Importing file %1 + Sto importando il file %1 + + + + UBDocumentNavigator + + Page %0 + Pagina %0 + + + + UBDocumentPublisher + + Export failed. + Esportazione fallita. + + + + UBDocumentReplaceDialog + + Accept + Accetta + + + Replace + Sostituisci + + + Cancel + Annulla + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + Il nome %1 è già usato. +Conservando questo nome si sostituirà il documento. +Dando un nuovo nome si creerà un nuovo documento. + + + + UBDocumentTreeModel + + My documents + I miei documenti + + + Trash + Cestino + + + %1 pages copied + + %1 pagina copiata + %1 pagine copiate + + + + + UBDocumentTreeView + + %1 pages copied + + %1 pagina copiata + %1 pagine copiate + + + + Remove Item + Cancella oggetti + + + Are you sure you want to remove the selected item(s) ? + Sei sicuro di voler cancellare l'(gli) item selezionato(i)? + + + Copying page %1/%2 + Sto copiando pagina %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copia) + + + Copying page %1/%2 + Sto copiando pagina %1/%2 + + + %1 pages copied + + %1 pagina copiata + %1 pagine copiate + + + + + UBDownloadWidget + + Downloading files + Download in corso + + + Cancel + Annulla + + + + UBDraggableThumbnail + + Page %0 + Pagina %0 + + + + UBDraggableThumbnailView + + Page %0 + Pagina %0 + + + + UBExportAdaptor + + Warnings during export was appeared + È apparso un avviso durante l'esportazione + + + Exporting document... + Esportazione documento in corso... + + + Export failed + Esportazione fallita + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossibile esportare nella posizione selezionata. Non possiedi i permessi necessari a salvare il file. + + + Export failed: location not writable + Esportazione fallita: posizione non scrivibile + + + Export successful. + Esportazione riuscita. + + + + UBExportCFF + + Export to IWB + Esporta in IWB + + + Export as IWB File + Esporta come file IWB + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione conclusa con successo. + + + Export failed. + Esportazione fallita. + + + + UBExportDocument + + Page + Pagina + + + Export as UBZ File + Esporta come file UBZ + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione completata con successo. + + + Exporting %1 %2 of %3 + Esportazione %1 %2 di %3 in corso + + + Export to OpenBoard Format + Esporta nel formato OpenBoard + + + Export failed: location not writable + Exportazione fallita: posizione non scrivibile + + + Export failed + Esportazione fallita + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossibile esportare nella posizione selezionata. Non possiedi i permessi necessari a salvare il file. + + + + UBExportDocumentSetAdaptor + + Failed to export... + Esportazione fallita... + + + Export as UBX File + Esporta come file UBX + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione riuscita. + + + Export failed. + Esportazione fallita. + + + Export to OpenBoard UBX Format + Esporta nel formato OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Esporta come PDF + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione completata con successo. + + + Export to PDF + Esporta in PDF + + + Export failed: location not writable + Esportazione fallita: posizione non scrivibile + + + Export failed + Esportazione fallita + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossibile esportare alla posizione selezionata. Non possiedi i permessi necessari a salvare il file. + + + + UBExportPDF + + Export as PDF File + Esporta come file PDF + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione riuscita. + + + Exporting page %1 of %2 + Esportazione pagina %1 di %2 + + + Export to PDF + Esporta in PDF + + + + UBExportWeb + + Page + Pagina + + + Export as Web data + Esporta come dati Web + + + Exporting document... + Esportazione documento in corso... + + + Export successful. + Esportazione completata con successo. + + + Export failed. + Esportazione fallita. + + + Export to Web Browser + Esporta nel browser web + + + + UBFeatureProperties + + Add to page + Aggiungi alla pagina + + + Set as background + Imposta come sfondo + + + Add to library + Aggiungi alla Biblioteca + + + Object informations + Informazioni sull'oggetto + + + + UBFeaturesActionBar + + Add to favorites + Aggiungi ai preferiti + + + Share + Condividi + + + Search + Cerca + + + Delete + Elimina + + + Back to folder + Torna alla cartella + + + Remove from favorites + Rimuovi dai preferiti + + + Create new folder + Crea nuova cartella + + + Rescan file system + Ripeti la scansione del file system + + + + UBFeaturesController + + ImportedImage + ImmagineImportata + + + Audios + Audio + + + Movies + Filmati + + + Pictures + Immagini + + + Animations + Animazioni + + + Interactivities + Interattività + + + Applications + Applicazioni + + + Shapes + Forme + + + Favorites + Preferiti + + + Web search + Ricerca web + + + Trash + Cestino + + + + UBFeaturesNewFolderDialog + + Accept + Accetta + + + Cancel + Annulla + + + Enter a new folder name + Inserisci un nuovo nome di cartella + + + + UBFeaturesProgressInfo + + Loading + Caricamento in corso + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Bloccato + + + Visible on Extended Screen + Visibile sullo schermo esteso + + + + UBGraphicsItemDelegate + + Locked + Bloccato + + + Visible on Extended Screen + Visibile sullo schermo esteso + + + Go to Content Source + Vai alla sorgente del contenuto + + + Set as background + Imposta come sfondo + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + La risorsa multimediale non può essere gestita + + + Unsupported media format + Formato multimediale non supportato + + + Media playback service not found + Servizio di esecuzione multimediale non trovato + + + Media error: + Errore multimediale: + + + + UBGraphicsTextItem + + <Type Text Here> + <Inserisci il testo qui> + + + + UBGraphicsTextItemDelegate + + Text Color + Colore testo + + + Editable + Modificabile + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Caricamento in corso... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Congelato + + + Transform as Tool + Trasforma in strumento + + + + UBImportCFF + + Common File Format ( + Common File Format ( + + + Importing file %1... + Importazione del file %1 in corso... + + + Import of file %1 failed. + L'importazione del file %1 è fallita. + + + Import successful. + Importazione completata con successo. + + + Import failed. + Importazione fallita. + + + + UBImportDocument + + Importing file %1... + Importazione del file %1 in corso... + + + Import successful. + Importazione completata con successo. + + + Import of file %1 failed. + L'importazione del file %1 è fallita. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (insieme di documenti) (*.ubx) + + + + UBImportImage + + Image Format ( + Formato immagine ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Importazione del PDF fallita. + + + Importing page %1 of %2 + Importazione della pagina %1 di %2 in corso + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Errore nella pubblicazione del video in intranet (%1) + + + Publishing to Intranet in progress %1 % + Pubblicazione in intranet in corso %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Pubblica + + + + UBKeyboardPalette + + Enter + Invio + + + + UBMainWindow + + Yes + + + + No + No + + + Ok + Ok + + + + UBMessagesDialog + + Close + Chiudi + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Inserisci username e password per "%1" al %2</qt> + + + Failed to log to Proxy + Login al proxy fallito + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Errori SSL: + +%1 + +%2 + +Vuoi ignorare gli errori per questo host? + + + Yes + + + + No + No + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Rilevati documenti Open-Sankore + + + Show this panel next time + Mostra questo pannello la prossima volta + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + È sempre possibile accedere all'importatore di documenti OpenBoard tramite il pannello delle preferenze nella scheda delle informazioni su OpenBoard. Attenzione, se si è già importato dati Open-Sankore, è possibile perdere i documenti OpenBoard correnti. + + + Cancel + Annulla + + + Proceed + Procedi + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Documenti Open-Sankoré sono presenti nel computer. È possibile importarli in OpenBoard premendo il pulsante “Procedi” per avviare l'applicazione di importazione. + + + + UBPersistenceManager + + (copy) + (copia) + + + Document Repository Loss + Perdita archivio documenti + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + ha perso l'accesso al repository documenti "%1". Sfortunatamente l'applicazione deve essere chiusa per evitare di rovinare i dati. Gli ultimi cambiamenti potrebbero andare persi. + + + Saving thumbnail of page %1 + Salvataggio della miniatura della pagina %1 + + + Moving page to trash folder... + Spostamento della pagina nella cartella del cestino... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + OpenBoard ha perso l'accesso al repository documenti "%1". Sfortunatamente l'applicazione deve essere chiusa per evitare di rovinare i dati. Gli ultimi cambiamenti potrebbero andare persi. + + + + UBPlatformUtils + + English + Inglese + + + Russian + Russo + + + German + Tedesco + + + French + Francese + + + Swiss French + Francese Svizzero + + + + UBPodcastController + + Failed to start encoder ... + Impossibile avviare il codificatore... + + + No Podcast encoder available ... + Nessun codificatore Podcast disponibile ... + + + Part %1 + Parte %1 + + + on your desktop ... + sul tuo desktop ... + + + in folder %1 + nella cartella %1 + + + Podcast created %1 + Podcast creato %1 + + + Podcast recording error (%1) + Errore registrazione Podcast (%1) + + + Default Audio Input + Ingresso audio predefinito + + + No Audio Recording + Nessuna registrazione audio + + + Small + Piccolo + + + Medium + Medio + + + Full + Pieno + + + Publish to Intranet + Pubblica in Intranet + + + Publish to Youtube + Pubblica su Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + versione: + + + Marker is pressure sensitive + L'evidenziatore è sensibile alla pressione + + + + UBProxyLoginDlg + + Proxy Login + Login Proxy + + + Username: + Nome utente: + + + Password: + Password: + + + + UBPublicationDlg + + Publish document on the web + Pubblica documento sul web + + + Title: + Titolo: + + + Description: + Descrizione: + + + Publish + Pubblica + + + + UBSettings + + My Movies + I miei film + + + + UBStartupHintsPalette + + Visible next time + Visibile la prossima volta + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Generazione della miniatura di anteprima in corso... + + + %1 thumbnails generated ... + %1 miniature generate... + + + loading thumbnail of page %1 + Caricamento miniatura della pagina %1 + + + + UBThumbnailTextItem + + Page %0 + Pagina %0 + + + + UBToolsManager + + Mask + Maschera + + + Ruler + Righello + + + Compass + Compasso + + + Protractor + Goniometro + + + Triangle + Squadra + + + Magnifier + Lente + + + Cache + Cache + + + Axes + Assi + + + + UBTrapFlashController + + Whole page + Pagina intera + + + Web + Web + + + + UBUpdateDlg + + Document updater + Aggiorna documento + + + files require an update. + i file necessitano di un aggiornamento. + + + Backup path: + Percorso di backup: + + + Browse + Sfoglia + + + Update + Aggiorna + + + Select a backup folder + Seleziona una cartella di backup + + + Files update successful! +Please reboot the application to access the updated documents. + Aggiornamento file eseguito! +Si prega di riavviare l'applicazione per accedere ai documenti aggiornati. + + + An error occured during the update. The files have not been affected. + Si è verificato un errore durante l'aggiornamento. I file non sono stati coinvolti. + + + Files update results + Risultati dell'aggiornamento dei file + + + Updating file + Aggiornamento file in corso + + + Please wait the import process will start soon... + Si prega di attendere. Il processo di importazione inizierà a breve... + + + Remind me later + Ricordamelo in seguito + + + + UBWebPluginWidget + + Loading... + Caricamento in corso... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 chiamati (metodo=%1, stato=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Autenticazione su YouTube fallita. + + + Error while uploading video to YouTube (%1) + Errore durante il caricamento del video su YouTube (%1) + + + Upload to YouTube in progress %1 % + Caricamento su YouTube in corso %1 % + + + + UBYouTubePublishingDialog + + Upload + Caricamento + + + Autos & Vehicles + Auto e veicoli + + + Music + Musica + + + Pets & Animals + Animali + + + Sports + Sport + + + Travel & Events + Viaggi ed eventi + + + Gaming + Giochi + + + Comedy + Commedia + + + People & Blogs + Persone e blog + + + News & Politics + Attualità e politica + + + Entertainment + Intrattenimento + + + Education + Istruzione + + + Howto & Style + Howto e stile + + + Nonprofits & Activism + Non profit ed attivismo + + + Science & Technology + Scienza e tecnologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Cancella + + + + WBDownloadItem + + Save File + Salva file + + + Download canceled: %1 + Download annullato: %1 + + + Error opening saved file: %1 + Errore nell'apertura del file salvato: %1 + + + Error saving: %1 + Errore nel salvataggio: %1 + + + Network Error: %1 + Errore di rete: %1 + + + seconds + secondi + + + minutes + minuti + + + - %4 %5 remaining + - %4 %5 ancora da scaricare + + + %1 of %2 (%3/sec) %4 + %1 di %2 (%3/sec) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 di %2 - Interrotto + + + bytes + byte + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Download + + + %1 Downloads + always >= 2 + %1 Download + + + + WBHistoryModel + + Title + Titolo + + + Address + Indirizzo + + + + WBHistoryTreeModel + + Earlier Today + Oggi prima + + + %1 items + %1 oggetti + + + + WBSearchLineEdit + + Search + Ricerca + + + + WBTabBar + + New &Tab + Nuova &Scheda + + + Clone Tab + Clona scheda + + + &Close Tab + &Chiudi scheda + + + Close &Other Tabs + Chiudi &Altre schede + + + Reload Tab + Ricarica scheda + + + Reload All Tabs + Ricarica tutte le schede + + + + WBTabWidget + + Recently Closed Tabs + Schede chiuse di recente + + + (Untitled) + (Senza titolo) + + + + WBToolbarSearch + + Search + Cerca + + + No Recent Searches + Nessuna ricerca recente + + + Recent Searches + Ricerche recenti + + + Clear Recent Searches + Cancella le ricerche recenti + + + + WBWebPage + + Download + Scarica + + + Add to Current Document + Aggiungi al documento corrente + + + PDF + PDF + + + Error loading page: %1 + Errore nel caricamento della pagina: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Scarica il documento PDF: preferisci scaricare il file PDF o aggiungerlo al documento OpenBoard corrente? + + + + WBWebView + + Open in New Tab + Apri in una nuova scheda + + + + XPDFRenderer + + Processing... + Processo in corso… + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Pubblica Podcast su Youtube + + + Title + Titolo + + + Description + Descrizione + + + Keywords + Parole chiave + + + Category + Categoria + + + YouTube Username + Nome utente Youtube + + + YouTube Password + Password Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Premendo 'Upload', certifichi di possedere tutti i diritti sul contenuto o di essere stato autorizzato dal proprietario a rendere questi contenuti pubblici su Youtube, e che in ogni modo siano conformi ai termini di utilizzo di Youtube che puoi trovare all'indirizzo: </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Ripristina le credenziali al riavvio + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Su sfondo chiaro + + + On Dark Background + Su sfondo scuro + + + Opacity + Opacità + + + Line Width + Larghezza tratto + + + Medium + Medio + + + Strong + Grosso + + + Fine + Sottile + + + Pen is Pressure Sensitive + La penna è sensibile alla pressione + + + Show preview circle from + Mostra l'anteprima del cerchio a partire da + + + px + px + + + + capturePublishingDialog + + Dialog + Dialogo + + + Title + Titolo + + + E-mail + E-mail + + + Author + Autore + + + Description + Descrizione + + + + documentPublishingDialog + + Dialog + Dialogo + + + Title + Titolo + + + E-mail + E-mail + + + Author + Autore + + + Description + Descrizione + + + + documents + + OpenBoard Documents + Documenti OpenBoard + + + Creation date + Data di creazione + + + Update date + Data di modifica + + + Alphabetical order + Ordine alfabetico + + + Sort Order + Ordinamento + + + + preferencesDialog + + Preferences + Preferenze + + + version : … + versione : ... + + + Default Settings + Impostazioni predefinite + + + Close + Chiudi + + + Display + Schermo + + + Internet + Internet + + + Show Page with External Browser + Visualizza la pagina con un browser esterno + + + Home Page: + Homepage: + + + Virtual Keyboard + Tastiera virtuale + + + Keyboard button size: + Dimensione pulsanti tastiera: + + + Toolbar + Barra degli strumenti + + + Positioned at the Top (recommended for tablets) + Posizionata in alto (consigliato per tablet) + + + Positioned at the Bottom (recommended for white boards) + Posizionata in basso (consigliato per lavagne) + + + Display Text Under Button + Visualizza testo sotto il pulsante + + + Stylus Palette + Palette stilo + + + Horizontal + Orizzontale + + + Vertical + Verticale + + + Pen + Penna + + + Marker + Evidenziatore + + + About + Informazioni su + + + Software Update + Aggiorna il software + + + Check software update at launch + All'avvio controlla gli aggiornamenti del software disponibili + + + Licences + Licenze + + + Network + Rete + + + Show internal web page content on secondary screen or projector + Mostra il contenuto interno della pagina web sullo schermo secondario o sul proiettore + + + Multi display + Multi schermo + + + Swap control display and view display + Scambia lo schermo di controllo con quello di visualizzazione + + + Mode + Modalità + + + Mode to start in: + Modalità di avvio: + + + Board + Lavagna + + + Desktop + Desktop + + + Proxy User: + Utente proxy: + + + Pass: + Password: + + + Credits + Riconoscimenti + + + Open-Sankoré Importer + Apri l'importatore Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Controlla se i dati Open-Sankoré possono venir importati all'avvio + + + Use system keyboard (recommended) + Usa la tastiera di sistema (raccomandato) + + + Built-in virtual keyboard button size: + Dimensione pulsanti tastiera virtuale incorporata: + + + Grid + Griglia + + + On Light Background + Su sfondo chiaro + + + Opacity + Opacità + + + On Dark Background + Su sfondo scuro + + + Swap first and second view displays + Scambia lo schermo di controllo con quello di visualizzazione + + + Documents Mode + Modalità Documenti + + + Display date column on alphabetical sort + Visualizza la colonna delle date con ordinamento alfabetico. + + + Empty trash for documents older than + Cancellare dal cestino i documenti di étà superiore a + + + days + giorni + + + PDF Rendering + rendering PDF + + + Enable quality loss to increase zoom performances + Permettere una perdita di qualità per aumentare le prestazioni dello zoom + + + Improve zoom execution time (can slightly affect rendering quality) + Migliorare la velocità dello zoom (può influire leggermente sulla qualità del rendering) + + + + trapFlashDialog + + Trap flash + Cattura flash + + + Select a flash to trap + Seleziona un'applicazione flash da catturare + + + about:blank + about:blank + + + Application name + Nome applicazione + + + Create Application + Crea applicazione + + + diff --git a/resources/i18n/OpenBoard_iw.ts b/resources/i18n/OpenBoard_iw.ts new file mode 100644 index 0000000..c44ddd5 --- /dev/null +++ b/resources/i18n/OpenBoard_iw.ts @@ -0,0 +1,2914 @@ + + + + + BlackoutWidget + + Click to Return to Application + לחץ כאן כדי לחזור ליישום + + + + DownloadDialog + + Downloads + הורדות + + + Clean Up + ניקוי + + + 0 Items + 0 פריטים + + + + DownloadItem + + Form + טופס + + + Filename + שם קובץ + + + Try Again + נסה שנית + + + Stop + עצור + + + Open + פתח + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + פרסם פודקסט ביוטיוב + + + Title + שם + + + Description + תיאור + + + Author + מחבר + + + + MainWindow + + Board + לוח + + + Web + אינטרנט + + + Documents + מסמכים + + + Stylus + סטילוס + + + Ctrl+T + Ctrl+T + + + Backgrounds + רקעים + + + Change Background + החלף רקע + + + Undo + ביטול + + + Ctrl+Z + Ctrl+Z + + + Redo + חזרה על הפעולה + + + Ctrl+Y + Ctrl+Y + + + Previous + הקודם + + + Previous Page + דף קודם + + + PgUp + דף אחד כלפי מעלה + + + Next + הבא + + + Next Page + הדף הבא + + + PgDown + דף אחד כלפי מטה + + + Manage Documents + נהל מסמכים + + + Ctrl+D + Ctrl+D + + + Web Browsing + גלישה באינטרנט + + + Ctrl+W + Ctrl+W + + + Line + שורה + + + Small Line + שורה קטנה + + + Medium Line + שורה בינונית + + + Large Line + שורה גדולה + + + Quit + יציאה + + + Eraser + מחק + + + Smalle Eraser + מחק קטן + + + Medium Eraser + מחק בינוני + + + Large Eraser + מחק גדול + + + Color + צבע + + + Back + חזרה + + + Left + שמאל + + + Forward + קדימה + + + Right + ימין + + + Reload + טען מחדש + + + Reload Current Page + טען מחדש דף זה + + + Home + דף הבית + + + Load Home Page + טען את דף הבית + + + Bookmarks + סימניות + + + Show Bookmarks + הצג סימניות + + + Bookmark + סימניות + + + Add Bookmark + הוסף סימניה + + + Display Board + הצג לוח + + + Ctrl+B + Ctrl+B + + + Erase + מחק + + + Erase Content + מחק תוכן + + + Preferences + העדפות + + + Display Preferences + הצג העדפות + + + Library + ספרייה + + + Show Library + הצג ספרייה + + + Ctrl+L + Ctrl+L + + + Show Desktop + הצג שולחן עבודה + + + Show Computer Desktop + הצג את שולחן העבודה של המחשב + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + גדול יותר + + + Zoom In + הגדלה + + + Ctrl++ + Ctrl++ + + + Smaller + קטן יותר + + + Zoom Out + הקטנה + + + Ctrl+- + Ctrl+- + + + New Folder + תיקיה חדשה + + + Create a New Folder + יצור תיקיה חדשה + + + New Document + מסמך חדש + + + Create a New Document + צור מסמך חדש + + + Import + ייבוא + + + Import a Document + ייבא מסמך + + + Export + ייצוא + + + Export a Document + ייצא מסמך + + + Open in Board + פתח ב- Board + + + Open Page in Board + פתח את הדף ב- Board + + + Ctrl+O + Ctrl+O + + + Duplicate + שכפל + + + Duplicate Selected Content + שכפל את התוכן המסומן + + + Delete + מחק + + + Delete Selected Content + מחק תוכן מסומן + + + Del + מחק + + + Add to Working Document + הוסף למסמך העבודה + + + Add Selected Content to Open Document + הוסף את התוכן המסומן למסמך הפתוח + + + Add + הוסף + + + Add Content to Document + הוסף תוכן למסמך + + + Rename + שנה שם + + + Rename Content + שנה שם התוכן + + + Tools + כלים + + + Display Tools + הצג כלים + + + Multi Screen + רב מסכים + + + Wide Size (16/9) + ממדים רחבים )16/9( + + + Use Document Wide Size (16/9) + השתמש במימדים הרחבים של המסמך )16/9( + + + Regular Size (4/3) + מימדים רגילים )4/3( + + + Use Document Regular Size (4/3) + השתמש במימדים הרגילים של המסמך )4/3( + + + Custom Size + התאם מימדים + + + Use Custom Document Size + השתמש במימדי המסמך המותאמים + + + Stop Loading + הפסק טעינה + + + Stop Loading Web Page + הפסק את טעינת דף האינטרנט + + + Cut + חתוך + + + Copy + העתק + + + Paste + הדבק + + + Sleep + מצב שינה + + + Put Presentation to Sleep + העבר את המצגת למצב שינה + + + Virtual Keyboard + מקלדת וירטואלית + + + Display Virtual Keyboard + הצג מקלדת וירטואלית + + + Plain Light Background + רקע בהיר פשוט + + + Light + בהיר + + + Grid Light Background + רקע אחיד בהיר + + + Plain Dark Background + רקע אחיד כהה + + + Dark + כהה + + + Grid Dark Background + רקע רשת כהה + + + Podcast + פודקסט + + + Record Presentation to Video + הקלט את המצגת לווידאו + + + Record + הקלט + + + Start Screen Recording + התחל להקליט מסך + + + Erase Items + מחק פריטים + + + Erase All Items + מחק את כל הפריטים + + + Erase Annotations + מחק הסברים + + + Erase All Annotations + מחק את כל ההסברים + + + Clear Page + נקה דף + + + Clear All Elements + נקה את כל המרכיבים + + + Pen + עט + + + Annotate Document + הוסף למסמך הערות + + + Ctrl+I + Ctrl+I + + + Erase Annotation + מחק הערות + + + Ctrl+E + Ctrl+E + + + Marker + סמן + + + Highlight + האר + + + Ctrl+M + Ctrl+M + + + Selector + בוחר + + + Select And Modify Objects + בחר ושנה עצמים + + + Ctrl+F + Ctrl+F + + + Hand + יד + + + Scroll Page + גלל דף + + + Laser Pointer + מצביע לייזר + + + Virtual Laser Pointer + מצביע לייזר וירטואלי + + + Ctrl+G + Ctrl+G + + + Draw Lines + שרטט קווים + + + Ctrl+J + Ctrl+J + + + Text + טקסט + + + Write Text + כתוב טקסט + + + Ctrl+K + Ctrl+K + + + Capture + לכידה + + + Capture Part of the Screen + לכד חלק מהמסך + + + Add To Current Page + הוסף לדף הנוכחי + + + Add Item To Current Page + הוסף פריט לדף הנוכחי + + + Add To New Page + הוסף לדף חדש + + + Add Item To New Page + הוסף פריט לדף חדש + + + Add To Library + הוסף לספריה + + + Add Item To Library + הוסף פריט לספריה + + + Pages + דפים + + + Create a New Page + צור דף חדש + + + New Page + דף חדש + + + Duplicate Page + שכפל דף + + + Duplicate the Current Page + שכפל את הדף הנוכחי + + + Import Page + ייבא דף + + + Import an External Page + ייבא דף חיצוני + + + Pause + השהייה + + + Pause Podcast Recording + השהה הקלטת הפודקסט + + + Podcast Config + קבע תצורת פודקסט + + + Configure Podcast Recording + קבע תצורת הקלטת הפודקסט + + + Flash Trap + מלכודת פלאש + + + Trap Flash Content + תוכן מלכודת פלאש + + + Web Trap + מלכודת אינטרנט + + + Trap Web Content + לכד תוגן אינטרנט + + + Custom Capture + קבע תצורת לכידה + + + Window Capture + לכידת חלון + + + Capture a Window + לכד חלון + + + Embed Web Content + שלב תוכן אינטרנט + + + Capture Embeddable Web Content + לכד תוכן אינטרנט מוכנס + + + Show on Display + הראה על המסך + + + Show Main Screen on Display Screen + הצג את המסך המרכזי על מסך התצוגה + + + Erase all Annotations + מחק את כל ההערות + + + eduMedia + eduMedia + + + Import eduMedia simulation + ייבא את הסימולציה של EduMedia + + + Check Update + בדוק עדכונים + + + Ctrl+H + Ctrl+H + + + OpenBoard + הגרסה הפתוחה של Sankoré + + + Quit OpenBoard + יציאה מהגרסה הפתוחה של Sankoré + + + Hide OpenBoard + הסתר את הגרסה הפתוחה של Sankoré + + + Hide OpenBoard Application + הסתר את היישום של הגרסה הפתוחה של Sankoré + + + Play + נגן + + + Interact with items + There is no direct translation of this sentence- please provide contexte + לתפעל את הפריט + + + Erase Background + מחק רקע + + + Remove the backgound + הסר רקע + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + נדרש זיהוי + + + Username: + שם משתמש + + + Password: + סיסמא + + + + ProxyDialog + + Proxy Authentication + זיהוי פרוקסי + + + Connect to Proxy + התחבר לפרוקסי + + + Username: + שם משתמש + + + Password: + סיסמא + + + Save username and password for future use + שמור את שם המשתמש והסיסמא לשימוש עתידי + + + + QObject + + Element ID = + זהות הרכיב: + + + Content is not supported in destination format. + התוכן אינו נתמך בפורמט היעד + + + Remove Page + הסר את הדף + + + Are you sure you want to remove 1 page from the selected document '%0'? + האם אתה בטוח שברצונך למחוק דף 1 מהמסמך שנבחר %0? + + + + UBApplication + + Page Size + מימדי הדף + + + Podcast + פודקסט + + + + UBApplicationController + + Web + אינטרנט + + + New update available, would you go to the web page ? + ישנו עדכון חדש, לעבור לדף האינטרנט? + + + No update available + אין כל עדכון + + + Update available + קיים עדכון + + + Update + עדכון + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + הודרת תוכן %1 נכשלה + + + Download finished + ההורדה הסתיימה + + + Unknown tool type %1 + כלי בלתי ידוע מסוג %1 + + + Unknown content type %1 + תוכן בלתי ידוע מסוג %1 + + + Add Item + הוסף פריט + + + All Supported (%1) + הכל )%1( + + + Delete page %1 from document + מחק עמוד %1 מהמסמך + + + Page %1 deleted + דף %1 נמחק + + + Add file operation failed: file copying error + הוספת פעולת קובץ נכשלה: אירעה שגיאה בהעתקת הקובץ + + + Group + קבץ + + + Ungroup + בטל קיבוץ + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + צבע + + + + UBBoardPaletteManager + + Error Adding Image to Library + אירעה שגיאה בהוספת התמונה לספריה + + + CapturedImage + תמונה שנלכדה + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + תכונות המטמון + + + Color: + צבע: + + + Shape: + צורה: + + + Size: + מימדים: + + + Close + סגור + + + + UBDesktopPalette + + Capture Part of the Screen + לכד חלק מהמסך + + + Capture the Screen + לכד את המסך + + + Show the stylus palette + הצג את סרגל הכלים הגראפיים + + + Show Board on Secondary Screen + הצג את- Board על מסך משני + + + Show Desktop on Secondary Screen + הצג את שולחן העבודה על מסך משני + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + תיקיה חדשה + + + Page %1 + עמוד %1 + + + Add Folder of Images + הוסף תיקיית תמונות + + + Add Images + הוסף תמונות + + + Add Pages from File + הוסף עמודים מהקובץ + + + Duplicating Document %1 + משכפל מסמך %1 + + + Document %1 copied + מסמך %1 הועתק + + + Remove Page + הסר את הדף + + + Remove Document + הסר את המסמך + + + Are you sure you want to remove the document '%1'? + אתה בטוח שברצונך להסיר את %1'המסמך? + + + Empty Trash + רוקן את הסל + + + Are you sure you want to empty trash? + אתה בטוח שברצונך לרוקן את הסל? + + + Emptying trash + מרוקן סל + + + Emptied trash + הסל הורק + + + Remove Folder + הסר תיקיה + + + Are you sure you want to remove the folder '%1' and all its content? + אתה בטוח שברצונך להסיר את התיקיה %1 ואת כל תכנה? + + + No document selected! + לא נבחר כל מסמך! + + + Open Supported File + פתח קובץ מתאים + + + Importing file %1... + מייבא קובץ 1%... + + + Failed to import file ... + ייבוא הקובץ נכשל... + + + Import all Images from Folder + ייבא את כל התמונות מהתיקיה + + + Delete + מחק + + + Empty + רוקן + + + Trash + סל + + + Open Document + פתח מסמך + + + Add all Images to Document + הוסף את כל התמונות למסמך + + + All Images (%1) + כל התמונות )%1( + + + Selection does not contain any image files! + בקטע שנבחר אין כל קבצי תמונות! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + האם אתה בטוח שברצונך להסיר %n עמוד(ים) מהמסמך שנבחר %1'? + + + + + Folder does not contain any image files + התיקיה אינה מכילה כל קבצי תמונות + + + Untitled Documents + מסמכים ללא שם + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + תמונות + + + videos + סרטונים + + + objects + אובייקטים + + + widgets + ווידג'טים + + + All supported files (*.%1) + כל הקבצים הנתמכים )*.%1( + + + File %1 saved + קובץ %1 נשמר + + + Inserting page %1 of %2 + מכניס עמוד %1 מתוך %2 + + + Import successful. + הייבוא בוצע בהצלחה. + + + Import of file %1 successful. + ייבוא קובץ %1 התבצע בהצלחה + + + Importing file %1 + מייבא קובץ %1 + + + + UBDocumentNavigator + + Page %0 + עמוד %0 + + + + UBDocumentReplaceDialog + + Accept + קבל + + + Cancel + בטל + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + סל + + + %1 pages copied + + %1 דפים הועתקו + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 דפים הועתקו + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + מעתיק עמוד %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (העתק) + + + Copying page %1/%2 + מעתיק עמוד %1/%2 + + + %1 pages copied + + %1 דפים הועתקו + + + + + + UBDownloadWidget + + Downloading files + מוריד קבצים + + + Cancel + בטל + + + + UBDraggableThumbnail + + Page %0 + עמוד %0 + + + + UBDraggableThumbnailView + + Page %0 + עמוד %0 + + + + UBExportAdaptor + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Warnings during export was appeared + + + + + UBExportCFF + + Export to IWB + ייצא ל-IWB + + + Export as IWB File + ייצא כקובץ IWB + + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Export failed. + פעולת הייצוא נכשלה + + + + UBExportDocument + + Page + עמוד + + + Export as UBZ File + ייצא כקובץ UBZ + + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Exporting %1 %2 of %3 + מייצא %1 %2 מתוך %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + ייצוא כקובץ PDF + + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Export to PDF + ייצא ל- PDF + + + + UBExportPDF + + Export as PDF File + ייצא בתור קובץ PDF + + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Exporting page %1 of %2 + מייצא דף %1 מתוך %2 + + + Export to PDF + ייצא ל- PDF + + + + UBExportWeb + + Page + עמוד + + + Export as Web data + ייצא כנתוני אינטרנט + + + Exporting document... + מייצא מסמך... + + + Export successful. + הייצוא בוצע בהצלחה. + + + Export failed. + הייצוא נכשל. + + + Export to Web Browser + ייצא לדפדפן + + + + UBFeatureProperties + + Add to page + הוסף לדף + + + Set as background + קבע כרקע + + + Add to library + הוסף לספרייה + + + Object informations + מידע על האובייקט + + + + UBFeaturesActionBar + + Add to favorites + הוסף למועדפים + + + Share + שתף + + + Search + חיפוש + + + Delete + מחק + + + Back to folder + חזרה לקובץ + + + Remove from favorites + הסר מהמועדפים + + + Create new folder + צור תיקייה חדשה + + + Rescan file system + סרוק מחדש את מערכת הקבצים + + + + UBFeaturesController + + ImportedImage + תמונה מיובאת + + + Audios + קבצי שמע + + + Movies + סרטים + + + Pictures + תמונות + + + Animations + אנימציות + + + Interactivities + אינטראקטיביות + + + Applications + יישומים + + + Shapes + צורות + + + Favorites + מועדפים + + + Web search + חיפוש באינטרנט + + + Trash + סל + + + + UBFeaturesNewFolderDialog + + Accept + קבל + + + Cancel + בטל + + + Enter a new folder name + הזן שם תיקיה חדש + + + + UBFeaturesProgressInfo + + Loading + טוען + + + + UBGraphicsGroupContainerItemDelegate + + Locked + נעול + + + Visible on Extended Screen + ניתן לראותו במסך רחב + + + + UBGraphicsItemDelegate + + Locked + נעול + + + Visible on Extended Screen + ניתן לראותו במסך רחב + + + Go to Content Source + עבור למקור התוכן + + + Set as background + קבע כרקע + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <הדפס טקסט כאן> + + + + UBGraphicsTextItemDelegate + + Text Color + צבע הטקסט + + + Editable + ניתן לעריכה + + + + UBGraphicsW3CWidgetItem + + Web + אינטרנט + + + + UBGraphicsWidgetItem + + Loading ... + טוען... + + + + UBGraphicsWidgetItemDelegate + + Frozen + קפוא + + + Transform as Tool + הפוך לכלי + + + + UBImportCFF + + Common File Format ( + פורמט קובץ רגיל ) + + + Importing file %1... + מייבא קובץ %1... + + + Import of file %1 failed. + ייבוא קובץ %1 נכשל. + + + Import successful. + הייבוא בוצע בהצלחה. + + + Import failed. + הייבוא נכשל. + + + + UBImportDocument + + Importing file %1... + מייבא קובץ %1... + + + Import of file %1 failed. + ייבוא קובץ %1 נכשל. + + + Import successful. + הייבוא בוצע בהצלחה. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + פורמט התמונה ) + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + ייבוא ה- PDF נכשל. + + + Importing page %1 of %2 + מייבא עמוד %1 מתוך %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + אירעה שגיאה במהלך הפצת הוידאו לאינטראנט )%1( + + + Publishing to Intranet in progress %1 % + מתבצע פרסום לאינטראנט %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + פרסם + + + + UBKeyboardPalette + + Enter + pour la touche Enter + מקש ה= ENTER + + + + UBMainWindow + + Yes + כן + + + No + לא + + + Ok + אישור + + + + UBMessagesDialog + + Close + סגור + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>הקש שם משתמש וסיסמא עבור "%1" ו- %2</qt> + + + Failed to log to Proxy + הכניסה לפרוקסי נכשלה + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + שגיאות SSL %1 %2 האם ברצונך להתעלם משגיאות אלה למארח זה? + + + Yes + כן + + + No + לא + + + + UBOpenSankoreImporterWidget + + Cancel + בטל + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (העתק) + + + Document Repository Loss + אבד מקום האכסון של המסמך + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + אנגלית + + + Russian + רוסית + + + German + גרמנית + + + French + צרפתית + + + Swiss French + צרפתית של שוויץ + + + + UBPodcastController + + Failed to start encoder ... + הפעלת המקדד נכשלה... + + + No Podcast encoder available ... + אין כל מקדד זמין לפודקסט... + + + Part %1 + רכיב%1 + + + on your desktop ... + על שולחן העבודה שלך... + + + in folder %1 + בתיקיה %1 + + + Podcast created %1 + הפודקסט נוצר %1 + + + Podcast recording error (%1) + שגיאת הקלטה של הפודקסט )%1( + + + Default Audio Input + קלט אודיו של ברירת מחדל + + + No Audio Recording + אין כל הקלטת אודיו + + + Small + קטן + + + Medium + בינוני + + + Full + מלא + + + Publish to Intranet + פרסם באינטרנט + + + Publish to Youtube + פרסם ביוטיוב + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + גרסא: + + + Marker is pressure sensitive + הסמן רגיש ללחץ + + + + UBProxyLoginDlg + + Proxy Login + כניסה לפרוקסי + + + Username: + שם משתמש: + + + Password: + סיסמא: + + + + UBPublicationDlg + + Publish document on the web + פרסם מסמך באינטרנט + + + Title: + שם: + + + Description: + תיאור: + + + Publish + פרסם + + + + UBSettings + + My Movies + הסרטים שלי + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + מייצר תמונה מוקטנת לצפייה מוקדמת... + + + %1 thumbnails generated ... + נוצרה תמונה מוקטנת של %1... + + + + UBThumbnailTextItem + + Page %0 + עמוד %0 + + + + UBToolsManager + + Mask + תבנית + + + Ruler + סרגל + + + Compass + מצפן + + + Protractor + מד-זווית + + + Triangle + משולש + + + Magnifier + זכוכית מגדלת + + + Cache + מטמון + + + Axes + + + + + UBTrapFlashController + + Whole page + דף מלא + + + Web + אינטרנט + + + + UBUpdateDlg + + Document updater + מעדכן מסמכים + + + files require an update. + הקבצים דורשים עדכון. + + + Backup path: + נתיב גיבוי: + + + Browse + דפדף + + + Update + עדכן + + + Select a backup folder + בחר תיקיה לגיבוי + + + Files update successful! +Please reboot the application to access the updated documents. + עדכון הקבצים בוצע בהצלחה! +יש לאתחל את היישום כדי לגשת למסמכים המעודכנים. + + + An error occured during the update. The files have not been affected. + אירעה שגיאה במהלך העדכון. הקבצים לא נפגעו. + + + Files update results + תוצאות עדכון הקבצים + + + Updating file + מעדכן קובץ + + + Please wait the import process will start soon... + אנא המתן תהליך הייבוא עומד להתחיל... + + + Remind me later + לי שוב מאוחר יות + + + + UBWebPluginWidget + + Loading... + טוען... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 נקרא )שיטה=%1, מצב = %2( + + + + UBYouTubePublisher + + YouTube authentication failed. + זיהוי היוטיוב נכשל. + + + Error while uploading video to YouTube (%1) + אירעה שגיאה במהלך טעינת הסרטון ליוטיוב )%1( + + + Upload to YouTube in progress %1 % + מעלה ליוטיוב%1 % + + + + UBYouTubePublishingDialog + + Upload + העלאה + + + Autos & Vehicles + מכוניות & כלי רכב + + + Music + מוסיקה + + + Pets & Animals + חיות מחמד & בעלי חיים + + + Sports + ספורט + + + Travel & Events + נסיעות & אירועים + + + Gaming + משחקים + + + Comedy + קומדיה + + + People & Blogs + אנשים & בלוגים + + + News & Politics + חדשות & פוליטיקה + + + Entertainment + בילוי + + + Education + חינוך + + + Howto & Style + עצות & סגנון + + + Nonprofits & Activism + ארגונים שלא למטרת רווח & אקטיביזם + + + Science & Technology + מדע & טכנולוגיה + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + נקה + + + + WBDownloadItem + + Save File + שמור קובץ + + + Download canceled: %1 + ההורדה בוטלה: %1 + + + Error opening saved file: %1 + אירעה שגיאה בפתיחת הקובץ השמור: %1 + + + Error saving: %1 + שגיאה בשמירה: %1 + + + Network Error: %1 + שגיאת רשת: %1 + + + seconds + שניות + + + minutes + דקות + + + - %4 %5 remaining + - %4 %5 נשארו + + + %1 of %2 (%3/sec) %4 + %1 מ %2 (%3/שניות) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 מתוך %2 0 מופסק + + + bytes + בייטים + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + הורדה 1 + + + %1 Downloads + always >= 2 + %1 הורדות + + + + WBHistoryModel + + Title + שם + + + Address + כתובת + + + + WBHistoryTreeModel + + Earlier Today + מוקדם יותר היום + + + %1 items + %1 פריטים + + + + WBSearchLineEdit + + Search + חיפוש + + + + WBTabBar + + New &Tab + חדש & לשונית + + + Clone Tab + שכפל לשונית + + + &Close Tab + &סגור לשונית + + + Close &Other Tabs + סגור &לשוניות אחרות + + + Reload Tab + טען מחדש את הלשונית + + + Reload All Tabs + טען מחדש את כל הלשוניות + + + + WBTabWidget + + Recently Closed Tabs + לשוניות שנסגרו לאחרונה + + + (Untitled) + (ללא שם) + + + + WBToolbarSearch + + Search + חיפוש + + + No Recent Searches + אין חיפושים שבוצעו לאחרונה + + + Recent Searches + חיפושים שבוצעו לאחרונה + + + Clear Recent Searches + נקה חיפושים שבוצעו לאחרונה + + + + WBWebPage + + Download + הורד + + + Add to Current Document + הוסף למסמך הקיים + + + PDF + PDF + + + Error loading page: %1 + שגיאה בטעינת עמוד: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + פתח בלשונית חדשה + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + פרסם פודקסט ביוטיוב + + + Title + שם + + + Description + תיאור + + + Keywords + מילות מפתח + + + Category + קטיגוריה + + + YouTube Username + שם המשתמש ליוטיוב + + + YouTube Password + הסיסמא ליוטיוב + + + OpenBoard + הגרסה הפתוחה של Sankoré + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + על רקע בהיר + + + On Dark Background + על רקע כהה + + + Opacity + אטימות + + + Line Width + רוחב קו + + + Medium + בינוני + + + Strong + חזק + + + Fine + דק + + + Pen is Pressure Sensitive + העט רגיש ללחץ + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + דיאלוג + + + Title + שם + + + E-mail + דואל + + + Author + מחבר + + + Description + תיאור + + + + documentPublishingDialog + + Dialog + דיאלוג + + + Title + שם + + + E-mail + דואל + + + Author + מחבר + + + Description + תיאור + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + העדפות + + + version : … + גרסא:... + + + Default Settings + הגדרות ברירת מחדל + + + Close + סגור + + + Display + הצג + + + Internet + אינטרנט + + + Show Page with External Browser + הצג עמוד עם דפדפן חיצוני + + + Home Page: + דף הבית: + + + Virtual Keyboard + מקלדת וירטואלית + + + Keyboard button size: + גודל מקשי המקלדת: + + + Toolbar + סרגל כלים + + + Positioned at the Top (recommended for tablets) + ממוקם בראש הדף )מומלץ למחשבי לוח( + + + Display Text Under Button + הצג טקסט מתחת לכפתור + + + Stylus Palette + סרגל הכלים הגראפיים + + + Horizontal + אופקי + + + Vertical + אנכי + + + Pen + עט + + + Marker + מרקר + + + Licences + רשיונות + + + About + אודות + + + Software Update + עדכון תכנה + + + Check software update at launch + בדוק עדכון תוכנה עם הפעלתה + + + Network + רשת + + + Show internal web page content on secondary screen or projector + הצג את תוכן עמוד האינטרנט הפנימי על מסך משני או על מקרן + + + Multi display + מצג מרובה + + + Swap control display and view display + החלף מצג בקרה והצג מצג + + + Mode + מצב + + + Mode to start in: + מצב להתחלה: + + + Board + לוח + + + Desktop + שולחן העבודה + + + Proxy User: + משתמש פרוקסי: + + + Pass: + סיסמא: + + + Credits + אשראי + + + On Dark Background + על רקע כהה + + + Opacity + אטימות + + + On Light Background + על רקע בהיר + + + Swap first and second view displays + + + + Positioned at the Bottom (recommended for white boards) + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + מלכודת פלאש + + + Select a flash to trap + בחר פלאש ללכידה + + + about:blank + אודות: ריק + + + Application name + שם היישום + + + Create Application + צור יישום + + + diff --git a/resources/i18n/OpenBoard_ja.ts b/resources/i18n/OpenBoard_ja.ts new file mode 100644 index 0000000..2af7f68 --- /dev/null +++ b/resources/i18n/OpenBoard_ja.ts @@ -0,0 +1,2910 @@ + + + + + BlackoutWidget + + Click to Return to Application + クリックしてアプリケーションに戻る + + + + DownloadDialog + + Downloads + ダウンロード + + + Clean Up + クリーンアップ + + + 0 Items + 0アイテム + + + + DownloadItem + + Form + フォーム + + + Filename + ファイル名 + + + Try Again + 再度試みてください + + + Stop + 停止 + + + Open + 開く + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + YouTubeにポッドキャストを公開 + + + Title + タイトル + + + Description + 説明 + + + Author + 作成者 + + + + MainWindow + + Board + ボード + + + Web + ウェブ + + + Documents + ドキュメント + + + Stylus + スタイラス + + + Ctrl+T + Ctrl+T + + + Backgrounds + 背景 + + + Change Background + 背景を変える + + + Undo + 取り消し + + + Ctrl+Z + Ctrl+Z + + + Redo + やり直し + + + Ctrl+Y + Ctrl+Y + + + Previous + + + + Previous Page + 前のページ + + + PgUp + ページアップ + + + Next + + + + Next Page + 次のページ + + + PgDown + ページダウン + + + Manage Documents + ドキュメント管理 + + + Ctrl+D + Ctrl+D + + + Web Browsing + ウェブ閲覧 + + + Ctrl+W + Ctrl+W + + + Line + ライン + + + Small Line + スモールライン + + + Medium Line + ミディアムライン + + + Large Line + ラージライン + + + Quit + 終了 + + + Eraser + 消しゴム + + + Smalle Eraser + 消しゴム(小) + + + Medium Eraser + 消しゴム(中) + + + Large Eraser + 消しゴム(大) + + + Color + カラー + + + Back + 戻る + + + Left + + + + Forward + 前へ + + + Right + + + + Reload + リロード + + + Reload Current Page + 現在のページをリロード + + + Home + ホーム + + + Load Home Page + ホームページをロード + + + Bookmarks + ブックマーク + + + Show Bookmarks + ブックマーク表示 + + + Bookmark + ブックマーク + + + Add Bookmark + ブックマークを追加 + + + Display Board + ボードを表示 + + + Ctrl+B + Ctrl+B + + + Erase + 消去 + + + Erase Content + コンテンツを消去 + + + Preferences + 設定 + + + Display Preferences + 表示設定 + + + Library + ライブラリ + + + Show Library + ライブラリ表示 + + + Ctrl+L + Ctrl+L + + + Show Desktop + デスクトップを表示 + + + Show Computer Desktop + コンピュータデスクトップを表示 + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + より大きく + + + Zoom In + ズームイン + + + Ctrl++ + Ctrl++ + + + Smaller + より小さく + + + Zoom Out + ズームアウト + + + Ctrl+- + Ctrl+- + + + New Folder + 新規フォルダー + + + Create a New Folder + 新規フォルダーを作成 + + + New Document + 新規ドキュメント + + + Create a New Document + 新規ドキュメントを作成 + + + Import + インポート + + + Import a Document + ドキュメントをインポート + + + Export + エクスポート + + + Export a Document + ドキュメントをエクスポート + + + Open in Board + ボード内に開く + + + Open Page in Board + ボード内にページを開く + + + Ctrl+O + Ctrl+O + + + Duplicate + 複製する + + + Duplicate Selected Content + 選択したコンテンツを複製する + + + Delete + 削除 + + + Delete Selected Content + 選択したコンテンツを削除する + + + Del + 削除 + + + Add to Working Document + 作業中のドキュメントに追加 + + + Add Selected Content to Open Document + 開かれたドキュメントに選択されたコンテンツを追加 + + + Add + 追加 + + + Add Content to Document + コンテンツをドキュメントに追加 + + + Rename + 名前の変更 + + + Rename Content + コンテンツの名前を変更 + + + Tools + ツール + + + Display Tools + 表示ツール + + + Multi Screen + マルチスクリーン + + + Wide Size (16/9) + ワイドサイズ (16/9) + + + Use Document Wide Size (16/9) + ワイドサイズ (16/9) ドキュメントの使用 + + + Regular Size (4/3) + レギュラーサイズ (4/3) + + + Use Document Regular Size (4/3) + レギュラーサイズ (4/3) ドキュメントの使用 + + + Custom Size + カスタムサイズ + + + Use Custom Document Size + カスタムドキュメントサイズを使用 + + + Stop Loading + ローディングを中止 + + + Stop Loading Web Page + ウェブページのローディングを中止 + + + Cut + カット + + + Copy + コピー + + + Paste + 貼り付け + + + Sleep + スリープ + + + Put Presentation to Sleep + プレゼンをスリープにする + + + Virtual Keyboard + バーチャルキーボード + + + Display Virtual Keyboard + バーチャルキーボード表示 + + + Plain Light Background + プレーンライトの背景 + + + Light + ライト + + + Grid Light Background + グリッドライトの背景 + + + Plain Dark Background + プレーンダークの背景 + + + Dark + ダーク + + + Grid Dark Background + グリッドダークの背景 + + + Podcast + ポッドキャスト + + + Record Presentation to Video + プレゼンをビデオに記録 + + + Record + 記録 + + + Start Screen Recording + スクリーンレコーディングを開始 + + + Erase Items + アイテムを消去 + + + Erase All Items + 全アイテムを消去 + + + Erase Annotations + 注釈を消去 + + + Erase All Annotations + 全注釈を消去 + + + Clear Page + ページをクリア + + + Clear All Elements + 全ページをクリア + + + Pen + ペン + + + Annotate Document + ドキュメントに注釈を加える + + + Ctrl+I + Ctrl+I + + + Erase Annotation + 注釈を消去 + + + Ctrl+E + Ctrl+E + + + Marker + マーカー + + + Highlight + 強調表示 + + + Ctrl+M + Ctrl+M + + + Selector + セレクタ + + + Select And Modify Objects + オブジェクトを選択して変更 + + + Ctrl+F + Ctrl+F + + + Hand + ハンド + + + Scroll Page + ページをスクロール + + + Laser Pointer + レーザーポインター + + + Virtual Laser Pointer + バーチャルレーザーポインター + + + Ctrl+G + Ctrl+G + + + Draw Lines + 線を描出 + + + Ctrl+J + Ctrl+J + + + Text + テキスト + + + Write Text + テキストを作成 + + + Ctrl+K + Ctrl+K + + + Capture + キャプチャ + + + Capture Part of the Screen + 画面の一部をキャプチャ + + + Add To Current Page + 現在のページに追加 + + + Add Item To Current Page + 現在のページにアイテムを追加 + + + Add To New Page + 新規ページに追加 + + + Add Item To New Page + 新規ページにアイテムを追加 + + + Add To Library + ライブラリに追加 + + + Add Item To Library + ライブラリにアイテムを追加 + + + Pages + ページ + + + Create a New Page + 新規ページ作成 + + + New Page + 新規ページ + + + Duplicate Page + ページを複製 + + + Duplicate the Current Page + 現在のページを複製 + + + Import Page + ページをインポート + + + Import an External Page + 外部のページをインポート + + + Pause + 一時停止 + + + Pause Podcast Recording + ポッドキャストのレコーディングを一時停止 + + + Podcast Config + ポッドキャスト設定 + + + Configure Podcast Recording + ポッドキャストレコーディング設定 + + + Flash Trap + フラッシュトラップ + + + Trap Flash Content + トラップフラッシュコンテンツ + + + Web Trap + ウェブトラップ + + + Trap Web Content + トラップウェブコンテンツ + + + Custom Capture + カスタムキャプチャ + + + Window Capture + ウィンドウキャプチャ + + + Capture a Window + ウィンドウをキャプチャ + + + Embed Web Content + ウェブコンテンツを埋め込む + + + Capture Embeddable Web Content + 埋め込み可能ウェブコンテンツをキャプチャ + + + Show on Display + ディスプレイ上に表示 + + + Show Main Screen on Display Screen + ディスプレイ画面にメインスクリーンを表示 + + + Erase all Annotations + 全注釈を消去 + + + eduMedia + eduMedia + + + Import eduMedia simulation + eduMediaシミュレーションのインポート + + + Check Update + 更新をチェック + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Open-Sankoreを終了 + + + Hide OpenBoard + OpenBoardを隠す + + + Hide OpenBoard Application + OpenBoardを隠す + + + Play + 始動する + + + Interact with items + アイテムを使う + + + Erase Background + 背景を削除する + + + Remove the backgound + 背景を削除する + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + 認証が必要 + + + Username: + ユーザー名: + + + Password: + パスワード: + + + + ProxyDialog + + Proxy Authentication + プロキシ認証 + + + Connect to Proxy + プロキシに接続 + + + Username: + ユーザー名: + + + Password: + パスワード: + + + Save username and password for future use + 今後の使用のためにユーザー名とパスワードを保存 + + + + QObject + + Remove Page + ページ削除 + + + Element ID = + + + + Content is not supported in destination format. + + + + Are you sure you want to remove 1 page from the selected document '%0'? + + + + + UBApplication + + Page Size + ページサイズ + + + Podcast + ポッドキャスト + + + + UBApplicationController + + Web + ウェブ + + + New update available, would you go to the web page ? + 新しい更新が利用可能です。ウェブページへ移動しますか? + + + No update available + 利用可能な更新はありません + + + Update available + 更新が利用可能です + + + Update + 更新 + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + コンテンツ%1のダウンロードに失敗 + + + Download finished + ダウンロード終了 + + + Unknown tool type %1 + 不明のツールタイプ%1 + + + Unknown content type %1 + 不明のコンテンツタイプ%1 + + + Add Item + アイテムの追加 + + + All Supported (%1) + 全てサポート(%1) + + + Group + + + + Ungroup + + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Page %1 deleted + + + + Add file operation failed: file copying error + + + + Color + カラー + + + + UBBoardPaletteManager + + Error Adding Image to Library + ライブラリに画像追加中にエラー + + + CapturedImage + キャプチャされた画像 + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + キャッシュプロパティ + + + Color: + カラー: + + + Shape: + 形状: + + + Size: + サイズ: + + + Close + 閉じる + + + + UBDesktopPalette + + Capture Part of the Screen + 画面の一部をキャプチャ + + + Capture the Screen + 画面をキャプチャ + + + Show the stylus palette + スタイラスパレットを表示 + + + Show Board on Secondary Screen + サブスクリーンにボードを表示 + + + Show Desktop on Secondary Screen + サブスクリーンにデスクトップを表示 + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + 新規フォルダー + + + Page %1 + %1ページ + + + Add Folder of Images + 画像フィルダーを追加 + + + Add Images + 画像を追加 + + + Add Pages from File + ファイルからページを追加 + + + Duplicating Document %1 + ドキュメント%1の複製 + + + Document %1 copied + ドキュメント%1コピー済み + + + Remove Page + ページ削除 + + + Remove Document + ドキュメント削除 + + + Are you sure you want to remove the document '%1'? + 本当にドキュメント%1を削除しますか? + + + Empty Trash + ゴミ箱を空にする + + + Are you sure you want to empty trash? + 本当にこのゴミ箱を空にしますか? + + + Emptying trash + ゴミ箱を空にしています + + + Emptied trash + ゴミ箱を空にしました + + + Remove Folder + フォルダーを削除 + + + Are you sure you want to remove the folder '%1' and all its content? + 本当にフォルダー%1とそのコンテンツを削除しますか? + + + No document selected! + ドキュメントが選択されていません! + + + Open Supported File + サポートされたファイルを開く + + + Importing file %1... + ファイル%1のインポート中... + + + Failed to import file ... + ファイルのインポートに失敗… + + + Import all Images from Folder + フォルダーから全ての画像をインポート + + + Delete + 削除 + + + Empty + + + + Trash + ゴミ箱 + + + Open Document + ドキュメントを開く + + + Add all Images to Document + すべての画像をドキュメントに追加 + + + All Images (%1) + 全画像(%1) + + + Selection does not contain any image files! + 選択には画像ファイルが含まれていません! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + 選抜した資料から%nページを除けたいですか? + + + + Untitled Documents + タイトルなしドキュメント + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Folder does not contain any image files + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + 画像 + + + videos + ビデオ + + + objects + オブジェクト + + + widgets + ウィジェット + + + All supported files (*.%1) + 全てサポートされているファイル(*.%1) + + + File %1 saved + ファイル%1保存済み + + + Import successful. + インポートに成功。 + + + Inserting page %1 of %2 + + + + Importing file %1 + + + + Import of file %1 successful. + + + + + UBDocumentNavigator + + Page %0 + %0ページ + + + + UBDocumentReplaceDialog + + Cancel + キャンセル + + + Accept + + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + ゴミ箱 + + + %1 pages copied + + ページを%1枚をコピーしました + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + ページを%1枚をコピーしました + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + %1/%2 ページ コピー中 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (コピー) + + + Copying page %1/%2 + %1/%2 ページ コピー中 + + + %1 pages copied + + ページを%1枚をコピーしました + + + + + UBDownloadWidget + + Downloading files + ファイルをダウンロードしています + + + Cancel + キャンセル + + + + UBDraggableThumbnail + + Page %0 + %0ページ + + + + UBDraggableThumbnailView + + Page %0 + %0ページ + + + + UBExportAdaptor + + Exporting document... + ドキュメントのエクスポート中... + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + Warnings during export was appeared + + + + + UBExportCFF + + Export to IWB + IWBへエクスポート + + + Export as IWB File + IWB ファイルとしてエクスポート + + + Exporting document... + ドキュメントのエクスポート中... + + + Export successful. + エクスポートに成功 + + + Export failed. + エクスポートに失敗 + + + + UBExportDocument + + Page + ページ + + + Export as UBZ File + UBZ ファイルとしてエクスポート + + + Exporting document... + ドキュメントのエクスポート中... + + + Export successful. + エクスポートに成功 + + + Exporting %1 %2 of %3 + %1 %2 / %3 をエクスポート中 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + ドキュメントのエクスポート中... + + + Failed to export... + + + + Export as UBX File + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + PDFファイルとしてエクスポート + + + Exporting document... + ドキュメントのエクスポート中... + + + Export successful. + エクスポートに成功 + + + Export to PDF + PDFへエクスポート + + + + UBExportPDF + + Export as PDF File + PDFファイルとしてエクスポート + + + Exporting document... + ドキュメントのエクスポート中... + + + Export successful. + エクスポートに成功。 + + + Exporting page %1 of %2 + %1 / %2 ページのエクスポート中 + + + Export to PDF + PDFへエクスポート + + + + UBExportWeb + + Page + ページ + + + Export as Web data + ウェブデータとしてエクスポート + + + Exporting document... + ドキュメントのエクスポート中... + + + Export successful. + エクスポートに成功。 + + + Export failed. + エクスポートに失敗。 + + + Export to Web Browser + ウェブブラウザへエクスポート + + + + UBFeatureProperties + + Add to page + ページに追加 + + + Set as background + 背景として設定 + + + Add to library + ライブラリに追加 + + + Object informations + オブジェクトインフォーメーション + + + + UBFeaturesActionBar + + Add to favorites + お気に入りに追加 + + + Share + シェアする + + + Search + 検索 + + + Delete + 削除 + + + Back to folder + フォルダーに戻る + + + Remove from favorites + お気に入りから削除 + + + Create new folder + 新規フォルダーを作成 + + + Rescan file system + ファイルを更新する + + + + UBFeaturesController + + ImportedImage + インポートされた画像 + + + Audios + オーディオ + + + Movies + ムービー + + + Pictures + 写真 + + + Animations + 動画 + + + Interactivities + インタラクティブ + + + Applications + アプリケーション + + + Shapes + 形状 + + + Trash + ゴミ箱 + + + Favorites + + + + Web search + + + + + UBFeaturesNewFolderDialog + + Cancel + キャンセル + + + Accept + + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + + + + + UBGraphicsGroupContainerItemDelegate + + Locked + ロック + + + Visible on Extended Screen + 拡張画面でみることができます + + + + UBGraphicsItemDelegate + + Locked + ロック + + + Visible on Extended Screen + 拡張画面でみることができます + + + Go to Content Source + コンテンツのソースへ移動 + + + Set as background + 背景として設定 + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + 〈ここへテキストを入力〉 + + + + UBGraphicsTextItemDelegate + + Text Color + テキストカラー + + + Editable + 編集できます + + + + UBGraphicsW3CWidgetItem + + Web + ウェブ + + + + UBGraphicsWidgetItem + + Loading ... + ローディング中… + + + + UBGraphicsWidgetItemDelegate + + Frozen + 凍結 + + + Transform as Tool + ツールとして変換 + + + + UBImportCFF + + Common File Format ( + 共通ファイルフォーマット ( + + + Importing file %1... + ファイル%1のインポート中... + + + Import of file %1 failed. + ファイル%1のインポート失敗。 + + + Import successful. + インポートに成功。 + + + Import failed. + インポート失敗。 + + + + UBImportDocument + + Importing file %1... + ファイル%1のインポート中... + + + Import successful. + インポートに成功。 + + + Import of file %1 failed. + ファイル%1のインポート失敗。 + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + 画像フォーマット( + + + + UBImportPDF + + Portable Document Format (*.pdf) + ポータブル・ドキュメント・フォーマット (*.pdf) + + + PDF import failed. + PDFインポートに失敗。 + + + Importing page %1 of %2 + %1 / %2 ページをインポート + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + ビデオをイントラネットに公開中にエラー(%1) + + + Publishing to Intranet in progress %1 % + イントラネットに公開進行中%1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + 公開 + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + はい + + + No + いいえ + + + Ok + Ok + + + + UBMessagesDialog + + Close + 閉じる + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>"%1"の %2におけるユーザー名とパスワードを入力</qt> + + + Failed to log to Proxy + プロキシへのログインに失敗 + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSLエラー: + +%1 + +%2 + +このホストのエラーは無視しますか? + + + + Yes + はい + + + No + いいえ + + + + UBOpenSankoreImporterWidget + + Cancel + キャンセル + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (コピー) + + + Document Repository Loss + ドキュメント・リポジトリ・ロス + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + 英語 + + + Russian + ロシア語 + + + French + フランス語 + + + Swiss French + スイスのフランス語 + + + German + + + + + UBPodcastController + + Failed to start encoder ... + エンコーダ開始に失敗 ... + + + No Podcast encoder available ... + 利用可能なポッドキャストエンコーダーがありません + + + Part %1 + パート%1 + + + on your desktop ... + デスクトップ上 ... + + + in folder %1 + フォルダー%1内 + + + Podcast created %1 + ポッドキャスト作成 %1 + + + Podcast recording error (%1) + ポッドキャスト記録エラー(%1) + + + Default Audio Input + デフォルトオーディオインプット + + + No Audio Recording + オーディオ記録がありません + + + Small + スモール + + + Medium + ミディアム + + + Full + フル + + + Publish to Intranet + イントラネットに公開 + + + Publish to Youtube + Youtubeに公開 + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + バージョン: + + + Marker is pressure sensitive + 感圧性マーカー + + + + UBProxyLoginDlg + + Proxy Login + プロキシログイン + + + Username: + ユーザー名: + + + Password: + パスワード: + + + + UBPublicationDlg + + Publish document on the web + ドキュメントをウェブに公開 + + + Title: + タイトル: + + + Description: + 説明: + + + Publish + 公開 + + + + UBSettings + + My Movies + マイ・ムービー + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + プレビュー・サムネイル作成中 ... + + + %1 thumbnails generated ... + %1 サムネイル作成済み ... + + + + UBThumbnailTextItem + + Page %0 + %0ページ + + + + UBToolsManager + + Mask + マスク + + + Ruler + ルーラ + + + Compass + コンパス + + + Protractor + 分度器 + + + Triangle + 三角定規 + + + Magnifier + 拡大鏡 + + + Cache + キャッシュ + + + Axes + + + + + UBTrapFlashController + + Whole page + ページ全体 + + + Web + ウェブ + + + + UBUpdateDlg + + Document updater + ドキュメントアップデータ + + + files require an update. + ファイルは更新を必要としています + + + Backup path: + バックアップパス: + + + Browse + ブラウズ + + + Update + 更新 + + + Select a backup folder + バックアップフォルダーを選択 + + + Files update successful! +Please reboot the application to access the updated documents. + ファイル更新に成功! +アプリケーションを再起動して更新ファイルにアクセスしてください。 + + + An error occured during the update. The files have not been affected. + 更新中にエラーが発生しました。ファイルに影響はありません。 + + + Files update results + ファイル更新結果 + + + Updating file + ファイル更新中 + + + Please wait the import process will start soon... + 少々お待ちください、インポート処理を開始します... + + + Remind me later + あとで覚える + + + + UBWebPluginWidget + + Loading... + ロード中… + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 コール(メソッド=%1, ステータス=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube 認証に失敗 + + + Error while uploading video to YouTube (%1) + ビデオをYouTubeへアップロード中にエラー(%1) + + + Upload to YouTube in progress %1 % + YouTubeへアップロード進行中%1 % + + + + UBYouTubePublishingDialog + + Upload + アップロード + + + Autos & Vehicles + 自動車 & 乗り物 + + + Music + 音楽 + + + Pets & Animals + ペット & 動物 + + + Sports + スポーツ + + + Travel & Events + 旅行 & イベント + + + Gaming + ゲーム + + + Comedy + コメディー + + + People & Blogs + 人々 & ブログ + + + News & Politics + ニュース & 政治 + + + Entertainment + エンタテイメント + + + Education + 教育 + + + Howto & Style + ハウツー & スタイル + + + Nonprofits & Activism + 非営利団体 & アクティビズム + + + Science & Technology + 科学 & 技術 + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + クリア + + + + WBDownloadItem + + Save File + ファイルを保存 + + + Download canceled: %1 + キャンセルされたダウンロード: %1 + + + Error opening saved file: %1 + 保存されたファイルを開く時にエラー: %1 + + + Error saving: %1 + 保存時にエラー: %1 + + + Network Error: %1 + ネットワークエラー: %1 + + + seconds + + + + minutes + + + + - %4 %5 remaining + 残り - %4 %5 + + + %1 of %2 (%3/sec) %4 + %1 / %2 (%3/秒) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 / %2 – 中止 + + + bytes + バイト + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 ダウンロード + + + %1 Downloads + always >= 2 + %1ダウンロード + + + + WBHistoryModel + + Title + タイトル + + + Address + アドレス + + + + WBHistoryTreeModel + + Earlier Today + 今日 + + + %1 items + %1 アイテム + + + + WBSearchLineEdit + + Search + 検索 + + + + WBTabBar + + New &Tab + 新規 & タブ + + + Clone Tab + クローンタブ + + + &Close Tab + & タブを閉じる + + + Close &Other Tabs + 他のタブを&閉じる + + + Reload Tab + タブをリロード + + + Reload All Tabs + 全タブをリロード + + + + WBTabWidget + + Recently Closed Tabs + 最近閉じたタブ + + + (Untitled) + (タイトルなし) + + + + WBToolbarSearch + + Search + 検索 + + + No Recent Searches + 最近の検索なし + + + Recent Searches + 最近の検索 + + + Clear Recent Searches + 最近の検索のクリア + + + + WBWebPage + + Download + ダウンロード + + + Add to Current Document + 現在のドキュメントに追加 + + + PDF + PDF + + + Error loading page: %1 + ページのロード中にエラー: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + 新規タブ内で開く + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + YouTubeにポッドキャストを公開 + + + Title + タイトル + + + Description + 説明 + + + Keywords + キーワード + + + Category + カテゴリー + + + YouTube Username + YouTubeユーザー名 + + + YouTube Password + YouTubeパスワード + + + OpenBoard + OpenBoard + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + 明るい背景で + + + On Dark Background + 暗い背景で + + + Opacity + 不透明性 + + + Line Width + 線の幅 + + + Medium + + + + Strong + + + + Fine + + + + Pen is Pressure Sensitive + ペンは感圧性です。 + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + ダイアログ + + + Title + タイトル + + + E-mail + Eメール + + + Author + 作成者 + + + Description + 説明 + + + + documentPublishingDialog + + Dialog + ダイアログ + + + Title + タイトル + + + E-mail + Eメール + + + Author + 作成者 + + + Description + 説明 + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + 設定 + + + version : … + バージョン: … + + + Default Settings + デフォルト設定 + + + Close + 閉じる + + + Display + 表示 + + + Internet + インターネット + + + Show Page with External Browser + 外部ブラウザでページを表示 + + + Home Page: + ホームページ: + + + Virtual Keyboard + バーチャルキーボード + + + Keyboard button size: + キーボードボタンサイズ: + + + Toolbar + ツールバー + + + Positioned at the Top (recommended for tablets) + 上部に配置 (タブレット向け) + + + Positioned at the Bottom (recommended for white boards) + 下部に配置 (ホワイトボード向け) + + + Display Text Under Button + ボタン下にテキストを表示 + + + Stylus Palette + スタイラスパレット + + + Horizontal + 水平方向 + + + Vertical + 垂直方向 + + + Pen + ペン + + + About + 情報 + + + Software Update + ソフトウェア更新 + + + Check software update at launch + 起動時にソフトウェア更新をチェックする + + + Licences + ライセンス + + + Network + ネットワーク + + + Show internal web page content on secondary screen or projector + 映写機や二号スクリーンにウエブページを掲示する + + + Multi display + 複数表記 + + + Swap control display and view display + 点検表記と視覚表記を逆にする + + + Mode + モード + + + Mode to start in: + 最初モード: + + + Board + ボード + + + Desktop + デスクトップ + + + Proxy User: + プロキシ利用者: + + + Pass: + パスワード: + + + On Dark Background + 暗い背景で + + + Opacity + 不透明性 + + + On Light Background + 明るい背景で + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Marker + マーカー + + + Credits + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + トラップフラッシュ + + + Select a flash to trap + フラッシュを選択してトラップする + + + about:blank + 情報:ブランク + + + Application name + アプリケーション名 + + + Create Application + アプリケーションを作成 + + + diff --git a/resources/i18n/OpenBoard_ko.ts b/resources/i18n/OpenBoard_ko.ts new file mode 100644 index 0000000..c5b62ec --- /dev/null +++ b/resources/i18n/OpenBoard_ko.ts @@ -0,0 +1,2933 @@ + + + + + BlackoutWidget + + Click to Return to Application + 클릭하면 응용 프로그램으로 복귀합니다 + + + + DownloadDialog + + Downloads + 다운로드 + + + Clean Up + 정리 + + + 0 Items + 0 항목 + + + + DownloadItem + + Form + 양식 + + + Filename + 파일명 + + + Try Again + 재시도 + + + Stop + 중지 + + + Open + 열기 + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + YouTube에 팟캐스트 게시 + + + Title + 제목 + + + Description + 설명 + + + Author + 저자 + + + + MainWindow + + Board + 보드 + + + Web + + + + Documents + 문서 + + + Stylus + 스타일러스 + + + Ctrl+T + Ctrl+T + + + Backgrounds + 배경 + + + Change Background + 배경 바꾸기 + + + Undo + 실행 취소 + + + Ctrl+Z + Ctrl+Z + + + Redo + 다시 실행 + + + Ctrl+Y + Ctrl+Y + + + Previous + 이전 + + + Previous Page + 이전 페이지 + + + PgUp + PgUp + + + Next + 다음 + + + Next Page + 다음 페이지 + + + PgDown + PgDown + + + Manage Documents + 문서 관리 + + + Ctrl+D + Ctrl+D + + + Web Browsing + 웹 검색 + + + Ctrl+W + Ctrl+W + + + Line + + + + Small Line + 작은 줄 + + + Medium Line + 중간 줄 + + + Large Line + 큰 줄 + + + Quit + 종료 + + + Eraser + 지우개 + + + Smalle Eraser + 작은 지우개 + + + Medium Eraser + 중간 지우개 + + + Large Eraser + 큰 지우개 + + + Color + 색상 + + + Back + 뒤로 + + + Left + 왼쪽 + + + Forward + 앞으로 + + + Right + 오른쪽 + + + Reload + 다시보기 + + + Reload Current Page + 현재 페이지 다시보기 + + + Home + + + + Load Home Page + 홈페이지 불러오기 + + + Bookmarks + 북마크 + + + Show Bookmarks + 북마크 보이기 + + + Bookmark + 북마크 + + + Add Bookmark + 북마크 추가 + + + Display Board + 보드 표시 + + + Ctrl+B + Ctrl+B + + + Erase + 지우기 + + + Erase Content + 콘텐츠 지우기 + + + Preferences + 기본 설정 + + + Display Preferences + 디스플레이 기본 설정 + + + Library + 라이브러리 + + + Show Library + 라이브러리 보이기 + + + Ctrl+L + Ctrl+L + + + Show Desktop + 바탕 화면 보이기 + + + Show Computer Desktop + 컴퓨터 바탕 화면 보이기 + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + 크게 + + + Zoom In + 확대 + + + Ctrl++ + Ctrl++ + + + Smaller + 작게 + + + Zoom Out + 축소 + + + Ctrl+- + Ctrl+- + + + New Folder + 새 폴더 + + + Create a New Folder + 새 폴더 만들기 + + + New Document + 새 문서 + + + Create a New Document + 새 문서 만들기 + + + Import + 가져오기 + + + Import a Document + 문서 가져오기 + + + Export + 내보내기 + + + Export a Document + 문서 내보내기 + + + Open in Board + 보드에서 열기 + + + Open Page in Board + 보드에서 페이지 열기 + + + Ctrl+O + Ctrl+O + + + Duplicate + 복제 + + + Duplicate Selected Content + 선택된 콘텐츠 복제 + + + Delete + 삭제 + + + Delete Selected Content + 선택된 콘텐츠 삭제 + + + Del + Del + + + Add to Working Document + 작업 문서에 추가 + + + Add Selected Content to Open Document + 열린 문서에 선택된 콘텐츠 추가 + + + Add + 추가 + + + Add Content to Document + 문서에 콘텐츠 추가 + + + Rename + 이름 바꾸기 + + + Rename Content + 콘텐츠 이름 바꾸기 + + + Tools + 도구 + + + Display Tools + 도구 표시 + + + Multi Screen + 다중 화면 + + + Wide Size (16/9) + 와이드 크기 (16/9) + + + Use Document Wide Size (16/9) + 와이드 크기 문서 사용 (16/9) + + + Regular Size (4/3) + 일반 크기 (4/3) + + + Use Document Regular Size (4/3) + 일반 크기 문서 사용 (4/3) + + + Custom Size + 사용자 정의 크기 + + + Use Custom Document Size + 사용자 정의 크기 문서 사용 + + + Stop Loading + 불러오기 중지 + + + Stop Loading Web Page + 웹 페이지 불러오기 중지 + + + Cut + 잘라내기 + + + Copy + 복사하기 + + + Paste + 붙여넣기 + + + Sleep + 대기모드 + + + Put Presentation to Sleep + 프레젠테이션 대기모드 전환 + + + Virtual Keyboard + 가상 키보드 + + + Display Virtual Keyboard + 가상 키보드 표시 + + + Plain Light Background + 밝은 단색 배경 + + + Light + 밝은 색 + + + Grid Light Background + 밝은 체크무늬 배경 + + + Plain Dark Background + 어두운 단색 배경 + + + Dark + 어두운 색 + + + Grid Dark Background + 어두운 체크무늬 배경 + + + Podcast + 팟캐스트 + + + Record Presentation to Video + 프레젠테이션을 동영상으로 레코딩 + + + Record + 레코딩 + + + Start Screen Recording + 화면 레코딩 시작 + + + Erase Items + 항목 지우기 + + + Erase All Items + 모든 항목 지우기 + + + Erase Annotations + 주석 지우기 + + + Erase All Annotations + 모든 주석 지우기 + + + Clear Page + 페이지 지우기 + + + Clear All Elements + 모든 요소 지우기 + + + Pen + + + + Annotate Document + 문서에 주석 달기 + + + Ctrl+I + Ctrl+I + + + Erase Annotation + 주석 지우기 + + + Ctrl+E + Ctrl+E + + + Marker + 마커 + + + Highlight + 강조 + + + Ctrl+M + Ctrl+M + + + Selector + 선택자 + + + Select And Modify Objects + 객체 선택 및 수정 + + + Ctrl+F + Ctrl+F + + + Hand + + + + Scroll Page + 페이지 스크롤 + + + Laser Pointer + 레이저 포인터 + + + Virtual Laser Pointer + 가상 레이저 포인터 + + + Ctrl+G + Ctrl+G + + + Draw Lines + 줄 그리기 + + + Ctrl+J + Ctrl+J + + + Text + 텍스트 + + + Write Text + 텍스트 쓰기 + + + Ctrl+K + Ctrl+K + + + Capture + 캡처 + + + Capture Part of the Screen + 화면 일부 캡처 + + + Add To Current Page + 현재 페이지에 추가 + + + Add Item To Current Page + 현재 페이지에 항목 추가 + + + Add To New Page + 새 페이지에 추가 + + + Add Item To New Page + 새 페이지에 항목 추가 + + + Add To Library + 라이브러리에 추가 + + + Add Item To Library + 라이브러리에 항목 추가 + + + Pages + 페이지 + + + Create a New Page + 새 페이지 만들기 + + + New Page + 새 페이지 + + + Duplicate Page + 페이지 복제 + + + Duplicate the Current Page + 현재 페이지 복제 + + + Import Page + 페이지 가져오기 + + + Import an External Page + 외부 페이지 가져오기 + + + Pause + 일시 중지 + + + Pause Podcast Recording + 팟캐스트 레코딩 일시 중지 + + + Podcast Config + 팟캐스트 설정 + + + Configure Podcast Recording + 팟캐스트 레코딩 설정 + + + Flash Trap + 플래시 트랩 + + + Trap Flash Content + 플래시 콘텐츠 트랩 + + + Web Trap + 웹 트랩 + + + Trap Web Content + 웹 콘텐츠 트랩 + + + Custom Capture + 사용자 정의 캡처 + + + Window Capture + 창 캡처 + + + Capture a Window + 창 캡처하기 + + + Embed Web Content + 웹 콘텐츠 포함 + + + Capture Embeddable Web Content + 포함 가능한 웹 콘텐츠 캡처 + + + Show on Display + 디스플레이에 보이기 + + + Show Main Screen on Display Screen + 디스플레이 화면에 메인 화면 보이기 + + + Erase all Annotations + 모든 주석 지우기 + + + eduMedia + eduMedia + + + Import eduMedia simulation + eduMedia 시뮬레이션 가져오기 + + + Check Update + 업데이트 확인 + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + OpenBoard 종료 + + + Hide OpenBoard + OpenBoard 숨기기 + + + Hide OpenBoard Application + OpenBoard 응용 프로그램 숨기기 + + + Play + 재생 + + + Interact with items + 항목과 상호 작용 + + + Erase Background + 배경 지우기 + + + Remove the backgound + 배경 제거 + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + 인증이 필요합니다 + + + Username: + 사용자명: + + + Password: + 암호: + + + + ProxyDialog + + Proxy Authentication + 프록시 인증 + + + Connect to Proxy + 프록시에 연결 + + + Username: + 사용자명: + + + Password: + 암호: + + + Save username and password for future use + 향후 사용을 위해 사용자명과 암호 저장 + + + + QObject + + Element ID = + 요소 ID = + + + Content is not supported in destination format. + 대상 형식으로 지원되지 않는 콘텐츠입니다. + + + Remove Page + 페이지 제거 + + + Are you sure you want to remove 1 page from the selected document '%0'? + 선택한 문서 '%0'에서 1페이지를 제거하시겠습니까? + + + + UBApplication + + Page Size + 페이지 크기 + + + Podcast + 팟캐스트 + + + + UBApplicationController + + Web + + + + New update available, would you go to the web page ? + 새로운 업데이트가 있습니다. 웹 페이지로 이동하시겠습니까? + + + No update available + 업데이트가 없습니다 + + + Update available + 새 업데이트가 있습니다 + + + Update + 업데이트 + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + %1 콘텐츠 다운로드 실패 + + + Download finished + 다운로드 완료 + + + Unknown tool type %1 + 알 수 없는 도구 유형 %1 + + + Unknown content type %1 + 알 수 없는 콘텐츠 유형 %1 + + + Add Item + 항목 추가 + + + All Supported (%1) + 모든 지원 형식 (%1) + + + Delete page %1 from document + 문서에서 %1페이지 삭제 + + + Page %1 deleted + %1페이지 삭제됨 + + + Add file operation failed: file copying error + 파일 추가 작업 실패: 파일을 복사하는 도중 오류 발생 + + + Group + 그룹화 + + + Ungroup + 그룹 해제 + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + 색상 + + + + UBBoardPaletteManager + + Error Adding Image to Library + 이미지를 라이브러리에 추가하는 도중 오류가 발생했습니다 + + + CapturedImage + 캡처한 이미지 + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + 캐시 속성 + + + Color: + 색상: + + + Shape: + 모양: + + + Size: + 크기: + + + Close + 닫기 + + + + UBDesktopPalette + + Capture Part of the Screen + 화면 일부 캡처 + + + Capture the Screen + 화면 캡처 + + + Show the stylus palette + 스타일러스 팔레트 보이기 + + + Show Board on Secondary Screen + 보조 화면에 보드 보이기 + + + Show Desktop on Secondary Screen + 보조 화면에 바탕 화면 보이기 + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + 새 폴더 + + + Page %1 + %1 페이지 + + + Add Folder of Images + 이미지 폴더 추가 + + + Add Images + 이미지 추가 + + + Add Pages from File + 파일에서 페이지 추가 + + + Duplicating Document %1 + %1 문서 복제 중 + + + Document %1 copied + %1 문서 복사됨 + + + Remove Page + 페이지 제거 + + + Remove Document + 문서 제거 + + + Are you sure you want to remove the document '%1'? + 정말로 '%1' 문서를 제거하시겠습니까? + + + Empty Trash + 휴지통 비우기 + + + Are you sure you want to empty trash? + 정말로 휴지통을 비우시겠습니까? + + + Emptying trash + 휴지통 비우는 중 + + + Emptied trash + 휴지통 비우기 완료 + + + Remove Folder + 폴더 제거 + + + Are you sure you want to remove the folder '%1' and all its content? + 정말로 '%1' 폴더와 해당 내용을 모두 제거하시겠습니까? + + + No document selected! + 선택된 문서가 없습니다! + + + Open Supported File + 지원되는 파일 열기 + + + Importing file %1... + %1 파일 가져오는 중... + + + Failed to import file ... + 파일 가져오기 실패 ... + + + Import all Images from Folder + 폴더에서 모든 이미지 가져오기 + + + Delete + 삭제 + + + Empty + 비우기 + + + Trash + 휴지통 + + + Open Document + 문서 열기 + + + Add all Images to Document + 문서에 모든 이미지 추가 + + + All Images (%1) + 모든 이미지 (%1) + + + Selection does not contain any image files! + 선택된 영역에 이미지 파일이 없습니다! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + 선택한 문서 '%1'에서 %n페이지를 제거하시겠습니까? + + + + Folder does not contain any image files + 폴더에 이미지 파일이 없습니다 + + + Untitled Documents + 무제 문서 + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + 이미지 + + + videos + 동영상 + + + objects + 객체 + + + widgets + 위젯 + + + All supported files (*.%1) + 지원되는 모든 파일 (*.%1) + + + File %1 saved + %1 파일 저장됨 + + + Inserting page %1 of %2 + %1/%2페이지 삽입 중 + + + Import successful. + 가져오기 완료. + + + Import of file %1 successful. + %1 파일 가져오기 완료. + + + Importing file %1 + %1 파일 가져오는 중 + + + + UBDocumentNavigator + + Page %0 + %0 페이지 + + + + UBDocumentPublisher + + Export failed. + 내보내기 실패. + + + + UBDocumentReplaceDialog + + Accept + 적용 + + + Cancel + 취소 + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + 휴지통 + + + %1 pages copied + + + %1 페이지 복사됨 + + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + + %1 페이지 복사됨 + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + %1/%2 페이지 복사 중 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (사본) + + + Copying page %1/%2 + %1/%2 페이지 복사 중 + + + %1 pages copied + + + %1 페이지 복사됨 + + + + + + + UBDownloadWidget + + Downloading files + 파일 다운로드 중 + + + Cancel + 취소 + + + + UBDraggableThumbnail + + Page %0 + %0 페이지 + + + + UBDraggableThumbnailView + + Page %0 + %0 페이지 + + + + UBExportAdaptor + + Warnings during export was appeared + 내보내는 도중 경고가 나타났습니다 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + IWB로 내보내기 + + + Export as IWB File + IWB 파일로 내보내기 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Export failed. + 내보내기 실패. + + + + UBExportDocument + + Page + 페이지 + + + Export as UBZ File + UBZ 파일로 내보내기 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Exporting %1 %2 of %3 + %1 내보내는 중 %2/%3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Export failed. + 내보내기 실패. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + PDF 파일로 내보내기 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Export to PDF + PDF로 내보내기 + + + + UBExportPDF + + Export as PDF File + PDF 파일로 내보내기 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Exporting page %1 of %2 + %1/%2 페이지 내보내는 중 + + + Export to PDF + PDF로 내보내기 + + + + UBExportWeb + + Page + 페이지 + + + Export as Web data + 웹 데이터로 내보내기 + + + Exporting document... + 문서를 내보내는 중... + + + Export successful. + 내보내기 완료. + + + Export failed. + 내보내기 실패. + + + Export to Web Browser + 웹 브라우저로 내보내기 + + + + UBFeatureProperties + + Add to page + 페이지에 추가 + + + Set as background + 배경으로 지정 + + + Add to library + 라이브러리에 추가 + + + Object informations + 객체 정보 + + + + UBFeaturesActionBar + + Add to favorites + 즐겨찾기에 추가 + + + Share + 공유 + + + Search + 검색 + + + Delete + 삭제 + + + Back to folder + 폴더로 돌아가기 + + + Remove from favorites + 즐겨찾기에서 제거 + + + Create new folder + 새 폴더 만들기 + + + Rescan file system + 파일 시스템 다시 스캔 + + + + UBFeaturesController + + ImportedImage + 가져온 이미지 + + + Audios + 오디오 + + + Movies + 동영상 + + + Pictures + 사진 + + + Animations + 애니메이션 + + + Interactivities + 대화형 작업 + + + Applications + 응용 프로그램 + + + Shapes + 도형 + + + Favorites + 즐겨찾기 + + + Web search + 웹 검색 + + + Trash + 휴지통 + + + + UBFeaturesNewFolderDialog + + Accept + 적용 + + + Cancel + 취소 + + + Enter a new folder name + 새 폴더 이름 입력 + + + + UBFeaturesProgressInfo + + Loading + 불러오는 중 + + + + UBGraphicsGroupContainerItemDelegate + + Locked + 잠김 + + + Visible on Extended Screen + 확장 화면에 보이기 + + + + UBGraphicsItemDelegate + + Locked + 잠김 + + + Visible on Extended Screen + 확장 화면에 보이기 + + + Go to Content Source + 콘텐츠 소스로 이동 + + + Set as background + 배경으로 지정 + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <이곳에 텍스트를 입력하십시오> + + + + UBGraphicsTextItemDelegate + + Text Color + 텍스트 색상 + + + Editable + 편집 가능 + + + + UBGraphicsW3CWidgetItem + + Web + + + + + UBGraphicsWidgetItem + + Loading ... + 불러오는 중 ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + 동결됨 + + + Transform as Tool + 도구로 변환 + + + + UBImportCFF + + Common File Format ( + 일반 파일 형식 ( + + + Importing file %1... + %1 파일 가져오는 중... + + + Import of file %1 failed. + %1 파일 가져오기 실패. + + + Import successful. + 가져오기 완료. + + + Import failed. + 가져오기 실패. + + + + UBImportDocument + + Importing file %1... + %1 파일 가져오는 중... + + + Import successful. + 가져오기 완료. + + + Import of file %1 failed. + %1 파일 가져오기 실패. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + 이미지 형식 ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + PDF 가져오기 실패. + + + Importing page %1 of %2 + %1/%2 페이지 가져오는 중 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + 동영상을 인트라넷에 게시하는 도중 오류가 발생했습니다 (%1) + + + Publishing to Intranet in progress %1 % + 인트라넷 게시 진행 중 %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + 게시 + + + + UBKeyboardPalette + + Enter + 입력 + + + + UBMainWindow + + Yes + + + + No + 아니요 + + + Ok + 확인 + + + + UBMessagesDialog + + Close + 닫기 + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>%2에 "%1"의 사용자명과 암호를 입력하십시오</qt> + + + Failed to log to Proxy + 프록시 연결 실패 + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL 오류: + +%1 + +%2 + +해당 호스트에 대해 이 오류들을 무시하시겠습니까? + + + Yes + + + + No + 아니요 + + + + UBOpenSankoreImporterWidget + + Cancel + 취소 + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (사본) + + + Document Repository Loss + 문서 저장소 손실 + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + 영어 + + + Russian + 러시아어 + + + German + 독일어 + + + French + 프랑스어 + + + Swiss French + 스위스 프랑스어 + + + + UBPodcastController + + Failed to start encoder ... + 인코더 실행 실패 ... + + + No Podcast encoder available ... + 사용 가능한 팟캐스트 인코더가 없습니다 ... + + + Part %1 + %1 파트 + + + on your desktop ... + 바탕 화면에 ... + + + in folder %1 + %1 폴더에 + + + Podcast created %1 + %1 팟캐스트가 생성되었습니다 + + + Podcast recording error (%1) + 팟캐스트 레코딩 오류 (%1) + + + Default Audio Input + 기본 오디오 입력 + + + No Audio Recording + 오디오 레코딩 없음 + + + Small + 작게 + + + Medium + 중간 + + + Full + 전체 + + + Publish to Intranet + 인트라넷에 게시 + + + Publish to Youtube + YouTube에 게시 + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + 버전: + + + Marker is pressure sensitive + 마커는 압력 감지식입니다 + + + + UBProxyLoginDlg + + Proxy Login + 프록시 로그인 + + + Username: + 사용자명: + + + Password: + 암호: + + + + UBPublicationDlg + + Publish document on the web + 웹에 문서 게시 + + + Title: + 제목: + + + Description: + 설명: + + + Publish + 게시 + + + + UBSettings + + My Movies + 내 동영상 + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + 미리보기 썸네일 생성 중 ... + + + %1 thumbnails generated ... + %1 썸네일 생성됨 ... + + + + UBThumbnailTextItem + + Page %0 + %0 페이지 + + + + UBToolsManager + + Mask + 마스크 + + + Ruler + 눈금자 + + + Compass + 나침반 + + + Protractor + 각도기 + + + Triangle + 삼각자 + + + Magnifier + 돋보기 + + + Cache + 캐시 + + + Axes + + + + + UBTrapFlashController + + Whole page + 전체 페이지 + + + Web + + + + + UBUpdateDlg + + Document updater + 문서 업데이터 + + + files require an update. + 파일 업데이트가 필요합니다. + + + Backup path: + 백업 경로: + + + Browse + 찾아보기 + + + Update + 업데이트 + + + Select a backup folder + 백업 폴더를 선택하십시오 + + + Files update successful! +Please reboot the application to access the updated documents. + 파일 업데이트가 완료되었습니다! +업데이트된 문서에 액세스하려면 응용 프로그램을 재시작하십시오. + + + An error occured during the update. The files have not been affected. + 업데이트 도중 오류가 발생했습니다. 파일은 영향 받지 않았습니다. + + + Files update results + 파일 업데이트 결과 + + + Updating file + 파일 업데이트 중 + + + Please wait the import process will start soon... + 잠시 후 가져오기가 시작됩니다... + + + Remind me later + 나중에 알림 + + + + UBWebPluginWidget + + Loading... + 불러오는 중... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 호출됨 (메소드=%1, 상태=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube 인증 실패. + + + Error while uploading video to YouTube (%1) + 동영상을 YouTube에 업로드하는 도중 오류가 발생했습니다 (%1) + + + Upload to YouTube in progress %1 % + YouTube 업로드 진행 중 %1 % + + + + UBYouTubePublishingDialog + + Upload + 업로드 + + + Autos & Vehicles + 자동차 & 차량 + + + Music + 음악 + + + Pets & Animals + 애완동물 & 동물 + + + Sports + 스포츠 + + + Travel & Events + 여행 & 이벤트 + + + Gaming + 게임 + + + Comedy + 코미디 + + + People & Blogs + 사람 & 블로그 + + + News & Politics + 뉴스 & 정치 + + + Entertainment + 오락 + + + Education + 교육 + + + Howto & Style + 요령 & 스타일 + + + Nonprofits & Activism + 비영리 & 운동 + + + Science & Technology + 과학 & 기술 + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + 지우기 + + + + WBDownloadItem + + Save File + 파일 저장 + + + Download canceled: %1 + 다운로드 취소됨: %1 + + + Error opening saved file: %1 + 저장된 파일 열기 오류: %1 + + + Error saving: %1 + 저장 오류: %1 + + + Network Error: %1 + 네트워크 오류: %1 + + + seconds + + + + minutes + + + + - %4 %5 remaining + - %4 %5 남았습니다 + + + %1 of %2 (%3/sec) %4 + %1/%2 (%3/초) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1/%2 - 중지됨 + + + bytes + 바이트 + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 다운로드 + + + %1 Downloads + always >= 2 + %1 다운로드 + + + + WBHistoryModel + + Title + 제목 + + + Address + 주소 + + + + WBHistoryTreeModel + + Earlier Today + 오늘 이전 시간 + + + %1 items + %1 항목 + + + + WBSearchLineEdit + + Search + 검색 + + + + WBTabBar + + New &Tab + 새 탭(&T) + + + Clone Tab + 탭 복제 + + + &Close Tab + 탭 닫기(&C) + + + Close &Other Tabs + 다른 탭 닫기(&O) + + + Reload Tab + 탭 다시보기 + + + Reload All Tabs + 모든 탭 다시보기 + + + + WBTabWidget + + Recently Closed Tabs + 최근 닫은 탭 + + + (Untitled) + (무제) + + + + WBToolbarSearch + + Search + 검색 + + + No Recent Searches + 최근 검색 없음 + + + Recent Searches + 최근 검색 + + + Clear Recent Searches + 최근 검색 지우기 + + + + WBWebPage + + Download + 다운로드 + + + Add to Current Document + 현재 문서에 추가 + + + PDF + PDF + + + Error loading page: %1 + 페이지 불러오기 오류: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + 새 탭에서 열기 + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + YouTube에 팟캐스트 게시 + + + Title + 제목 + + + Description + 설명 + + + Keywords + 키워드 + + + Category + 범주 + + + YouTube Username + YouTube 사용자명 + + + YouTube Password + YouTube 암호 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">귀하는 'Upload'를 클릭함으로써 귀하가 해당 콘텐츠에 대한 모든 권한을 소유하거나 소유자로부터 해당 콘텐츠를 YouTube에 공개할 수 있도록 허락받았으며, 해당 콘텐츠가 YouTube 이용약관 (</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a><span style=" font-family:'Lucida Grande'; font-size:10pt;">)을 준수함을 보증합니다.</span></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + 밝은 배경 + + + On Dark Background + 어두운 배경 + + + Opacity + 불투명도 + + + Line Width + 줄 너비 + + + Medium + 중간 + + + Strong + 강렬한 + + + Fine + 가는 + + + Pen is Pressure Sensitive + 펜은 압력 감지식입니다 + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + 대화 + + + Title + 제목 + + + E-mail + 이메일 + + + Author + 저자 + + + Description + 설명 + + + + documentPublishingDialog + + Dialog + 대화 + + + Title + 제목 + + + E-mail + 이메일 + + + Author + 저자 + + + Description + 설명 + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + 기본 설정 + + + version : … + 버전 : … + + + Default Settings + 기본 설정 + + + Close + 닫기 + + + Display + 디스플레이 + + + Internet + 인터넷 + + + Show Page with External Browser + 외부 브라우저에 페이지 보이기 + + + Home Page: + 홈페이지: + + + Virtual Keyboard + 가상 키보드 + + + Keyboard button size: + 키보드 버튼 크기: + + + Toolbar + 툴바 + + + Positioned at the Top (recommended for tablets) + 상단에 위치 (타블렛 권장사항) + + + Positioned at the Bottom (recommended for white boards) + 하단에 위치 (화이트보드 권장사항) + + + Display Text Under Button + 버튼 아래에 텍스트 표시 + + + Stylus Palette + 스타일러스 팔레트 + + + Horizontal + 가로 + + + Vertical + 세로 + + + Pen + + + + Marker + 마커 + + + About + 소개 + + + Software Update + 소프트웨어 업데이트 + + + Check software update at launch + 실행시 소프트웨어 업데이트 확인 + + + Licences + 라이선스 + + + Network + 네트워크 + + + Show internal web page content on secondary screen or projector + 보조 화면 또는 프로젝터에 내부 웹 페이지 콘텐츠 표시 + + + Multi display + 다중 디스플레이 + + + Swap control display and view display + 컨트롤 디스플레이 스왑 및 디스플레이 보기 + + + Mode + 모드 + + + Mode to start in: + 시작할 모드: + + + Board + 보드 + + + Desktop + 바탕 화면 + + + Proxy User: + 프록시 사용자: + + + Pass: + 패스: + + + Credits + Credits + + + On Dark Background + 어두운 배경 + + + Opacity + 불투명도 + + + On Light Background + 밝은 배경 + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + 플래시 트랩 + + + Select a flash to trap + 플래시를 트랩으로 저장 + + + about:blank + about:blank + + + Application name + 응용 프로그램 이름 + + + Create Application + 응용 프로그램 만들기 + + + diff --git a/resources/i18n/OpenBoard_mg.ts b/resources/i18n/OpenBoard_mg.ts new file mode 100644 index 0000000..7adefee --- /dev/null +++ b/resources/i18n/OpenBoard_mg.ts @@ -0,0 +1,2929 @@ + + + + + BlackoutWidget + + Click to Return to Application + Tsindrio raha hiverina amin'ny rindran'asa + + + + DownloadDialog + + Downloads + Nalaina + + + Clean Up + Diovina + + + 0 Items + 0 Zavatra + + + + DownloadItem + + Form + Antonta-taratasy fenoina + + + Filename + Anaran'ny rakitra + + + Try Again + Avereno indray + + + Stop + Ajanony + + + Open + Sokafy + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Ametraka Podcat amin'ny Youtube + + + Title + Lohateny + + + Description + Fanazavana + + + Author + Mpamorona + + + + MainWindow + + Board + Solaitra + + + Web + Tranon-kala + + + Documents + Rakitra + + + Stylus + Haingo + + + Ctrl+T + Ctrl + T + + + Backgrounds + Sary ambadika + + + Text + Lahabolana + + + Capture + Fakana + + + Add To Current Page + Ampiana amin'ny io pejy io + + + Add To New Page + Ampiana amin'ny pejy vaovao + + + Add To Library + Ampiana amin'ny tahirim-boky + + + Pages + Pejy + + + New Page + Pejy vaovao + + + Undo + Tsy atao indray + + + Change Background + Ovaina ny sary ambadika + + + Ctrl+Z + Ctrl + Z + + + Redo + Atao indray + + + Ctrl+Y + Ctrl + Y + + + Previous + Teo aloha + + + Previous Page + Pejy teo aloha + + + PgUp + PgUp + + + Next + Ao aorina + + + Next Page + Pejy ao aorina + + + PgDown + PgDpwn + + + Manage Documents + Fikarakarana ny rakitra + + + Ctrl+D + Ctrl + D + + + Web Browsing + Mpizaha tranon-kala + + + Ctrl+W + Ctrl + W + + + Small Line + Tsipika kely + + + Medium Line + Tsipika salasala + + + Large Line + Tsipika lehibe + + + Smalle Eraser + Fafotse kely + + + Medium Eraser + Fafotse salasala + + + Large Eraser + Fafotse lehibe + + + Reload Current Page + Avereno aseho io pejy io + + + Load Home Page + Aseho ny pejin'ny fandraisana + + + Show Bookmarks + Aseho ny tobin-drohy + + + Add Bookmark + Ampiana ny tobin-drohy + + + Display Board + Aseho ny solaitra + + + Erase Content + Fafana ny mpiatiny + + + Display Preferences + Aseho ny safidy nofaritana + + + Show Library + Aseho ny tahirim-boky + + + Show Computer Desktop + Aseho ny sehatr'asan'ny solosaina + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Create a New Folder + Mamorona fitoeran-drakitra vaovao + + + Create a New Document + Mamorona rakitra vaovao + + + Import a Document + Manafatra rakitra + + + Export a Document + Mandefa rakitra + + + Open Page in Board + Manokatra pejy amin'ny solaitra + + + Duplicate Selected Content + Asina dikamitovy ny mpiatiny voafidy + + + Delete Selected Content + Fafana ny dikamitovy ny mpiatiny voafidy + + + Add Content to Document + Ampiana amin'ny rakitra ity mpiatiny ity + + + Rename Content + Soloina anarana ny mpiatiny + + + Display Tools + Aseho ny fitaovana + + + Use Document Wide Size (16/9) + Ampiasana ny haben'ny antonta-tarasy malalaka (16/9) + + + Use Document Regular Size (4/3) + Ampiasana ny haben'ny antonta-tarasy mahazatra (4/3) + + + Use Custom Document Size + Ampiasana ny haben'ny antonta-tarasy voasafidy manokana + + + Stop Loading Web Page + Ajanony ny fakana ny pejin'ny tranon-kala + + + Put Presentation to Sleep + Ahato ny fampisehoana + + + Display Virtual Keyboard + Asehoy ny fafan-teny virtoaly + + + Record Presentation to Video + Raiketo ho horonan-tsary ny fampisehoana + + + Erase Items + Fafana ilay zavatra + + + Erase All Items + Fafana ny zavatra rehetra + + + Erase Annotations + Fafana ny fanamarihana + + + Erase All Annotations + Fafana ny fanamarihana rehetra + + + Clear All Elements + Fafana ny zavatra rehetra + + + Pen + penina + + + Annotate Document + Manamarika rakitra + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Fafany ilay fanamarihana + + + Ctrl+E + Ctrl+E + + + Marker + Penina lehibe + + + Highlight + Asongadina + + + Ctrl+M + Ctrl+M + + + Selector + Mpifantinana + + + Select And Modify Objects + Mifantina sy manova zavatra + + + Ctrl+F + Ctrl+F + + + Hand + Tanana + + + Capture Part of the Screen + Maka ampahan'ny efijery + + + Custom Capture + Fakana manokana + + + Capture a Window + Maka ny fikandrana iray + + + Embed Web Content + Mpiatin'ny tranon-kala natsofoka + + + Capture Embeddable Web Content + Fakana mpiatin'ny tranon-kala azo atsofoka + + + Show Main Screen on Display Screen + Aseho amin'ny efijery hita ny efijery ampiasana matetika + + + Erase all Annotations + Fafana ny fanamarihana rehetra + + + eduMedia + eduMedia + + + Import eduMedia simulation + Hafarana ny fiasan'i eduMedia + + + Check Update + Jereo raha misy fanavaozana + + + Ctrl+H + Ctrl+H + + + Zoom In + Zòma mahalehibe + + + Zoom Out + Zòma mahakely + + + Line + Tsipika + + + Quit + Hidio + + + Eraser + Fafotse + + + Color + Loko + + + Back + Miverina + + + Left + Havia + + + Forward + Manaraka + + + Right + Havanana + + + Reload + Averina alefa indray + + + Home + Fandraisana + + + Bookmarks + Tobin-drohy + + + Bookmark + Tobin-drohy + + + Ctrl+B + Ctrl+B + + + Clear Page + Fafana ny pejy + + + Preferences + Safidy nofaritana + + + Erase + Fafana + + + Library + Tahirim-boky + + + Ctrl+L + Ctrl+L + + + Show Desktop + Asehoy ny sehatr'asa + + + Bigger + Lehibe kokoa + + + Ctrl++ + Ctrl++ + + + Smaller + Kelikely kokoa + + + Ctrl+- + Ctrl+- + + + New Folder + Fitoeran-drakitra vaovao + + + New Document + Rakitra vaovao + + + Import + Manafatra + + + Export + Mandefa + + + Open in Board + Sokafana amin'ny solaitra + + + Ctrl+O + Ctrl+O + + + Duplicate + Asina dikamitovy + + + Delete + Fafana + + + Del + Del + + + Add to Working Document + Ampiana amn'ny rakitra iasana + + + Add Selected Content to Open Document + Ampiana amin'ny rakitra misokatra ny mpiatiny voasafidy + + + Add + Ampiana + + + Rename + Soloina ny anarana + + + Cut + Tapahana + + + Copy + Adika + + + Paste + Apetaka + + + Grid Light Background + Efamira-tsoramiafina ambadika mazava + + + Grid Dark Background + Efamira-tsoramiafina ambadika maizina + + + Start Screen Recording + Atomboka ny fandraiketana ny efijery + + + Scroll Page + Fampidinana sy fampiakarana ny pejy + + + Laser Pointer + Tondro laser + + + Virtual Laser Pointer + Tondro laser virtoaly + + + Ctrl+G + Ctrl+G + + + Draw Lines + Manoratra tsipika + + + Ctrl+J + Ctrl+J + + + Write Text + Manoratra lahabolana + + + Ctrl+K + Ctrl+K + + + Add Item To Current Page + Ampiana amn'ny pejy ampiaisana ilay zavatra + + + Add Item To New Page + Ampiana amn'ny pejy vaovao ilay zavatra + + + Add Item To Library + Ampiana amn'ny tahirim-boky ilay zavatra + + + Create a New Page + Mamorona pejy vaovao + + + Duplicate Page + Manao dikamitovy ny pejy + + + Duplicate the Current Page + Manao dikamitovy an'ilay pejy ampiasana + + + Import Page + Manafatra pejy + + + Import an External Page + Manafatra pejy ivelany + + + Pause + Ahato + + + Pause Podcast Recording + Ahato ny fandraiketana ny Podcast + + + Podcast Config + Fanefena ny Podcast + + + Configure Podcast Recording + Fanefena ny fandraiketana ny Podcast + + + Flash Trap + Alaina ny Flash + + + Trap Flash Content + Alaina ny mpiatiny Flash + + + Web Trap + Alaina ny tranon-kala + + + Trap Web Content + Alaina ny mpiatin'ny tranon-kala + + + Window Capture + Alaina ny fikandrana + + + Show on Display + Asehoy amin'ny zavatra hita + + + Sleep + Ampatorina + + + Virtual Keyboard + Fafan-teny virtoaly + + + Plain Light Background + Faritra ambadika mazava + + + Light + Mazava + + + Plain Dark Background + Faritra ambadika maizina + + + Dark + Maizina + + + Podcast + Podcast + + + Record + Raiketo + + + Tools + Fitaovana + + + Multi Screen + Efijery maromaro + + + Wide Size (16/9) + Habe lehibe (16/9) + + + Regular Size (4/3) + Habe antonony (4/3) + + + Custom Size + Habe safidina manokana + + + Stop Loading + Ajanony ny fakana + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Sokafy OpenBoard + + + Hide OpenBoard + Afeno OpenBoard + + + Hide OpenBoard Application + Afeno ny rindran'asan'i OpenBoard + + + Play + Alefaso + + + Interact with items + Ampiasana ny zavatra + + + Erase Background + Fafana ny ao ambadika + + + Remove the backgound + Esorina ny ao ambadika + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Famantarana ilaina + + + Username: + Anaran'ny mpampiasa: + + + Password: + Teny fanalahidy: + + + + ProxyDialog + + Proxy Authentication + Famantaranan'ny Proxy + + + Connect to Proxy + Mifandray amin'ny Proxy + + + Username: + Anaran'ny mpampiasa: + + + Password: + Teny fanalahidy: + + + Save username and password for future use + Raiketo ny anaran'ny mpampiasa sy ny teny fanalahidy ho an'ny fampiasana manaraka + + + + QObject + + Element ID = + Isa famantaranaan'ilay zavatra = + + + Content is not supported in destination format. + Tsy zakan'ny andrefy tanjona ilay mpiatiny. + + + Remove Page + Fafao ny pejy + + + Are you sure you want to remove 1 page from the selected document '%0'? + Tena te hamafa pejy iray avy amin'ilay rakitra '%0' voafidy ve ianao ? + + + + UBApplication + + Page Size + Haben'ny pejy + + + Podcast + Podcast + + + + UBApplicationController + + Web + Tranon-kala + + + New update available, would you go to the web page ? + Misy fanavaozana azo alaina, te hande amin'ny pejin'ilay tranonkala ve ianao ? + + + No update available + Tsisy fanavaozana azo alaina + + + Update available + Fanavaozana azo alaina + + + Update + Avaozy + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Fakana mpiatiny %1 tsy nety + + + Download finished + Fakana mpiatiny vita + + + Unknown tool type %1 + Fitaovana tsy fantatra karazana %1 + + + Add Item + Ampiana zavatra + + + All Supported (%1) + Zaka daholo (%1) + + + Unknown content type %1 + Mpiatiny tsy fantatra karazana %1 + + + Delete page %1 from document + Fafao ny pejy %1 amin'ilay rakitra + + + Page %1 deleted + Pejy %1 voafafa + + + Add file operation failed: file copying error + Fanampiana rakitra tsy nety: nisy tsy fetezana tamin'ny fandikana ny rakitra + + + Group + Atokony + + + Ungroup + Avaho + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Loko + + + + UBBoardPaletteManager + + Error Adding Image to Library + Fanampiana ny sary amin'ny tahirim-boky tsy nety + + + CapturedImage + Sary nalaina + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Toetoetran'ny tahiry + + + Color: + Loko: + + + Shape: + Bika: + + + Size: + Habe: + + + Close + Hidio + + + + UBDesktopPalette + + Capture Part of the Screen + Maka ampahan'ny efijery + + + Capture the Screen + Maka ny efijery + + + Show the stylus palette + Aseho ny fanovana haingony + + + Show Board on Secondary Screen + Aseho ny solaitra amin'ny efijery faharoa + + + Show Desktop on Secondary Screen + Aseho ny sehatr'asa amin'ny efijery faharoa + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Fiteoran-drakitra vaovao + + + Page %1 + Pejy %1 + + + Add Folder of Images + Manampy fitoeran-drakitra misy sary + + + Add Images + Manampy sary + + + Add Pages from File + Manampy pejy an'ilay rakitra + + + Duplicating Document %1 + Dikamitovy-na rakitra %1 + + + Document %1 copied + Rakitra %1 nadika + + + Remove Page + Fafao ny pejy + + + Remove Document + Fafao ny rakitra + + + Are you sure you want to remove the document '%1'? + Tena te hamafa an'ilay rakitra '%1' ve ianao ? + + + Empty Trash + Daba foana + + + Are you sure you want to empty trash? + Tena te hanafoana an'ilay daba ve ianao ? + + + Emptying trash + Manafoana daba + + + Emptied trash + Daba voafoana + + + Remove Folder + Mamafa fitoeran-drakitra + + + Are you sure you want to remove the folder '%1' and all its content? + Tena te hamafa an'ilay fitoeran-drakitra '%1' ve ianao sy ny mpiatiny rehetra ? + + + No document selected! + Tsisy fitoeran-drakitra voafidy! + + + Open Supported File + Manokatra rakitra zaka + + + Importing file %1... + Manafatra rakitra %1 ... + + + Failed to import file ... + Nisy tsy fetezana ny fanafarana rakitra ... + + + Import all Images from Folder + Alaina daholo ny sary amin'ilay fitoeran-drakitra + + + Delete + Fafao + + + Empty + Foana + + + Trash + Daba + + + Open Document + Manokatra rakitra + + + Add all Images to Document + Ampiana amin'ilay rakitra ny sary rehetra + + + All Images (%1) + Ny sary rehetra(%1) + + + Selection does not contain any image files! + Tsy misy sary ilay fantina! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Tena te hamafa pejy %n avy amin'ilay rakitra '%1' voafidy ve ianao ? + + + + + Folder does not contain any image files + Tsy misy sary ilay fitoeran-drakitra + + + Untitled Documents + Rakitra tsy misy lohateny + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + sary + + + videos + horonan-tsary + + + objects + Zavatra + + + widgets + widgets + + + All supported files (*.%1) + Ny rakitra rehetra zaka (*.%1) + + + File %1 saved + Rakitra %1 voaraikitra + + + Inserting page %1 of %2 + Mampiditra pejy %1 amin'ny %2 + + + Import successful. + Fanafarana nety. + + + Import of file %1 successful. + Fanafarana ny rakitra %1 nety. + + + Importing file %1 + Manafatra rakitra %1 + + + + UBDocumentNavigator + + Page %0 + Pejy %0 + + + + UBDocumentPublisher + + Export failed. + Fandefasana tsy nety. + + + + UBDocumentReplaceDialog + + Accept + Ekena + + + Cancel + Ajanony + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Daba + + + %1 pages copied + + %1 pejy voadika + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 pejy voadika + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Mandika pejy %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (fandikana) + + + Copying page %1/%2 + Mandika pejy %1/%2 + + + %1 pages copied + + %1 pejy voadika + + + + + + UBDownloadWidget + + Downloading files + Maka rakitra + + + Cancel + Ajanony + + + + UBDraggableThumbnail + + Page %0 + Pejy %0 + + + + UBDraggableThumbnailView + + Page %0 + Pejy %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Nisy fitandremana niseho tamin'ny fandefasana ny rakitra + + + Export successful. + Fandefasana nety. + + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Alefa ho IWB + + + Export as IWB File + Alefa ho rakitra IWB + + + Exporting document... + Mandefa ny rakitra ... + + + Export successful. + Fandefasana nety. + + + Export failed. + Fandefasana tsy nety. + + + + UBExportDocument + + Page + Pejy + + + Export as UBZ File + Alefa ho rakitra UBZ + + + Exporting document... + Mandefa rakitra ... + + + Export successful. + Fandefasana nety. + + + Exporting %1 %2 of %3 + Fandefasana %1 %2 amin'ny %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Export successful. + Fandefasana nety. + + + Export failed. + Fandefasana tsy nety. + + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Alefa ho rakitra PDF + + + Exporting document... + Mandefa ny rakitra ... + + + Export to PDF + Alefa ho PDF + + + Export successful. + Fandefasana nety. + + + + UBExportPDF + + Export as PDF File + Alefa ho rakitra PDF + + + Exporting page %1 of %2 + Mandefa ny pejy %1 amin'ny %2 + + + Export successful. + Fandefasana nety. + + + Exporting document... + Mandefa rakitra ... + + + Export to PDF + Alefa ho PDF + + + + UBExportWeb + + Page + Pejy + + + Export as Web data + Alefa ho data an'ny tranon-kala + + + Exporting document... + Fandefasana rakitra ... + + + Export successful. + Fandefasana nety. + + + Export failed. + Fandefasana tsy nety. + + + Export to Web Browser + Alefa any amin'ny mpitety ny tranon-kala + + + + UBFeatureProperties + + Add to page + Ampiana amin'ilay pejy + + + Set as background + Apetraka ambadika + + + Add to library + Ampiana amin'ny tahirim-boky + + + Object informations + Mombamomban'ny zavatra + + + + UBFeaturesActionBar + + Add to favorites + Ampiana amin'ny zavatra tena tiana + + + Share + Zaraina + + + Search + Hikaroka + + + Delete + Fafana + + + Back to folder + Miverina any amn'ilay fitoeran-drakitra + + + Remove from favorites + Fafana amin'ny zavatra tena tiana + + + Create new folder + Mamorona fitoeran-drakitra vaovao + + + Rescan file system + Avereno jerena ny rakitrin'ny rafitra + + + + UBFeaturesController + + ImportedImage + Sary Nafarana + + + Audios + Feo + + + Movies + Sarimietsika + + + Pictures + Sary + + + Animations + Sary ahetsika + + + Interactivities + Fifandraisana + + + Applications + Rindran'asa + + + Shapes + Bika + + + Favorites + Tena tiana + + + Web search + Fikarohana ny tranon-kala + + + Trash + Daba + + + + UBFeaturesNewFolderDialog + + Accept + Ekena + + + Cancel + Ajanony + + + Enter a new folder name + Ampidiro ny anaran'ilay fitoeran-drakitra vaovao + + + + UBFeaturesProgressInfo + + Loading + Maka + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Voahidy + + + Visible on Extended Screen + Hita amin'ny efijery voavelatra + + + + UBGraphicsItemDelegate + + Locked + Voahidy + + + Visible on Extended Screen + Hita amin'ny efijery voavelatra + + + Go to Content Source + Hande any amin'ny fototr'ilay mpiatiny + + + Set as background + Apetraka ambadika + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Type lahabolana eto> + + + + UBGraphicsTextItemDelegate + + Text Color + Lokon'ilay lahabolana + + + Editable + Azo ovaina + + + + UBGraphicsW3CWidgetItem + + Web + Tranon-kala + + + + UBGraphicsWidgetItem + + Loading ... + Maka ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Nampagatsiahana + + + Transform as Tool + Ovaina ho fitaovana + + + + UBImportCFF + + Common File Format ( + Andrefin'ny rakitra mahazatra ( + + + Importing file %1... + Manafatra rakitra %1 ... + + + Import of file %1 failed. + Fanafarana ny rakitra %1 tsy nety. + + + Import successful. + Fanafarana nety. + + + Import failed. + Fanafarana tsy nety. + + + + UBImportDocument + + Importing file %1... + Manafatra rakitra %1 ... + + + Import successful. + Fanafarana nety. + + + Import of file %1 failed. + Fanafarana ny rakitra %1 tsy nety. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Andrefin'ilay sary ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Fanafarana PDF tsy nety. + + + Importing page %1 of %2 + Manafatra pejy %1 amin'ny %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Nisy tsy fetezana tamin'ny fandefasana ny horonan-tsary amin'ny tranon-kala anatiny (%1) + + + Publishing to Intranet in progress %1 % + Fandefasana amin'ny tranon-kala anatiny mandeha %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Alefa + + + + UBKeyboardPalette + + Enter + Hiditra + + + + UBMainWindow + + Yes + Eny + + + No + Tsia + + + Ok + Ekena + + + + UBMessagesDialog + + Close + Hidio + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt> Ampidiro ny anaran'ny mpampiasa sy ny teny fanalahidy ho an'ny "%1" amin'ny %2 </qt> + + + Failed to log to Proxy + Tsy nety ny fidirana ami'ny Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Tsy fetezana SSL + +%1 + +%2 + +Tena tsy te hiraharaha an'ireo tsy mety ho an'ilay milina ve ianao? + + + Yes + Eny + + + No + Tsia + + + + UBOpenSankoreImporterWidget + + Cancel + Ajanony + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (adika) + + + Document Repository Loss + Haverezana ny fitehirizana ny rakitra + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Anglisy + + + Russian + Rosiana + + + German + Alemanina + + + French + Frantsay + + + Swiss French + Frantsay avy amin'ny Suisse + + + + UBPodcastController + + Failed to start encoder ... + Nisy tsy nety ny fandefasana ny encoder ... + + + No Podcast encoder available ... + Tsy misy Podcast encoder azo alaina ... + + + Part %1 + Ampahany %1 + + + on your desktop ... + eo amin'ny sehatr'asanao ... + + + in folder %1 + ao anatin'ny fitoeran-drakitra %1 + + + Podcast created %1 + Podcast voaforona %1 + + + Podcast recording error (%1) + Nisy tsy nety ny fandraiketana ny Podcast (%1) + + + Default Audio Input + Fidirana feo tsotra + + + No Audio Recording + Tsy misy ny fandraiketana ny feo + + + Small + Kely + + + Medium + Salasala + + + Full + Feno + + + Publish to Intranet + Alefa amin'ny tranon-kala anatiny + + + Publish to Youtube + Alefa amin'ny Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + kinova: + + + Marker is pressure sensitive + Ny penina lehibe dia sarotiny amin'ny fitsindrina + + + + UBProxyLoginDlg + + Proxy Login + Fidirana Proxy + + + Username: + Anaran'ny mpampiasa: + + + Password: + Teny fanalahidy: + + + + UBPublicationDlg + + Publish document on the web + Apetraka amin'ny tranon-kala ny rakitra + + + Title: + Lohateny: + + + Description: + Fanazavana: + + + Publish + Alefa + + + + UBSettings + + My Movies + Ny sarimietsiko + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Mamorona kisarisary ho hita aloha ... + + + %1 thumbnails generated ... + %1 ny kisarisary no voaforona ... + + + + UBThumbnailTextItem + + Page %0 + Pejy %0 + + + + UBToolsManager + + Compass + Famantaranavaratra + + + Ruler + Fanipihana + + + Protractor + Rapporteur + + + Mask + Tasova + + + Triangle + Telolafy + + + Magnifier + Fanita-jery + + + Cache + Tahiry + + + Axes + + + + + UBTrapFlashController + + Whole page + Pejy iray manontolo + + + Web + Tranon-kala + + + + UBUpdateDlg + + Document updater + Mpanavaozana ny rakitra + + + files require an update. + Mila fanavaozana ny rakitra. + + + Backup path: + Lalana ny dikamitovy: + + + Browse + Hizaha + + + Update + Avaozy + + + Select a backup folder + Safidio ny fitoeran-drakitra asiana dikamitovy + + + Files update successful! +Please reboot the application to access the updated documents. + Nety ny fanavaozana ny rakitra! +Avereno alefa ny rindr'asa ahafahana mampiasa ny rakitra novoazana azafady. + + + An error occured during the update. The files have not been affected. + Nisy tsy nety tamin'ny fanavaozana. Tsy niova ny rakitra. + + + Files update results + Valin'ny fanavaozana ny rakitra + + + Updating file + Manavao an'ilay rakitra + + + Please wait the import process will start soon... + Mba endraso kely azafady, anomboka tsy ho ela ny fanafarana ... + + + Remind me later + Ampatsiahivo ana amin'ny manaraka + + + + UBWebPluginWidget + + Loading... + Maka ... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 voaantso ( paika = %1, fandehany=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Famantarana YouTube tsy nety. + + + Error while uploading video to YouTube (%1) + Nisy tsy fetezana tamin'ny fandefasana ny horonan-tsary amin'ny YouTube (%1) + + + Upload to YouTube in progress %1 % + Fandefasana ho an'ny YouTube am-pandehanana %1 % + + + + UBYouTubePublishingDialog + + Upload + Fandefasana + + + Autos & Vehicles + Fiarakodia & fiara + + + Music + Mozika + + + Pets & Animals + Biby + + + Sports + Fanatajahan-tena + + + Travel & Events + Dia & zava-miseho + + + Gaming + Filalaovana + + + Comedy + Mampiomehy + + + People & Blogs + Olona & Blogs + + + News & Politics + Vaovao & politika + + + Entertainment + Kilalao + + + Education + Fianarana + + + Howto & Style + Ahoana no manao azy & Haingo + + + Nonprofits & Activism + Tsy misy tombony & Fandraisana andraikitra + + + Science & Technology + Siansa & Teknolojia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Diovy + + + + WBDownloadItem + + Save File + Raiketo ny rakitra + + + Download canceled: %1 + Fakana najanona: %1 + + + Error opening saved file: %1 + Nisy tsy nety tamin'ny fanokafana ny rakitra voatahiry: %1 + + + Error saving: %1 + Nisy tsy nety tamin'ny fandraiketana: %1 + + + Network Error: %1 + Nisy tsy nety tamin'ny rezo: %1 + + + seconds + segondra + + + minutes + minitra + + + - %4 %5 remaining + - %4 %5 sisa + + + %1 of %2 (%3/sec) %4 + %1 amin'ny %2 (%3 isakin'ny segondra) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 amin'ny %2 - Najanona + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + %1 Downloads + always >= 2 + %1 Nalaina + + + 1 Download + Nalaina 1 + + + + WBHistoryModel + + Title + Lohateny + + + Address + Adiresy + + + + WBHistoryTreeModel + + Earlier Today + Talohaloha androany + + + %1 items + %1 Zavatra + + + + WBSearchLineEdit + + Search + Hikaroka + + + + WBTabBar + + New &Tab + Vaovao & Tab + + + Clone Tab + Asina dikamitovy ny Tab + + + &Close Tab + &Idina ny Tab + + + Close &Other Tabs + Idina & ny Tab sasany + + + Reload Tab + Averina aseho ny Tab + + + Reload All Tabs + Averina aseho ny Tab rehetra + + + + WBTabWidget + + Recently Closed Tabs + Ny Tab nidina vao vetivety + + + (Untitled) + ( Tsy misy lohateny) + + + + WBToolbarSearch + + Search + Hikaroka + + + No Recent Searches + Tsy misy karoka vao natao vetivety + + + Recent Searches + Karoka vao natao vetivety + + + Clear Recent Searches + Fafao ny karoka vao natao vetivety + + + + WBWebPage + + Download + Nalaina + + + Add to Current Document + Ampiana amn'ny rakitra iasana + + + PDF + PDF + + + Error loading page: %1 + Nisy tsy nety tamin'ny fanafarana ny pejy: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Sokafy amin'ny Tab vaovao + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Ametraka Podcast amin'ny Youtube + + + Title + Lohateny + + + Description + Fanazavana + + + Keywords + Teny mahasarika + + + Category + Antoko + + + YouTube Username + Anaran'ny mpampiasa Youtube + + + YouTube Password + Teny fanalahidy Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Rehefa tsindrinao ny "Alefa" dia manamarina ianao fa manana ny alalana rehetra ami'ny mpiatiny na nomen'ny mpamorona alalana ianao andefa an'ilay rakitra amin'ny YouTube.</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + Hateviny + + + On Light Background + Amin'ny ambadika mazava + + + On Dark Background + Amin'ny ambadika maizina + + + Line Width + Sakan'ny tsipika + + + Medium + Salasala + + + Strong + Matevina + + + Fine + Tsara + + + Pen is Pressure Sensitive + Ny penina dia sarotiny amin'ny fitsindrina + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Fifakalozan-kevitra + + + Title + Lohateny + + + E-mail + Mailaka + + + Author + Mpamorona + + + Description + Fanazavana + + + + documentPublishingDialog + + Dialog + Fifakalozan-kevitra + + + Title + Lohateny + + + E-mail + Mailaka + + + Author + Mpamorona + + + Description + Fanazavana + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Safidy nofaritana + + + Default Settings + Famaritana tsotra + + + Close + Hidio + + + Display + Asehoy + + + Show Page with External Browser + Asehoy ny pejy miaraka ami'ny mpizaha ivelany + + + Virtual Keyboard + Fafan-teny virtoaly + + + Keyboard button size: + Haben'ny kitendrin'ny fafan-teny: + + + Positioned at the Top (recommended for tablets) + Natao teo ambony (atoro ho an'ny tablets) + + + Positioned at the Bottom (recommended for white boards) + Natao teo ambany (atoro ho an'ny solaitra fotsy) + + + Display Text Under Button + Asehoy ny lahateny eo ambanin'ny bokotra + + + Stylus Palette + Fanovana haingony + + + Horizontal + Matory + + + Vertical + Mijidina + + + About + Mombamomba + + + Software Update + Fanavaozana kirakira + + + Check software update at launch + Jereo raha misy fanavaozana ny kirakira ami'ny fandefasana + + + Internet + Aterineto + + + Home Page: + Pejin'ny fandraisana: + + + Toolbar + Anjan'ny fitaovana + + + Pen + Penina + + + Marker + Penina lehibe + + + version : … + kinova: ... + + + Licences + Licences + + + Network + Rezo + + + Show internal web page content on secondary screen or projector + Asehoy nympiatin'ny pejin'ny tranon-kala anaty amin'ny efijery faharoa na amin'ny projecteur + + + Multi display + Fisehoana maromaro + + + Swap control display and view display + Ampifanakaloza ny fisehoana ny mpibaiko sy ny fisehoana ny hita + + + Mode + Fiasany + + + Mode to start in: + Fiasany amin'ny fandefasana an'azy: + + + Board + Solaitra + + + Desktop + Sehatr'asa + + + Proxy User: + Mpampiasa ny Proxy: + + + Pass: + Teny fanalahidy: + + + Credits + Voaka + + + On Dark Background + Amin'ny ambadika maizina + + + Opacity + Hateviny + + + On Light Background + Amin'ny ambadika mazava + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Alaina ny Flash + + + Select a flash to trap + Safidio ny Flash ho alaina + + + about:blank + Mombamomba: foana + + + Application name + Anaran'ny rindran'asa + + + Create Application + Mamorona rindran'asa + + + diff --git a/resources/i18n/OpenBoard_nb.ts b/resources/i18n/OpenBoard_nb.ts new file mode 100644 index 0000000..5b4409a --- /dev/null +++ b/resources/i18n/OpenBoard_nb.ts @@ -0,0 +1,2919 @@ + + + + + BlackoutWidget + + Click to Return to Application + Klikk for å gå tilbake til applikasjonen + + + + DownloadDialog + + Downloads + Laster ned + + + Clean Up + Opprensking + + + 0 Items + 0 enheter + + + + DownloadItem + + Form + Form + + + Filename + Filnavn + + + Try Again + Forsøk igjen + + + Stop + Stopp + + + Open + Åpne + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publiser podcast til YouTube + + + Title + Tittel + + + Description + Beskrivelse + + + Author + Forfatter + + + + MainWindow + + Board + Tavle + + + Web + Web + + + Documents + Dokumenter + + + Stylus + Stylus + + + Ctrl+T + Ctrl+T + + + Backgrounds + Bakgrunnsalternativer + + + Change Background + Endre bakgrunn + + + Undo + Angre + + + Ctrl+Z + Ctrl+Z + + + Redo + Gjør om igjen + + + Ctrl+Y + Ctrl+Y + + + Previous + Forrige + + + Previous Page + Forrige side + + + PgUp + Side opp + + + Next + Neste + + + Next Page + Neste side + + + PgDown + Side ned + + + Manage Documents + Rediger dokumenter + + + Ctrl+D + Ctrl+D + + + Web Browsing + Nettsurfing + + + Ctrl+W + Ctrl+W + + + Line + Linje + + + Small Line + Liten linje + + + Medium Line + Middels linje + + + Large Line + Store linje + + + Quit + Avslutt + + + Eraser + Slettemarkør + + + Smalle Eraser + Liten slettemarkør + + + Medium Eraser + Middels slettemarkør + + + Large Eraser + Stor slettemarkør + + + Color + Farge + + + Back + Tilbake + + + Left + Venstre + + + Forward + Forover + + + Right + Høyre + + + Reload + Last opp på nytt + + + Reload Current Page + Last opp denne siden + + + Home + Hjem + + + Load Home Page + Last opp hjemmesiden + + + Bookmarks + Bokmerker + + + Show Bookmarks + Vis bokmerker + + + Bookmark + Bokmerke + + + Add Bookmark + Tilføy bokmerke + + + Display Board + Vis tavle + + + Ctrl+B + Ctrl+B + + + Erase + Slett + + + Erase Content + Slett innhold + + + Preferences + Preferanser + + + Display Preferences + Vis preferanser + + + Library + Bibliotek + + + Show Library + Vis bibliotek + + + Ctrl+L + Ctrl+L + + + Show Desktop + Vis skrivebord + + + Show Computer Desktop + Vis datamaskinens skrivebord + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Større + + + Zoom In + Zoom inn + + + Ctrl++ + Ctrl++ + + + Smaller + Mindre + + + Zoom Out + Zoom ut + + + Ctrl+- + Ctrl+- + + + New Folder + Ny mappe + + + Create a New Folder + Opprett en ny mappe + + + New Document + Nytt dokument + + + Create a New Document + Opprett et nytt dokument + + + Import + Importer + + + Import a Document + Importer et dokument + + + Export + Eksporter + + + Export a Document + Eksporter et dokument + + + Open in Board + Åpne i tavle + + + Open Page in Board + Åpne side i tavle + + + Ctrl+O + Ctrl+O + + + Duplicate + Dupliser + + + Duplicate Selected Content + Dupliser valgt innhold + + + Delete + Slett + + + Delete Selected Content + Slett valgt innhold + + + Del + Slett + + + Add to Working Document + Legg til arbeidsdokument + + + Add Selected Content to Open Document + Legg valgt innhold til åpent dokument + + + Add + Legg til + + + Add Content to Document + Legg innhold til dokument + + + Rename + Gi nytt navn + + + Rename Content + Gi innhold nytt navn + + + Tools + Verktøy + + + Display Tools + Vis verktøy + + + Multi Screen + Multiskjerm + + + Wide Size (16/9) + Bred skjermstørrelse (16/9) + + + Use Document Wide Size (16/9) + Bruk dokument i bred skjermstørrelse (16/9) + + + Regular Size (4/3) + Vanlig skjermstørrelse (4/3) + + + Use Document Regular Size (4/3) + Bruk dokument i vanlig skjermstørrelse (4/3) + + + Custom Size + Tilpasset størrelse + + + Use Custom Document Size + Bruk dokument i tilpasset skjermstørrelse + + + Stop Loading + Stopp lasting + + + Stop Loading Web Page + Stopp lasting av nettsiden + + + Cut + Klipp + + + Copy + Kopier + + + Paste + Lim inn + + + Sleep + Standby + + + Put Presentation to Sleep + Sett presentasjonen i standby + + + Virtual Keyboard + Virtuelt tastatur + + + Display Virtual Keyboard + Vis virtuelt tastatur + + + Plain Light Background + Vanlig lys bakgrunn + + + Light + Lys + + + Grid Light Background + Bakgrunn med lys i rutemønster + + + Plain Dark Background + Vanlig mørk bakgrunn + + + Dark + Mørk + + + Grid Dark Background + Mørk bakgrunn i rutemønster + + + Podcast + Podcast + + + Record Presentation to Video + Ta opp presentasjon for video + + + Record + Ta opp + + + Start Screen Recording + Start opptak av skjerm + + + Erase Items + Slett enheter + + + Erase All Items + Slett alle enheter + + + Erase Annotations + Slett merknader + + + Erase All Annotations + Slett alle merknader + + + Clear Page + Slett side + + + Clear All Elements + Slett alle elementer + + + Pen + Penn + + + Annotate Document + Skriv merknader til dokument + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Slett merknad + + + Ctrl+E + Ctrl+E + + + Marker + Markør + + + Highlight + Merk + + + Ctrl+M + Ctrl+M + + + Selector + Velger + + + Select And Modify Objects + Velg og endre objekter + + + Ctrl+F + Ctrl+F + + + Hand + Hånd + + + Scroll Page + Rull side + + + Laser Pointer + Laserpeker + + + Virtual Laser Pointer + Virtuell laserpeker + + + Ctrl+G + Ctrl+G + + + Draw Lines + Tegn linjer + + + Ctrl+J + Ctrl+J + + + Text + Tekst + + + Write Text + Skriv tekst + + + Ctrl+K + Ctrl+K + + + Capture + Ta bilde + + + Capture Part of the Screen + Ta bilde av en del av skjermen + + + Add To Current Page + Legg til denne siden + + + Add Item To Current Page + Legg enhet til denne siden + + + Add To New Page + Legg til ny side + + + Add Item To New Page + Legg enhet til ny side + + + Add To Library + Legg til bibliotek + + + Add Item To Library + Legg enhet til bibliotek + + + Pages + Sider + + + Create a New Page + Opprett en ny side + + + New Page + Ny side + + + Duplicate Page + Dupliser side + + + Duplicate the Current Page + Dupliser denne siden + + + Import Page + Importer side + + + Import an External Page + Importer en ekstern side + + + Pause + Pause + + + Pause Podcast Recording + Sett podcastopptak på pause + + + Podcast Config + Podcastkonfigurering + + + Configure Podcast Recording + Konfigurer opptak for podcast + + + Flash Trap + Flash trap + + + Trap Flash Content + Trap flash-innhold + + + Web Trap + Web trap + + + Trap Web Content + Trap web-innhold + + + Custom Capture + Tilpass bildetakning + + + Window Capture + Ta bilde av vindu + + + Capture a Window + Ta bilde av et vindu + + + Embed Web Content + Legg inn web-innhold + + + Capture Embeddable Web Content + Ta bilde av web-innhold som kan legges inn + + + Show on Display + Vis på display + + + Show Main Screen on Display Screen + Vis hovedskjerm på display + + + Erase all Annotations + Slett alle merknader + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importer simulering av eduMedia + + + Check Update + Sjekk etter oppdateringer + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Avslutt OpenBoard + + + Hide OpenBoard + Skjul Åpne-Sankoré + + + Hide OpenBoard Application + Skjul Åpne-Sankoré-applikasjon + + + Play + Spill av + + + Interact with items + Samhandle med enheter + + + Erase Background + Slett bakgrunn + + + Remove the backgound + Fjern bakgrunn + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Autentisering nødvendig + + + Username: + Brukernavn: + + + Password: + Passord: + + + + ProxyDialog + + Proxy Authentication + Proxy-autentisering + + + Connect to Proxy + Koble til proxy + + + Username: + Brukernavn: + + + Password: + Passord: + + + Save username and password for future use + Lagre brukernavn og passord for fremtidig bruk + + + + QObject + + Element ID = + Element-ID = + + + Content is not supported in destination format. + Innhold er ikke støttet i mottaksformat. + + + Remove Page + Fjern side + + + Are you sure you want to remove 1 page from the selected document '%0'? + Er du sikker på at du vil fjerne side 1 fra det valgte dokumentet '%0'? + + + + UBApplication + + Page Size + Sidestørrelse + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Ny oppdatering tilgjengelig, vil du gå til nettsiden? + + + No update available + Ingen oppdatering tilgjengelig + + + Update available + Oppdatering tilgjengelig + + + Update + Oppdatering + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Nedlasting av innhold %1 mislyktes + + + Download finished + Nedlasting avsluttet + + + Unknown tool type %1 + Ukjent verktøytype %1 + + + Unknown content type %1 + Ukjent innholdstype %1 + + + Add Item + Legg til enhet + + + All Supported (%1) + Alle støttede (%1) + + + Delete page %1 from document + Slett side %1 fra dokument + + + Page %1 deleted + Side %1 slettet + + + Add file operation failed: file copying error + Tilføying av fil slo feil: filkopieringsfeil + + + Group + Grupper + + + Ungroup + Dele opp + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Farge + + + + UBBoardPaletteManager + + Error Adding Image to Library + Feil ved tilføying av bilde til bibliotek + + + CapturedImage + Tatt bilde + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Cache-egenskaper + + + Color: + Farge: + + + Shape: + Form: + + + Size: + Størrelse: + + + Close + Avslutt + + + + UBDesktopPalette + + Capture Part of the Screen + Ta bilde av en del av skjermen + + + Capture the Screen + Ta bilde av skjermen + + + Show the stylus palette + Vis stilpaletten + + + Show Board on Secondary Screen + Vis tavle på annen skjerm + + + Show Desktop on Secondary Screen + Vis skrivebord på annen skjerm + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Ny mappe + + + + Page %1 + Side %1 + + + Add Folder of Images + Legg til mappe med bilder + + + Add Images + Legg til bilder + + + Add Pages from File + Legg til sider fra fil + + + Duplicating Document %1 + Dupliserer dokument %1 + + + Document %1 copied + Dokument %1 kopiert + + + Remove Page + Fjern side + + + Remove Document + Fjern dokument + + + Are you sure you want to remove the document '%1'? + Er du sikker på at du vil fjerne dokumentet "%1"? + + + Empty Trash + Tøm søppel + + + Are you sure you want to empty trash? + Er du sikker på at du vil tømme søppelet? + + + Emptying trash + Tømmer søppel + + + Emptied trash + Søppel tømt + + + Remove Folder + Fjern mappe + + + Are you sure you want to remove the folder '%1' and all its content? + Er du sikker på at du vil fjerne mappen "%1" med alt innhold? + + + No document selected! + Intet dokument valgt! + + + Open Supported File + Åpne støttet fil + + + Importing file %1... + Importerer fil %1... + + + Failed to import file ... + Kunne ikke importere fil... + + + Import all Images from Folder + Importer alle bilder fra mappe + + + Delete + Tøm + + + Empty + Åpne dokument + + + Trash + Søppel + + + Open Document + Åpne dokument + + + Add all Images to Document + Legg alle bilder til dokument + + + All Images (%1) + Alle bilder (%1) + + + Selection does not contain any image files! + Utvalget inneholder ingen bildefiler! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Er du sikker på at du vil fjerne %n siden(e) fra det valgte dokumentet '%1'? + + + + + Folder does not contain any image files + Mappe inneholder ikke noen bildefiler + + + Untitled Documents + Dokumenter uten tittel + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + bilder + + + videos + videoer + + + objects + objekter + + + widgets + widgets + + + All supported files (*.%1) + Alle støttede filer (*.%1) + + + File %1 saved + Fil %1 lagret + + + Inserting page %1 of %2 + Setter inn side %1 av %2 + + + Import successful. + Importering gjennomført. + + + Import of file %1 successful. + Importering av fil %1 gjennomført. + + + Importing file %1 + Importerer fil %1 + + + + UBDocumentNavigator + + Page %0 + Side %0 + + + + UBDocumentReplaceDialog + + Accept + Godta + + + Cancel + Avbryt + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Søppel + + + %1 pages copied + + %1 sider kopiert + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 sider kopiert + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopierer side %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopier) + + + Copying page %1/%2 + Kopierer side %1/%2 + + + %1 pages copied + + %1 sider kopiert + + + + + + UBDownloadWidget + + Downloading files + Nedlasting av filer + + + Cancel + Avbryt + + + + UBDraggableThumbnail + + Page %0 + Side %0 + + + + UBDraggableThumbnailView + + Page %0 + Side %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Advarsler under eksport ble vist + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Eksporter til IWB + + + Export as IWB File + Eksporter som IWB-fil + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Export failed. + Eksport mislyktes. + + + + UBExportDocument + + Page + Side + + + Export as UBZ File + Eksporter som UBZ-fil + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Exporting %1 %2 of %3 + Eksporterer %1 %2 av %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Eksporter som PDF-fil + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Export to PDF + Eksporter til PDF + + + + UBExportPDF + + Export as PDF File + Eksporter som PDF-fil + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Exporting page %1 of %2 + Eksporterer side %1 av %2 + + + Export to PDF + Eksporter til PDF + + + + UBExportWeb + + Page + Side + + + Export as Web data + Eksporter som webdata + + + Exporting document... + Eksporterer dokument ... + + + Export successful. + Eksport gjennomført. + + + Export failed. + Eksportering mislyktes. + + + Export to Web Browser + Eksporter til nettleser + + + + UBFeatureProperties + + Add to page + Legg til side + + + Set as background + Bruk som bakgrunn + + + Add to library + Legg til bibliotek + + + Object informations + Objektopplysninger + + + + UBFeaturesActionBar + + Add to favorites + Legg til favoritter + + + Share + Del + + + Search + Søk + + + Delete + Slett + + + Back to folder + Tilbake til mappe + + + Remove from favorites + Fjern fra favoritter + + + Create new folder + Opprett ny mappe + + + Rescan file system + Skann filsystemet igjen + + + + UBFeaturesController + + ImportedImage + Importert bilde + + + Audios + Lydfiler + + + Movies + Filmer + + + Pictures + Bilder + + + Animations + Animasjoner + + + Interactivities + Interaktivitet + + + Applications + Applikasjoner + + + Shapes + Former + + + Favorites + Favoritter + + + Web search + Websøk + + + Trash + Søppel + + + + UBFeaturesNewFolderDialog + + Accept + Godta + + + Cancel + Avbryt + + + Enter a new folder name + Oppgi et nytt mappenavn + + + + UBFeaturesProgressInfo + + Loading + Laster + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på utvidet skjerm + + + + UBGraphicsItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på utvidet skjerm + + + Go to Content Source + Gå til kildeinnhold + + + Set as background + Bruk som bakgrunn + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Skriv tekst her> + + + + UBGraphicsTextItemDelegate + + Text Color + Tekstfarge + + + Editable + Redigerbar + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Laster ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Frosset + + + Transform as Tool + Transformer som verktøy + + + + UBImportCFF + + Common File Format ( + Vanlig filformat ( + + + Importing file %1... + Importerer fil %1... + + + Import of file %1 failed. + Importering av fil %1 mislyktes. + + + Import successful. + Importering gjennomført. + + + Import failed. + Importering mislyktes. + + + + UBImportDocument + + Importing file %1... + Importerer fil %1... + + + Import successful. + Importering gjennomført. + + + Import of file %1 failed. + Importering av fil %1 mislyktes. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Bildeformat ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portabelt dokumentformat (*.pdf) + + + PDF import failed. + PDF-importering mislyktes. + + + Importing page %1 of %2 + Importerer side %1 av %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Feil under publisering av video til intranett (%1) + + + Publishing to Intranet in progress %1 % + Publisering til Intranett pågår %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publiser + + + + UBKeyboardPalette + + Enter + Translation of the key on the keyboard - if it is "Enter the numer X" - It should be "Tast inn nummeret X" + Enter + + + + UBMainWindow + + Yes + Ja + + + No + Nei + + + Ok + Ok + + + + UBMessagesDialog + + Close + Lukk + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Tast inn brukernavn og passord for "%1" ved %2</qt> + + + Failed to log to Proxy + Kunne ikke logge på proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL-feil: %1 %2 Vil du ignorere disse feilene for denne verten? + + + Yes + Ja + + + No + Nei + + + + UBOpenSankoreImporterWidget + + Cancel + Avbryt + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopier) + + + Document Repository Loss + Tap av dokumentdatabase + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Engelsk + + + Russian + Russisk + + + German + Tysk + + + French + Fransk + + + Swiss French + Sveitsisk-fransk + + + + UBPodcastController + + Failed to start encoder ... + Kunne ikke starte koder ... + + + No Podcast encoder available ... + Ingen podcast-koder tilgjengelig ... + + + Part %1 + Del %1 + + + on your desktop ... + på ditt skrivebord ... + + + in folder %1 + i mappe %1 + + + Podcast created %1 + Podcast opprettet %1 + + + Podcast recording error (%1) + Opptaksfeil i podcast (%1) + + + Default Audio Input + Feil i audios innverdi + + + No Audio Recording + Intet audioopptak + + + Small + Liten + + + Medium + Middels + + + Full + Full + + + Publish to Intranet + Publiser til Intranett + + + Publish to Youtube + Publiser til YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + versjon: + + + Marker is pressure sensitive + Markøren er trykksensitiv + + + + UBProxyLoginDlg + + Proxy Login + Innlogging proxy + + + Username: + Brukernavn: + + + Password: + Passord: + + + + UBPublicationDlg + + Publish document on the web + Publiser dokument på webben + + + Title: + Tittel: + + + Description: + Beskrivelse: + + + Publish + Publiser + + + + UBSettings + + My Movies + Mine filmer + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Genererer forhåndsvisning med miniatyrbilder ... + + + %1 thumbnails generated ... + %1 miniatyrbilder generert ... + + + + UBThumbnailTextItem + + Page %0 + Side %0 + + + + UBToolsManager + + Mask + Skjul + + + Ruler + Linjal + + + Compass + Kompass + + + Protractor + Gradeskive + + + Triangle + Triangel + + + Magnifier + Forstørrelsesglass + + + Cache + Skjul + + + Axes + + + + + UBTrapFlashController + + Whole page + Hel side + + + Web + Web + + + + UBUpdateDlg + + Document updater + Oppdatering av dokument + + + files require an update. + filer trenger en oppdatering. + + + Backup path: + Filbane sikkerhetskopi: + + + Browse + Bla gjennom + + + Update + Oppdatering + + + Select a backup folder + Velg mappe for sikkerhetskopi + + + Files update successful! +Please reboot the application to access the updated documents. + Filene ble oppdatert! Vennligst start applikasjonen på nytt for å få tilgang til de oppdaterte dokumentene. + + + An error occured during the update. The files have not been affected. + En feil oppsto under oppdateringen. Filene har ikke blitt berørt av dette. + + + Files update results + Resultater av filoppdateringen + + + Updating file + Oppdaterer fil + + + Please wait the import process will start soon... + Vennligst vent, importeringsprosessen vil snart begynne... + + + Remind me later + Minn meg på det senere + + + + UBWebPluginWidget + + Loading... + Laster... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 oppringt (metode=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube-autentisering mislyktes. + + + Error while uploading video to YouTube (%1) + Feil ved opplasting av video til YouTube (%1) + + + Upload to YouTube in progress %1 % + Opplasting til YouTube pågår %1 % + + + + UBYouTubePublishingDialog + + Upload + Last opp + + + Autos & Vehicles + Biler og kjøretøy + + + Music + Musikk + + + Pets & Animals + Kjæledyr og andre dyr + + + Sports + Sport + + + Travel & Events + Reiser og opplevelser + + + Gaming + Spill + + + Comedy + Komedie + + + People & Blogs + Folk og blogger + + + News & Politics + Nyheter og politikk + + + Entertainment + Underholdning + + + Education + Utdanning + + + Howto & Style + Gjør-det-selv og interiør + + + Nonprofits & Activism + Veldedighet og engasjement + + + Science & Technology + Vitenskap og teknologi + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Slett + + + + WBDownloadItem + + Save File + Lagre fil + + + Download canceled: %1 + Nedlasting avbrutt: %1 + + + Error opening saved file: %1 + Feil ved åpning av lagret fil: %1 + + + Error saving: %1 + Feil ved lagring: %1 + + + Network Error: %1 + Nettverksfeil: %1 + + + seconds + sekunder + + + minutes + minutter + + + - %4 %5 remaining + - %4 %5 gjenværende + + + %1 of %2 (%3/sec) %4 + %1 av %2 (%3/s) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 av %2 - Stopppet + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 nedlasting + + + %1 Downloads + always >= 2 + %1 nedlastinger + + + + WBHistoryModel + + Title + Tittel + + + Address + Adresse + + + + WBHistoryTreeModel + + Earlier Today + Tidligere i dag + + + %1 items + %1 enheter + + + + WBSearchLineEdit + + Search + Søk + + + + WBTabBar + + New &Tab + Ny og &fane + + + Clone Tab + Klone-fane + + + &Close Tab + &avslutt fane + + + Close &Other Tabs + Avslutt &andre faner + + + Reload Tab + Last fane på nytt + + + Reload All Tabs + Last alle faner på nytt + + + + WBTabWidget + + Recently Closed Tabs + Nylig avsluttede faner + + + (Untitled) + (Uten tittel) + + + + WBToolbarSearch + + No Recent Searches + Ingen nylige søk + + + Recent Searches + Nylige søk + + + Clear Recent Searches + Slett nylige søk + + + Search + Søk + + + + WBWebPage + + Download + Last ned + + + Add to Current Document + Legg til aktuelt dokument + + + PDF + PDF + + + Error loading page: %1 + Feil ved lasting av side: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Åpne i ny fane + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publiser podcast til YouTube + + + Title + Tittel + + + Description + Beskrivelse + + + Keywords + Stikkord + + + Category + Kategori + + + YouTube Username + YouTube brukernavn + + + YouTube Password + YouTube passord + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + Med lys bakgrunn + + + On Dark Background + Med mørk bakgrunn + + + Opacity + Ugjennomsiktig + + + Line Width + Linjebredde + + + Medium + Middels + + + Strong + Sterk + + + Fine + Tynn + + + Pen is Pressure Sensitive + Pennen er trykksensitiv + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Tittel + + + E-mail + E-post + + + Author + Forfatter + + + Description + Beskrivelse + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Tittel + + + E-mail + E-post + + + Author + Forfatter + + + Description + Beskrivelse + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Preferanser + + + version : … + versjon: ... + + + Default Settings + Standardinnstillinger + + + Close + Avslutt + + + Display + Display + + + Internet + Internett + + + Show Page with External Browser + Vis side med ekstern nettleser + + + Home Page: + Hjemmeside: + + + Virtual Keyboard + Virtuelt tastatur + + + Keyboard button size: + Tastestørrelse tastatur: + + + Toolbar + Verktøylinje + + + Positioned at the Top (recommended for tablets) + Plassert på toppen (anbefalt for minitavler) + + + Positioned at the Bottom (recommended for white boards) + Plassert nederst (anbefalt for krittavler) + + + Display Text Under Button + Vis tekst under tast + + + Stylus Palette + Stilpalett + + + Horizontal + Horisontal + + + Vertical + Vertikal + + + Pen + Penn + + + Marker + Markør + + + About + Om + + + Software Update + Oppdatering av programvare + + + Check software update at launch + Sjekk oppdatering av programvare ved oppstart + + + Licences + Lisenser + + + Network + Nettverk + + + Show internal web page content on secondary screen or projector + Vis innhold fra internt nettsted på annen skjerm eller projektor + + + Multi display + Multidisplay + + + Swap control display and view display + I have translated this as swap between cd and vd + Bytt mellom kontrolldisplay og se display + + + Mode + Modus + + + Mode to start in: + Modus å starte i: + + + Board + Tavle + + + Desktop + Skrivebord + + + Proxy User: + Proxy-bruker + + + Pass: + Pass: + + + Credits + Translates as "thanks to" + Takk til + + + On Dark Background + Med mørk bakgrunn + + + Opacity + Ugjennomsiktig + + + On Light Background + Med lys bakgrunn + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Ta flash + + + Select a flash to trap + Velg flash som skal tas + + + about:blank + om:blank + + + Application name + Applikasjonsnavn + + + Create Application + Opprett applikasjon + + + diff --git a/resources/i18n/OpenBoard_nl.ts b/resources/i18n/OpenBoard_nl.ts new file mode 100644 index 0000000..d3e1585 --- /dev/null +++ b/resources/i18n/OpenBoard_nl.ts @@ -0,0 +1,2918 @@ + + + + + BlackoutWidget + + Click to Return to Application + Klik om terug te keren naar de toepassing + + + + DownloadDialog + + Downloads + Downloads + + + Clean Up + Opruimen + + + 0 Items + 0 items + + + + DownloadItem + + Form + Formulier + + + Filename + Bestandsnaam + + + Try Again + Probeer opnieuw + + + Stop + Stoppen + + + Open + Openen + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Podcast via YouTube publiceren + + + Title + Titel + + + Description + Beschrijving + + + Author + Auteur + + + + MainWindow + + Board + Bord + + + Web + Internet + + + Documents + Documenten + + + Stylus + Pen + + + Ctrl+T + Ctrl+T + + + Backgrounds + Achtergronden + + + Change Background + Achtergrond wijzigen + + + Undo + Ongedaan maken + + + Ctrl+Z + Ctrl+Z + + + Redo + Herhalen + + + Ctrl+Y + Ctrl+Y + + + Previous + Vorige + + + Previous Page + Vorige Pagina + + + PgUp + Naar boven + + + Next + Volgende + + + Next Page + Volgende pagina + + + PgDown + Naar beneden + + + Manage Documents + Document beheren + + + Ctrl+D + Ctrl+D + + + Web Browsing + Web surfen + + + Ctrl+W + Ctrl+W + + + Line + Lijn + + + Small Line + Dunne lijn + + + Medium Line + Medium lijn + + + Large Line + Dikke lijn + + + Quit + Verlaten + + + Eraser + Wisser + + + Smalle Eraser + Kleine wisser + + + Medium Eraser + Middelgrote wisser + + + Large Eraser + Brede wisser + + + Color + Kleur + + + Back + Terug + + + Left + Links + + + Forward + Vooruit + + + Right + Rechts + + + Reload + Opnieuw laden + + + Reload Current Page + Huidige pagina opnieuw laden + + + Home + Homepage + + + Load Home Page + Homepage laden + + + Bookmarks + Favorieten + + + Show Bookmarks + Favorieten weergeven + + + Bookmark + Favoriet + + + Add Bookmark + Favoriet toevoegen + + + Display Board + Bord weergeven + + + Ctrl+B + Ctrl+B + + + Erase + Wissen + + + Erase Content + Inhoud wissen + + + Preferences + Voorkeuren + + + Display Preferences + Voorkeuren weergeven + + + Library + Bibliotheek + + + Show Library + Bibliotheek weergeven + + + Ctrl+L + Ctrl+L + + + Show Desktop + Bureaublad weergeven + + + Show Computer Desktop + Computer desktop weergeven + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Vergroten + + + Zoom In + Inzoomen + + + Ctrl++ + Ctrl++ + + + Smaller + Verkleinen + + + Zoom Out + Uitzoomen + + + Ctrl+- + Ctrl+ + + + New Folder + Nieuwe map + + + Create a New Folder + Nieuwe map aanmaken + + + New Document + Nieuw document + + + Create a New Document + Nieuw document maken + + + Import + Importeren + + + Import a Document + Een document importeren + + + Export + Exporteren + + + Export a Document + Een document exporteren + + + Open in Board + In bord openen + + + Open Page in Board + Pagina in bord openen + + + Ctrl+O + Ctrl+O + + + Duplicate + Dupliceren + + + Duplicate Selected Content + De geselecteerde inhoud dupliceren + + + Delete + Verwijderen + + + Delete Selected Content + De geselecteerde inhoud verwijderen + + + Del + Verwijderen + + + Add to Working Document + Aan werkdocument toevoegen + + + Add Selected Content to Open Document + De geselecteerde tekst aan het Open Document toevoegen + + + Add + Toevoegen + + + Add Content to Document + Inhoud aan document toevoegen + + + Rename + Naam wijzigen + + + Rename Content + Tekst naam wijzigen + + + Tools + Tools + + + Display Tools + Tools weergeven + + + Multi Screen + Multi Scherm + + + Wide Size (16/9) + Brede schermafmeting(16/9) + + + Use Document Wide Size (16/9) + Document breedschermafmeting gebruiken(16/9) + + + Regular Size (4/3) + Standaard schermafmeting(4/3) + + + Use Document Regular Size (4/3) + Document op standaard schermafmeting gebruiken(4/3) + + + Custom Size + Aangepaste afmetingen + + + Use Custom Document Size + Gebruik aangepaste Documentafmeting + + + Stop Loading + Stop laden + + + Stop Loading Web Page + Stop laden van de webpagina + + + Cut + Knippen + + + Copy + Kopiëren + + + Paste + Plakken + + + Sleep + Slaapstand + + + Put Presentation to Sleep + De presentatie in de slaapstand zetten + + + Virtual Keyboard + Virtuele toetsenboord + + + Display Virtual Keyboard + Virtuele toetsenboord weergeven + + + Plain Light Background + Lichte neutrale achtergrond + + + Light + licht + + + Grid Light Background + Licht rooster achtergrond + + + Plain Dark Background + Neutraal donkere achtergrond + + + Dark + Donker + + + Grid Dark Background + Donker rooster achtergrond + + + Podcast + Podcast + + + Record Presentation to Video + Neem Presentatie op als Video + + + Record + Opnemen + + + Start Screen Recording + Een schermopname starten + + + Erase Items + Items wissen + + + Erase All Items + Alle items wissen + + + Erase Annotations + Aantekeningen wissen + + + Erase All Annotations + Alle aantekeningen wissen + + + Clear Page + Pagina wissen + + + Clear All Elements + Alle onderdelen wissen + + + Pen + Pen + + + Annotate Document + Aantekening op document toevoegen + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Aantekening wissen + + + Ctrl+E + Ctrl+E + + + Marker + Markeerstift + + + Highlight + Markeren + + + Ctrl+M + Ctrl+M + + + Selector + Keuzeschakelaar + + + Select And Modify Objects + Objecten selecteren en wijzigingen + + + Ctrl+F + Ctrl+F + + + Hand + Hand + + + Scroll Page + Pagina scrollen + + + Laser Pointer + Laserpointer + + + Virtual Laser Pointer + Virtuele laserpointer + + + Ctrl+G + Ctrl+G + + + Draw Lines + Lijnen tekenen + + + Ctrl+J + CTRL+J + + + Text + Tekst + + + Write Text + Tekst schrijven + + + Ctrl+K + Ctrl+K + + + Capture + Opname + + + Capture Part of the Screen + Deel van scherm opnemen + + + Add To Current Page + Aan huidige pagina toevoegen + + + Add Item To Current Page + Item aan huidige pagina toevoegen + + + Add To New Page + Aan nieuwe pagina toevoegen + + + Add Item To New Page + Item aan nieuwe pagina toevoegen + + + Add To Library + Aan bibliotheek toevoegen + + + Add Item To Library + Item aan bibliotheek toevoegen + + + Pages + Pagina's + + + Create a New Page + Een nieuwe pagina maken + + + New Page + Nieuwe pagina + + + Duplicate Page + Pagina Dupliceren + + + Duplicate the Current Page + Huidige pagina Dupliceren + + + Import Page + Pagina importeren + + + Import an External Page + Een externe pagina importeren + + + Pause + Pauze + + + Pause Podcast Recording + Pauze Podcast opname + + + Podcast Config + Podcast configuratie + + + Configure Podcast Recording + Podcast opname configureren + + + Flash Trap + Flash Trap + + + Trap Flash Content + Trap flash inhoud + + + Web Trap + Internet bescherming + + + Trap Web Content + Webinhoud bescherming + + + Custom Capture + Opname instellen + + + Window Capture + Vensteropname + + + Capture a Window + Venster opnemen + + + Embed Web Content + Internetinhoud insluiten + + + Capture Embeddable Web Content + Opnemen insluitbare webinhoud + + + Show on Display + Op presentatiescherm weergeven + + + Show Main Screen on Display Screen + Het hoofdscherm op presentatiescherm weergeven + + + Erase all Annotations + Alle aantekeningen wissen + + + eduMedia + eduMedia + + + Import eduMedia simulation + eduMedia simulatie importeren + + + Check Update + Update controleren + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Verlaat OpenBoard + + + Hide OpenBoard + Verberg OpenBoard + + + Hide OpenBoard Application + Verberg OpenBoard Toepassing + + + Play + Speel + + + Interact with items + Aan de slag met onderdelen + + + Erase Background + Achtergrond wissen + + + Remove the backgound + Achtyergrond verwijderen + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Iinloggen verplicht + + + Username: + Gebruiksersnaam: + + + Password: + Wachtwoord: + + + + ProxyDialog + + Proxy Authentication + Proxy identificatie + + + Connect to Proxy + Met proxy verbinden + + + Username: + Gebruikersnaam: + + + Password: + Wachtwoord: + + + Save username and password for future use + Gebruikersnaam en wachtwoord onthouden + + + + QObject + + Remove Page + Pagina verwijderen + + + Element ID = + + + + Content is not supported in destination format. + + + + Are you sure you want to remove 1 page from the selected document '%0'? + + + + + UBApplication + + Page Size + Pagina Formaat + + + Podcast + Podcast + + + + UBApplicationController + + Web + Internet + + + New update available, would you go to the web page ? + Nieuwe update beschikbaar, wilt u naar de webpagina? + + + No update available + Geen update beschikbaar + + + Update available + update beschikbaar + + + Update + Update + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Downloaden inhoud %1 mislukt + + + Download finished + Downloaden voltooid + + + Unknown tool type %1 + Onbekend tool type %1 + + + Unknown content type %1 + Onbekend inhoud type %1 + + + Add Item + Item toevoegen + + + All Supported (%1) + Alle ondersteunden (%1) + + + Group + + + + Ungroup + + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Page %1 deleted + + + + Add file operation failed: file copying error + + + + Color + Kleur + + + + UBBoardPaletteManager + + Error Adding Image to Library + Error foto aan bibliotheek toevoegen + + + CapturedImage + Gegrepen afbeelding + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Cache Eigenschappen + + + Color: + Kleur: + + + Shape: + Vorm: + + + Size: + Formaat: + + + Close + Sluiten + + + + UBDesktopPalette + + Capture Part of the Screen + Afdruk deel van scherm + + + Capture the Screen + Scherm afdrukken + + + Show the stylus palette + Pen palet weergeven + + + Show Board on Secondary Screen + Board op bijscherm + + + Show Desktop on Secondary Screen + Desktop op bijscherm weergeven + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Nieuwe map + + + Page %1 + Pagina %1 + + + Add Folder of Images + Beeldmap toevoegen + + + Add Images + Beelden toevoegen + + + Add Pages from File + Pagina's van bestand toevoegen + + + Duplicating Document %1 + Document %1 dupliceren + + + Document %1 copied + Document %1 gekopieerd + + + Remove Page + Pagina verwijderen + + + Remove Document + Document verwijderen + + + Are you sure you want to remove the document '%1'? + Weet u zeker dat u document "%1" wilt verwijderen? + + + Empty Trash + Prullenbak legen + + + Are you sure you want to empty trash? + Weet u zeker dat u de prullenbak wilt legen? + + + Emptying trash + Prullenbak wordt geleegd + + + Emptied trash + Prullenbak is leeg + + + Remove Folder + Map verwijderen + + + Are you sure you want to remove the folder '%1' and all its content? + Weet u zeker dat u de map "%1" met inhoud wilt verwijderen? + + + No document selected! + Geen document geselecteerd! + + + Open Supported File + Geopend ondersteund bestand + + + Importing file %1... + File %1 wordt geïmporteerd... + + + Failed to import file ... + Bestand importeren mislukt... + + + Import all Images from Folder + Alle beelden uit map importeren + + + Delete + Verwijderen + + + Empty + Leeg + + + Trash + Prullenbak + + + Open Document + Document openen + + + Add all Images to Document + Alle beelden aan Document toevoegen + + + All Images (%1) + Alle beelden (%1) + + + Selection does not contain any image files! + De selectie bevat geen beeldbestand! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Ben je zeker dat je %n pagina van geselecteerde document '%1' wilt verwijderen? + Ben je zeker dat je %n pagina(s) van geselecteerde document '%1' wilt verwijderen? + + + + Untitled Documents + Onbenoemde Documenten + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Folder does not contain any image files + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + beelden + + + videos + video's + + + objects + voorwerpen + + + widgets + widgets + + + All supported files (*.%1) + Alle ondersteunde bestanden (*.%1) + + + File %1 saved + Bestand %1 opgeslagen + + + Import successful. + Import gelukt. + + + Inserting page %1 of %2 + + + + Importing file %1 + + + + Import of file %1 successful. + + + + + UBDocumentNavigator + + Page %0 + Pagina %0 + + + + UBDocumentPublisher + + Export failed. + Export mislukt. + + + + UBDocumentReplaceDialog + + Cancel + Annuleren + + + Accept + + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Prullenbak + + + %1 pages copied + + %1 pagina gekopieerd + %1 pagina's gekopieerd + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 pagina gekopieerd + %1 pagina's gekopieerd + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopie van pagina %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopie) + + + Copying page %1/%2 + Kopie van pagina %1/%2 + + + %1 pages copied + + %1 pagina gekopieerd + %1 pagina's gekopieerd + + + + + UBDownloadWidget + + Downloading files + Bestanden downloaden + + + Cancel + Annuleren + + + + UBDraggableThumbnail + + Page %0 + Pagina %0 + + + + UBDraggableThumbnailView + + Page %0 + Pagina %0 + + + + UBExportAdaptor + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Warnings during export was appeared + + + + + UBExportCFF + + Export to IWB + Exporteer naar IWB + + + Export as IWB File + Exporteer als IWB bestand + + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Export failed. + Export mislukt. + + + + UBExportDocument + + Page + Pagina + + + Export as UBZ File + Exporteren als UBZ bestand + + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Exporting %1 %2 of %3 + %1 %2 van %3 geëxporteerd + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Export failed. + Export mislukt. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exporteren als PDF bestand + + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Export to PDF + Exporteren naar PDF bestand + + + + UBExportPDF + + Export as PDF File + Exporteren als PDF bestand + + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Exporting page %1 of %2 + %1 van %2 geëxporteerd + + + Export to PDF + Exporteren naar PDF bestand + + + + UBExportWeb + + Page + Pagina + + + Export as Web data + Exporteren als Webdata + + + Exporting document... + Document wordt geëxporteerd... + + + Export successful. + Export gelukt. + + + Export failed. + Export mislukt. + + + Export to Web Browser + Exporteren naar Web Browser + + + + UBFeatureProperties + + Add to page + Aan pagina toevoegen + + + Set as background + Als achtergrond gebruiken + + + Add to library + Aan bibliotheek toevoegen + + + Object informations + Object informatie + + + + UBFeaturesActionBar + + Add to favorites + Aan favorieten toevoegen + + + Share + Delen + + + Search + Zoeken + + + Delete + Verwijderen + + + Back to folder + Terug naar map + + + Remove from favorites + Uit favorieten verwijderen + + + Create new folder + Nieuwe map maken + + + Rescan file system + Bestand systeem opnieuw scannen + + + + UBFeaturesController + + ImportedImage + Geïmporteerd beeld + + + Audios + Audio's + + + Movies + Films + + + Pictures + Foto's + + + Animations + Animaties + + + Interactivities + Interactiviteiten + + + Applications + Toepassingen + + + Shapes + Vormen + + + Trash + Prullenbak + + + Favorites + + + + Web search + + + + + UBFeaturesNewFolderDialog + + Cancel + Annuleren + + + Accept + + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Vergrendeld + + + Visible on Extended Screen + Weergeven op Verbreed scherm + + + + UBGraphicsItemDelegate + + Locked + Vergrendeld + + + Visible on Extended Screen + Weergeven op Verbreed scherm + + + Go to Content Source + Naar inhoudsbron + + + Set as background + Als achtergrond gebruiken + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Schrijf hier uw tekst> + + + + UBGraphicsTextItemDelegate + + Text Color + Tekstkleur + + + Editable + Bewerkbaar + + + + UBGraphicsW3CWidgetItem + + Web + + + + + UBGraphicsWidgetItem + + Loading ... + Wordt geladen... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Bevroren + + + Transform as Tool + Als tool gebruiken + + + + UBImportCFF + + Common File Format ( + Standaard bestandformaat ( + + + Importing file %1... + Importering van bestand %1... + + + Import of file %1 failed. + Importering van bestand %1 is mislukt. + + + Import successful. + Import gelukt. + + + Import failed. + Import mislukt. + + + + UBImportDocument + + Importing file %1... + Bestand %1 wordt geïmporteerd... + + + Import successful. + Import gelukt. + + + Import of file %1 failed. + Import van bestand %1 mislukt. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Beeldformaat ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Draagbaar Document Formaat (*.pdf) + + + PDF import failed. + PDF import mislukt. + + + Importing page %1 of %2 + Importering van pagina %1 van %2 gelukt + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Fout opgetreden tijdens video uploading op internet (%1) + + + Publishing to Intranet in progress %1 % + Wordt op Intranet gepubliceerd %1% + + + + UBIntranetPodcastPublishingDialog + + Publish + Publiceer + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Ja + + + No + Nee + + + Ok + OK + + + + UBMessagesDialog + + Close + Sluiten + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + >qt>Gebrukersnaam en wachtwoord invoeren voor "%1" op %2</qt> + + + Failed to log to Proxy + Proxy inloggen mislukt + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL errors: %1 %2 Wilt u deze foutmeldingen negeren voor deze host? + + + Yes + Ja + + + No + Nee + + + + UBOpenSankoreImporterWidget + + Cancel + Annuleren + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (copy) + + + Document Repository Loss + Documentopslag verloren + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Engels + + + Russian + Russisch + + + German + Duits + + + French + Frans + + + Swiss French + Zwitsers Frans + + + + UBPodcastController + + Failed to start encoder ... + Opstarten encoder mislukt... + + + No Podcast encoder available ... + Geen Podcast encoder beschikbaar... + + + Part %1 + Deel%1 + + + on your desktop ... + op uw bureaublad... + + + in folder %1 + in map %1 + + + Podcast created %1 + Podcast gecreëerd %1 + + + Podcast recording error (%1) + Podcast opname foutmelding (%1) + + + Default Audio Input + Standaard audio ingang + + + No Audio Recording + Geen audio-opname + + + Small + Klein + + + Medium + Gemiddeld + + + Full + Geheel + + + Publish to Intranet + Op internet publiceren + + + Publish to Youtube + Op Youtube publiceren + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + versie: + + + Marker is pressure sensitive + Markeerstift is druk gevoelig + + + + UBProxyLoginDlg + + Proxy Login + Proxy Login + + + Username: + Gebruikersnaam: + + + Password: + Wachtwoord: + + + + UBPublicationDlg + + Publish document on the web + Document op internet publiceren + + + Title: + Titel: + + + Description: + Beschrijving: + + + Publish + Publiceren + + + + UBSettings + + My Movies + Mijn films + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Miniatuur bekijken... + + + %1 thumbnails generated ... + %1 miniaturen opgeladen... + + + + UBThumbnailTextItem + + Page %0 + Pagina %0 + + + + UBToolsManager + + Mask + Masker + + + Ruler + Liniaal + + + Compass + Kompas + + + Protractor + Gradenboog + + + Triangle + Driehoek + + + Magnifier + Vergrootglas + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + Hele pagina + + + Web + Web + + + + UBUpdateDlg + + Document updater + Document updater + + + files require an update. + Bestanden moeten geüpdate worden. + + + Backup path: + Backup pad: + + + Browse + Browse + + + Update + Update + + + Select a backup folder + Een backup map selecteren + + + Files update successful! +Please reboot the application to access the updated documents. + Mappen update gelukt! De applicatie opnieuw starten voor toegang tot de geüpdate documenten. + + + An error occured during the update. The files have not been affected. + Er is een fout opgetreden tijden de update.De mappen zijnniet beschadigd. + + + Files update results + Mappen update resultaten + + + Updating file + Bestand updaten + + + Please wait the import process will start soon... + Geduld, import kan ieder moment starten... + + + Remind me later + + + + + UBWebPluginWidget + + Loading... + Wordt geladen... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 opgeroepen (methode=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube identificatie mislukt. + + + Error while uploading video to YouTube (%1) + Fout opgetreden tijdens de upload van een You Tube video (%1) + + + Upload to YouTube in progress %1 % + Wordt naar You Tube geüpload %1% + + + + UBYouTubePublishingDialog + + Upload + Upload + + + Autos & Vehicles + Auto's & Voertuigen + + + Music + Muziek + + + Pets & Animals + Huisdieren & Dieren + + + Sports + Sport + + + Travel & Events + Reizen & Evenementen + + + Gaming + Gaming + + + Comedy + Comedie + + + People & Blogs + Mensen & Blogs + + + News & Politics + Nieuws & Politiek + + + Entertainment + Entertainment + + + Education + Onderwijs + + + Howto & Style + Tips & Stijl + + + Nonprofits & Activism + Nonprofit organisaties & Actievoering + + + Science & Technology + Wetenschap & Technologie + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Ruimen + + + + WBDownloadItem + + Save File + Bestand opslaan + + + Download canceled: %1 + Download geannuleerd: %1 + + + Error opening saved file: %1 + Error opening geregistreerd bestand: %1 + + + Error saving: %1 + Error registratie:%1 + + + Network Error: %1 + Netwerk Error: %1 + + + seconds + seconden + + + minutes + minuten + + + - %4 %5 remaining + - %4 %5 te gaan + + + %1 of %2 (%3/sec) %4 + %1 van %2 (%3/sec) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 van %2 - gestopt + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 download + + + %1 Downloads + always >= 2 + %1 Downloads + + + + WBHistoryModel + + Title + Titel + + + Address + Adres + + + + WBHistoryTreeModel + + Earlier Today + Eerder deze dag + + + %1 items + %1 items + + + + WBSearchLineEdit + + Search + Zoeken + + + + WBTabBar + + New &Tab + Nieuw&Tabblad + + + Clone Tab + Tabblad Klonen + + + &Close Tab + &Tabblad Sluiten + + + Close &Other Tabs + Sluiten&Andere Tabbladen + + + Reload Tab + Tabblad weer opladen + + + Reload All Tabs + Alle Tabbladen weer opladen + + + + WBTabWidget + + Recently Closed Tabs + Recent gesloten Tabbladen + + + (Untitled) + (geen titel) + + + + WBToolbarSearch + + Search + Zoeken + + + No Recent Searches + Geen recente zoekopdrachten + + + Recent Searches + Recente zoekopdrachten + + + Clear Recent Searches + Recente zoekopdrachten wissen + + + + WBWebPage + + Download + Download + + + Add to Current Document + Toevoegen aan Huidig Document + + + PDF + PDF + + + Error loading page: %1 + Error pagina opladen: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + In een Nieuw Tabblad openen + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Podcast via YouTube publiceren + + + Title + Titel + + + Description + Beschrijving + + + Keywords + Trefwoorden + + + Category + Categorie + + + YouTube Username + YouTube Gebruikersnaam + + + YouTube Password + YouTube Wachtwoord + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Door op 'Upload,'te klikken bevestigt u dat u over alle inhoudsrechten beschikt of dat u de toelating hebt gekregen van de eigenaar om de inhoud publiek te maken op YouTube, en dat u anderzijds akkoord gaat met de YouTube Terms of Service zoals beschreven op </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + Sankoré openen + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + Op een Lichte Achtergrond + + + On Dark Background + Op een Donkere Achtergrond + + + Opacity + lichtondoorlatendheid + + + Line Width + Lijndikte + + + Medium + Medium + + + Strong + Dik + + + Fine + Dun + + + Pen is Pressure Sensitive + Pen is drukgevoelig + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialoog + + + Title + Titel + + + E-mail + E-mail + + + Author + Auteur + + + Description + Beschrijving + + + + documentPublishingDialog + + Dialog + Dialoog + + + Title + Titel + + + E-mail + E-mail + + + Author + Auteur + + + Description + Beschrijving + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Voorkeuren + + + version : … + versie : .... + + + Default Settings + Standaardinstellingen + + + Close + Sluiten + + + Display + Display + + + Internet + Internet + + + Show Page with External Browser + Pagina weergeven met externe Browser + + + Home Page: + Homepage: + + + Virtual Keyboard + Virtueel Toetsenbord + + + Keyboard button size: + Formaat knoppen van toetsenbord: + + + Toolbar + Werkbalk + + + Positioned at the Top (recommended for tablets) + Bovenaan geplaatst (aanbevolen voor tablets) + + + Positioned at the Bottom (recommended for white boards) + Onderaan geplaatst (aanbevolen voor schrijfborden) + + + Display Text Under Button + Tekst onder knop weergeven + + + Stylus Palette + Pen palet + + + Horizontal + Horizontaal + + + Vertical + Verticaal + + + Pen + Pen + + + Marker + Markeerstift + + + About + Over + + + Software Update + Software update + + + Check software update at launch + Software update controleren bij opstarten + + + Licences + Licenties + + + Network + Netwerk + + + Show internal web page content on secondary screen or projector + Toon interne webpaginainhoud op tweede scherm of projector + + + Multi display + Multi display + + + Swap control display and view display + Wissel tussen control display en view display + + + Mode + Manier + + + Mode to start in: + Manier van starten: + + + Board + Bord + + + Desktop + Bureaublad + + + Proxy User: + Proxy Gebruiker: + + + Pass: + Wachtwoord: + + + Credits + Credits + + + On Dark Background + Op een Donkere Achtergrond + + + Opacity + lichtondoorlatendheid + + + On Light Background + Op een Lichte Achtergrond + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Trap flash + + + Select a flash to trap + Te vangen licht selecteren + + + about:blank + about:blank + + + Application name + Applicatie naam + + + Create Application + Applicatie maken + + + diff --git a/resources/i18n/OpenBoard_pl.ts b/resources/i18n/OpenBoard_pl.ts new file mode 100644 index 0000000..5802b1b --- /dev/null +++ b/resources/i18n/OpenBoard_pl.ts @@ -0,0 +1,2943 @@ + + + + + BlackoutWidget + + Click to Return to Application + Kliknij, aby wrócić do aplikacji + + + + DownloadDialog + + Downloads + Pobrane + + + Clean Up + Wyczyść + + + 0 Items + 0 elementów + + + + DownloadItem + + Form + Formularz + + + Filename + Nazwa pliku + + + Try Again + Spróbuj ponownie + + + Stop + Zatrzymaj + + + Open + Otwórz + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publikuj podkast w serwisie Youtube + + + Title + Tytuł + + + Description + Opis + + + Author + Autor + + + + MainWindow + + Board + Tablica + + + Web + Sieć Web + + + Documents + Dokumenty + + + Stylus + Piórko + + + Ctrl+T + Ctrl+T + + + Backgrounds + Tła + + + Change Background + Zmień tło + + + Undo + Cofnij + + + Ctrl+Z + Ctrl+Z + + + Redo + Wykonaj ponownie + + + Ctrl+Y + Ctrl+Y + + + Previous + Wstecz + + + Previous Page + Poprzednia strona + + + PgUp + PgUp + + + Next + Dalej + + + Next Page + Następna strona + + + PgDown + PgDown + + + Manage Documents + Zarządzaj dokumentami + + + Ctrl+D + Ctrl+D + + + Web Browsing + Przeglądanie stron www + + + Ctrl+W + Ctrl+W + + + Line + Linia + + + Small Line + Mała linia + + + Medium Line + Średnia linia + + + Large Line + Duża linia + + + Quit + Zamknij + + + Eraser + Gumka + + + Smalle Eraser + Mała gumka + + + Medium Eraser + Średnia gumka + + + Large Eraser + Duża gumka + + + Color + Kolor + + + Back + Powrót + + + Left + Lewo + + + Forward + Do przodu + + + Right + Prawo + + + Reload + Ponownie wczytaj + + + Reload Current Page + Ponownie wczytaj bieżącą stronę + + + Home + Strona główna + + + Load Home Page + Wczytaj stronę główną + + + Bookmarks + Zakładki + + + Show Bookmarks + Pokaż zakładki + + + Bookmark + Zakładka + + + Add Bookmark + Dodaj zakładkę + + + Display Board + Wyświetl tablicę + + + Ctrl+B + Ctrl+B + + + Erase + Usuń + + + Erase Content + Usuń zawartość + + + Preferences + Preferencje + + + Display Preferences + Wyświetl preferencje + + + Library + Biblioteka + + + Show Library + Pokaż bibliotekę + + + Ctrl+L + Ctrl+L + + + Show Desktop + Pokaż pulpit + + + Show Computer Desktop + Pokaż pulpit komputera + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Większy + + + Zoom In + Powiększ + + + Ctrl++ + Ctrl++ + + + Smaller + Mniejszy + + + Zoom Out + Zmniejsz + + + Ctrl+- + Ctrl+- + + + New Folder + Nowy folder + + + Create a New Folder + Stwórz nowy folder + + + New Document + Nowy dokument + + + Create a New Document + Stwórz nowy dokument + + + Import + Importuj + + + Import a Document + Importuj dokument + + + Export + Eksportuj + + + Export a Document + Eksportuj dokument + + + Open in Board + Otwórz na tablicy + + + Open Page in Board + Otwórz stronę na tablicy + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplikuj + + + Duplicate Selected Content + Duplikuj wybraną zawartość + + + Delete + Usuń + + + Delete Selected Content + Usuń wybraną zawartość + + + Del + Del + + + Add to Working Document + Dodaj do dokumentu roboczego + + + Add Selected Content to Open Document + Dodaj wybraną zawartość do otwartego dokumentu + + + Add + Dodaj + + + Add Content to Document + Dodaj zawartość do dokumentu + + + Rename + Zmień nazwę + + + Rename Content + Zmień nazwę zawartości + + + Tools + Narzędzia + + + Display Tools + Wyświetl narzędzia + + + Multi Screen + Tryb wieloekranowy + + + Wide Size (16/9) + Rozmiar szeroki (16/9) + + + Use Document Wide Size (16/9) + Użyj szerokiego rozmiaru dokumentu (16/9) + + + Regular Size (4/3) + Normalny rozmiar (4/3) + + + Use Document Regular Size (4/3) + Użyj normalnego rozmiaru dokumentu (4/3) + + + Custom Size + Niestandardowy rozmiar + + + Use Custom Document Size + Użyj niestandardowego rozmiaru dokumentu + + + Stop Loading + Przerwij wczytywanie + + + Stop Loading Web Page + Przerwij wczytywanie strony internetowej + + + Cut + Wytnij + + + Copy + Kopiuj + + + Paste + Wklej + + + Sleep + Uśpij + + + Put Presentation to Sleep + Uśpij prezentację + + + Virtual Keyboard + Wirtualna klawiatura + + + Display Virtual Keyboard + Wyświetl wirtualną klawiaturę + + + Plain Light Background + Zwykłe jasne tło + + + Light + Jasno + + + Grid Light Background + Jasne rastrowe tło + + + Plain Dark Background + Zwykłe ciemne tło + + + Dark + Ciemno + + + Grid Dark Background + Ciemne rastrowe tło + + + Podcast + Podkast + + + Record Presentation to Video + Nagraj prezentację do filmu + + + Record + Nagraj + + + Start Screen Recording + Zacznij nagrywanie ekranu + + + Erase Items + Usuń elementy + + + Erase All Items + Usuń wszystkie elementy + + + Erase Annotations + Usuń adnotacje + + + Erase All Annotations + Usuń wszystkie adnotacje + + + Clear Page + Wyczyść stronę + + + Clear All Elements + Wyczyść wszystkie elementy + + + Pen + Pióro + + + Annotate Document + Dodaj adnotację do dokumentu + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Usuń adnotację + + + Ctrl+E + Ctrl+E + + + Marker + Marker + + + Highlight + Wyróżnienie + + + Ctrl+M + Ctrl+M + + + Selector + Selektor + + + Select And Modify Objects + Wybierz i zmodyfikuj obiekty + + + Ctrl+F + Ctrl+F + + + Hand + Ręka + + + Scroll Page + Przewijaj stronę + + + Laser Pointer + Wskaźnik laserowy + + + Virtual Laser Pointer + Wirtualny wskaźnik laserowy + + + Ctrl+G + Ctrl+G + + + Draw Lines + Rysuj linie + + + Ctrl+J + Ctrl+J + + + Text + Tekst + + + Write Text + Napisz tekst + + + Ctrl+K + Ctrl+K + + + Capture + Przechwyć + + + Capture Part of the Screen + Przechwyć część ekranu + + + Add To Current Page + Dodaj do bieżącej strony + + + Add Item To Current Page + Dodaj element do bieżącej strony + + + Add To New Page + Dodaj do nowej strony + + + Add Item To New Page + Dodaj element do nowej strony + + + Add To Library + Dodaj do biblioteki + + + Add Item To Library + Dodaj element do biblioteki + + + Pages + Strony + + + Create a New Page + Stwórz nową stronę + + + New Page + Nowa strona + + + Duplicate Page + Duplikuj stronę + + + Duplicate the Current Page + Duplikuj bieżącą stronę + + + Import Page + Importuj stronę + + + Import an External Page + Importuj zewnętrzną stronę + + + Pause + Wstrzymaj + + + Pause Podcast Recording + Wstrzymaj nagrywanie podkastu + + + Podcast Config + Konfiguracja podkastu + + + Configure Podcast Recording + Konfiguruj nagrywanie podkastu + + + Flash Trap + Pułapka Flash + + + Trap Flash Content + Złap zawartość Flash + + + Web Trap + + + + + Trap Web Content + Złap zawartość sieci Web + + + Custom Capture + Niestandardowe przechwycenie + + + Window Capture + Przechwycenie okna + + + Capture a Window + Przechwyć okno + + + Embed Web Content + Osadź zawartość sieci Web + + + Capture Embeddable Web Content + Przechwyć zawartość sieci Web nadającą się do osadzenia + + + Show on Display + Pokaż na wyświetlaczu + + + Show Main Screen on Display Screen + Pokaż główny ekran na wyświetlaczu + + + Erase all Annotations + Usuń wszystkie adnotacje + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importuj symulację eduMedia + + + Check Update + Sprawdź aktualizacje + + + Ctrl+H + Ctrl+H + + + OpenBoard + + OpenBoard + + + + + Quit OpenBoard + Zamknij OpenBoard + + + Hide OpenBoard + Ukryj OpenBoard + + + Hide OpenBoard Application + Ukryj aplikację OpenBoard + + + Play + Odtwarzaj + + + Interact with items + Interakcja z elementami + + + Erase Background + Wymaż tło + + + Remove the backgound + Usuń tło + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Wymagana autoryzacja + + + Username: + Nazwa użytkownika: + + + Password: + Hasło: + + + + ProxyDialog + + Proxy Authentication + Autoryzacja serwera proxy + + + Connect to Proxy + Połącz się z serwerem proxy + + + Username: + Nazwa użytkownika: + + + Password: + Hasło: + + + Save username and password for future use + Zachowaj nazwę użytkownika i hasło do użytku w przyszłości + + + + QObject + + Element ID = + ID elementu = + + + Content is not supported in destination format. + Zawartość nie jest obsługiwana w formacie docelowym. + + + Remove Page + Usuń stronę + + + Are you sure you want to remove 1 page from the selected document '%0'? + Czy na pewno chcesz usunąć 1 stronę z wybranego dokumentu „%0”? + + + + UBApplication + + Page Size + Rozmiar strony + + + Podcast + Podkast + + + + UBApplicationController + + Web + Sieć Web + + + New update available, would you go to the web page ? + Dostępna nowa aktualizacja. Czy chcesz przejść do strony www? + + + No update available + Brak aktualizacji + + + Update available + Aktualizacja dostępna + + + Update + Aktualizacja + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Pobieranie treści %1 zakończone niepowodzeniem + + + Download finished + Pobieranie zakończone + + + Unknown tool type %1 + Nieznany typ narzędzia %1 + + + Unknown content type %1 + Niaznany typ treści %1 + + + Add Item + Dodaj element + + + All Supported (%1) + Wszystkie obsługiwane (%1) + + + Delete page %1 from document + Usuń stronę %1 z dokumentu + + + Page %1 deleted + Strona %1 usunięta + + + Add file operation failed: file copying error + Operacja dodania pliku nieudana: błąd kopiowania pliku + + + Group + Grupuj + + + Ungroup + Rozgrupuj + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Kolor + + + + UBBoardPaletteManager + + Error Adding Image to Library + Błąd dodawania obrazu do biblioteki + + + CapturedImage + PrzechwyconyObraz + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Właściwości pamięci podręcznej + + + Color: + Kolor: + + + Shape: + Kształt: + + + Size: + Rozmiar: + + + Close + Zamknij + + + + UBDesktopPalette + + Capture Part of the Screen + Przechwyć część ekranu + + + Capture the Screen + Przechwyć ekran + + + Show the stylus palette + Pokaż paletę piórek + + + Show Board on Secondary Screen + Pokaż tablicę na ekranie podrzędnym + + + Show Desktop on Secondary Screen + Pokaż pulpit na ekranie podrzędnym + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Nowy folder + + + Page %1 + Strona %1 + + + Add Folder of Images + Dodaj folder z obrazami + + + Add Images + Dodaj obrazy + + + Add Pages from File + Dodaj strony z pliku + + + Duplicating Document %1 + Duplikowanie dokumentu %1 + + + Document %1 copied + Dokument %1 skopiowany + + + Remove Page + Usuń stronę + + + Remove Document + Usuń dokument + + + Are you sure you want to remove the document '%1'? + Czy na pewno chcesz usunąć dokument „%1”? + + + Empty Trash + Opróżnij kosz + + + Are you sure you want to empty trash? + Czy na pewno chcesz opróżnić kosz? + + + Emptying trash + Opróżnianie kosza + + + Emptied trash + Opróżniono kosz + + + Remove Folder + Usuń folder + + + Are you sure you want to remove the folder '%1' and all its content? + Czy na pewno chcesz usunąć folder „%1” wraz z zawartością? + + + No document selected! + Nie wybrano żadnego dokumentu! + + + Open Supported File + Otwórz obsługiwany plik + + + Importing file %1... + Importowanie pliku %1... + + + Failed to import file ... + Importowanie pliku zakończone niepowodzeniem... + + + Import all Images from Folder + Importuj wszystkie obrazy z Foldera + + + Delete + Usuń + + + Empty + Opróżnij + + + Trash + Kosz + + + Open Document + Otwórz dokument + + + Add all Images to Document + Dodaj wszystkie obrazy do dokumentu + + + All Images (%1) + Wszystkie obrazy (%1) + + + Selection does not contain any image files! + Zaznaczenie nie zawiera żadnych plików obrazów! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Czy na pewno chcesz usunąć %n stronę z wybranego dokumentu „%1”? + Czy na pewno chcesz usunąć %n strony z wybranego dokumentu „%1”? + Czy na pewno chcesz usunąć %n stron z wybranego dokumentu „%1”? + + + + Folder does not contain any image files + Folder nie zawiera żadnych plików obrazów + + + Untitled Documents + Dokumenty niezatytułowane + + + duplicated %1 page + duplicated %1 pages + + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + obrazy + + + videos + filmy + + + objects + obiekty + + + widgets + widgety + + + All supported files (*.%1) + Wszystkie obsługiwane pliki (*.%1) + + + File %1 saved + Plik %1 zapisany + + + Inserting page %1 of %2 + Wstawianie strony %1 z %2 + + + Import successful. + Importowanie zakończone powodzeniem. + + + Import of file %1 successful. + Importowanie pliku %1 zakończone powodzeniem. + + + Importing file %1 + Importowanie pliku %1 + + + + UBDocumentNavigator + + Page %0 + Strona %0 + + + + UBDocumentPublisher + + Export failed. + Eksportowanie zakończone niepowodzeniem. + + + + UBDocumentReplaceDialog + + Accept + Akceptuj + + + Cancel + Anuluj + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Kosz + + + %1 pages copied + + Skopiowano %1 stronę + Skopiowano %1 strony + Skopiowano %1 stron + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + Skopiowano %1 stronę + Skopiowano %1 strony + Skopiowano %1 stron + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopiowanie strony %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopia) + + + Copying page %1/%2 + Kopiowanie strony %1/%2 + + + %1 pages copied + The first translation is the singular form + + Skopiowano %1 stronę + Skopiowano %1 strony + Skopiowano %1 stron + + + + + UBDownloadWidget + + Downloading files + Pobieranie plików + + + Cancel + Anuluj + + + + UBDraggableThumbnail + + Page %0 + Strona %0 + + + + UBDraggableThumbnailView + + Page %0 + Strona %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Podczas eksportowania pojawiły się ostrzeżenia + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Eksportowanie do IWB + + + Export as IWB File + Eksportuj jako plik IWB + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Export failed. + Eksportowanie zakończone niepowodzeniem. + + + + UBExportDocument + + Page + Strona + + + Export as UBZ File + Eksportowanie jako plik UBZ + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Exporting %1 %2 of %3 + Eksportowanie %1 %2 z %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Export failed. + Eksportowanie zakończone niepowodzeniem. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Eksportowanie jako plik PDF + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Export to PDF + Eksportowanie do PDF + + + + UBExportPDF + + Export as PDF File + Eksportowanie jako plik PDF + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Exporting page %1 of %2 + Eksportowanie strony %1 z %2 + + + Export to PDF + Eksportowanie do PDF + + + + UBExportWeb + + Page + Strona + + + Export as Web data + Eksportowanie jako dane sieci Web + + + Exporting document... + Eksportowanie dokumentu... + + + Export successful. + Eksportowanie zakończone powodzeniem. + + + Export failed. + Eksportowanie zakończone niepowodzeniem. + + + Export to Web Browser + Eksportowanie do przeglądarki sieci Web + + + + UBFeatureProperties + + Add to page + Dodaj do strony + + + Set as background + Ustaw jako tło + + + Add to library + Dodaj do biblioteki + + + Object informations + Informacje o obiekcie + + + + UBFeaturesActionBar + + Add to favorites + Dodaj do ulubionych + + + Share + Udostępniaj + + + Search + Szukaj + + + Delete + Usuń + + + Back to folder + Powrót do folderu + + + Remove from favorites + Usuń z ulubionych + + + Create new folder + Utwórz nowy folder + + + Rescan file system + Ponownie skanuj system plików + + + + UBFeaturesController + + ImportedImage + ImportowanyObraz + + + Audios + Nagrania + + + Movies + Filmy + + + Pictures + Obrazy + + + Animations + Animacje + + + Interactivities + Interakcje + + + Applications + Aplikacje + + + Shapes + Kształty + + + Favorites + Ulubione + + + Web search + Wyszukiwanie w sieci + + + Trash + Kosz + + + + UBFeaturesNewFolderDialog + + Accept + Akceptuj + + + Cancel + Anuluj + + + Enter a new folder name + Wpisz nową nazwę folderu + + + + UBFeaturesProgressInfo + + Loading + Wczytywanie + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Zablokowane + + + Visible on Extended Screen + Widoczne na ekranie rozszerzonym + + + + UBGraphicsItemDelegate + + Locked + Zablokowane + + + Visible on Extended Screen + Widoczne na ekranie rozszerzonym + + + Go to Content Source + Przejdź do źródła zawartości + + + Set as background + Ustaw jako tło + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Wpisz tekst tutaj> + + + + UBGraphicsTextItemDelegate + + Text Color + Kolor tekstu + + + Editable + Edytowalne + + + + UBGraphicsW3CWidgetItem + + Web + Sieć Web + + + + UBGraphicsWidgetItem + + Loading ... + Wczytywanie... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Zamrożone + + + Transform as Tool + Przekształć jako narzędzie + + + + UBImportCFF + + Common File Format ( + Wspólny format plików ( + + + Importing file %1... + Importowanie pliku %1... + + + Import of file %1 failed. + Importowanie pliku %1 zakończone niepowodzeniem. + + + Import successful. + Importowanie zakończone powodzeniem. + + + Import failed. + Importowanie zakończone niepowodzeniem. + + + + UBImportDocument + + Importing file %1... + Importowanie pliku %1... + + + Import successful. + Importowanie zakończone powodzeniem. + + + Import of file %1 failed. + Importowanie pliku %1 zakończone niepowodzeniem. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Format obrazu ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Importowanie PDF zakończone niepowodzeniem. + + + Importing page %1 of %2 + Importowanie strony %1 z %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Błąd podczas publikowania filmu w sieci intranet (%1) + + + Publishing to Intranet in progress %1 % + Publikowanie w sieci intranet w toku %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publikuj + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Tak + + + No + Nie + + + Ok + Ok + + + + UBMessagesDialog + + Close + Zamknij + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Podaj nazwę użytkownika i hasło dla „%1” w %2</qt> + + + Failed to log to Proxy + Logowanie do serwera proxy zakończone niepowodzeniem + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Błędy SSL: + +%1 + +%2 + +Czy chcesz ignorować te błędy dla tego hosta? + + + Yes + Tak + + + No + Nie + + + + UBOpenSankoreImporterWidget + + Cancel + Anuluj + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopiuj) + + + Document Repository Loss + Utrata repozytorium dokumentów + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Angielski + + + Russian + Rosyjski + + + German + Niemiecki + + + French + Francuski + + + Swiss French + Francuski (odmiana szwajcarska) + + + + UBPodcastController + + Failed to start encoder ... + Uruchomienie dekodera zakończone niepowodzeniem... + + + No Podcast encoder available ... + Dekoder podkastów niedostępny... + + + Part %1 + Część %1 + + + on your desktop ... + na pulpicie... + + + in folder %1 + w folderze %1 + + + Podcast created %1 + Podkast utworzony %1 + + + Podcast recording error (%1) + Błąd nagrywania podkastu (%1) + + + Default Audio Input + Domyślne wejście dźwięku + + + No Audio Recording + Brak nagrań audio + + + Small + Mały + + + Medium + Średni + + + Full + Pełny + + + Publish to Intranet + Publikuj w sieci intranet + + + Publish to Youtube + Publikuj w serwisie Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + wersja: + + + Marker is pressure sensitive + Marker jest czuły na nacisk + + + + UBProxyLoginDlg + + Proxy Login + Login serwera proxy + + + Username: + Nazwa użytkownika: + + + Password: + Hasło: + + + + UBPublicationDlg + + Publish document on the web + Publikuj dokument w sieci Web + + + Title: + Tytuł: + + + Description: + Opis: + + + Publish + Publikuj + + + + UBSettings + + My Movies + Moje filmy + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Generowanie miniatur podglądu... + + + %1 thumbnails generated ... + Wygenerowano %1 miniatur... + + + + UBThumbnailTextItem + + Page %0 + Strona %0 + + + + UBToolsManager + + Mask + Maska + + + Ruler + Linijka + + + Compass + Cyrkiel + + + Protractor + Kątomierz + + + Triangle + Ekierka + + + Magnifier + Szkło powiększające + + + Cache + Pamięć podręczna + + + Axes + + + + + UBTrapFlashController + + Whole page + Cała strona + + + Web + Sieć Web + + + + UBUpdateDlg + + Document updater + Aktualizator dokumentów + + + files require an update. + pliki wymagają aktualizacji. + + + Backup path: + Ścieżka dostępu kopii zapasowej: + + + Browse + Przeglądaj + + + Update + Aktualizacja + + + Select a backup folder + Wybierz folder kopii zapasowej + + + Files update successful! +Please reboot the application to access the updated documents. + Aktualizacja plików zakończona powodzeniem! +Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomić aplikację. + + + An error occured during the update. The files have not been affected. + W trakcie aktualizacji wystąpił błąd. Pliki nie zostały uszkodzone. + + + Files update results + Wyniki aktualizacji plików + + + Updating file + Aktualizowanie pliku + + + Please wait the import process will start soon... + Proszę czekać. Proces importowania niedługo się zacznie... + + + Remind me later + Przypomnij mi później + + + + UBWebPluginWidget + + Loading... + Wczytywanie... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + Wywołano %0 (metoda=%1, stan=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Autoryzacja Youtube zakończona niepowodzeniem. + + + Error while uploading video to YouTube (%1) + W trakcie wysyłania filmu do serwisu YouTube (%1) wystąpił błąd + + + Upload to YouTube in progress %1 % + Wysyłanie do serwisu YouTube w toku %1 % + + + + UBYouTubePublishingDialog + + Upload + Wyślij + + + Autos & Vehicles + Samochody i pojazdy + + + Music + Muzyka + + + Pets & Animals + Zwierzęta + + + Sports + Sport + + + Travel & Events + Podróże i wydarzenia + + + Gaming + Gry + + + Comedy + Komedie + + + People & Blogs + Ludzie i blogi + + + News & Politics + Wiadomości i polityka + + + Entertainment + Rozrywka + + + Education + Edukacja + + + Howto & Style + Jak to zrobić i style + + + Nonprofits & Activism + Organizacje nienastawione na zysk i aktywizm + + + Science & Technology + Nauka i technologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Wyczyść + + + + WBDownloadItem + + Save File + Zapisz plik + + + Download canceled: %1 + Pobieranie anulowane: %1 + + + Error opening saved file: %1 + Błąd podczas otwierania zapisanego pliku: %1 + + + Error saving: %1 + Błąd zapisywania: %1 + + + Network Error: %1 + Błąd sieci: %1 + + + seconds + sekundy + + + minutes + minuty + + + - %4 %5 remaining + Zostało - %4 %5 + + + %1 of %2 (%3/sec) %4 + %1 z %2 (%3/sek.) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 z %2 - Zatrzymano + + + bytes + bity + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 pobieranie + + + %1 Downloads + always >= 2 + %1 pobrań + + + + WBHistoryModel + + Title + Tytuł + + + Address + Adres + + + + WBHistoryTreeModel + + Earlier Today + Wcześniej w dniu dzisiejszym + + + %1 items + %1 elementów + + + + WBSearchLineEdit + + Search + Szukaj + + + + WBTabBar + + New &Tab + Nowa zakładka + + + Clone Tab + Klonuj zakładkę + + + &Close Tab + Zamknij zakładkę + + + Close &Other Tabs + Zamknij inne zakładki + + + Reload Tab + Ponownie wczytaj zakładkę + + + Reload All Tabs + Ponownie wczytaj wszystkie zakładki + + + + WBTabWidget + + Recently Closed Tabs + Ostatnio zamknięte zakładki + + + (Untitled) + (Bez tytułu) + + + + WBToolbarSearch + + Search + Szukaj + + + No Recent Searches + Brak ostatnio wyszukiwanych + + + Recent Searches + Ostatnio wyszukiwane + + + Clear Recent Searches + Wyczyść ostatnio wyszukiwane + + + + WBWebPage + + Download + Pobierz + + + Add to Current Document + Dodaj do bieżącego dokumentu + + + PDF + PDF + + + Error loading page: %1 + Błąd wczytywania strony: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Otwórz w nowej zakładce + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publikuj Podkast w serwisie Youtube + + + Title + Tytuł + + + Description + Opis + + + Keywords + Słowa kluczowe + + + Category + Kategoria + + + YouTube Username + Nazwa użytkownika YouTube + + + YouTube Password + Hasło YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Klikając „Wyślij”, poświadczasz, że posiadasz wszelkie prawa do zawartości lub masz zezwolenie właściciela zawartości na jej publiczne udostępnianie w serwisie YouTube, a także, że zawartość jest zgodna z Warunkami korzystania z serwisu YouTube dostępnymi pod adresem </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + + OpenBoard + + OpenBoard + + + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + Na jasnym tle + + + On Dark Background + Na ciemnym tle + + + Opacity + Nieprzezroczystość + + + Line Width + Szerokość linii + + + Medium + Średnia + + + Strong + Silna + + + Fine + Cienka + + + Pen is Pressure Sensitive + Pióro jest czułe na nacisk + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Tytuł + + + E-mail + E-mail + + + Author + Autor + + + Description + Opis + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Tytuł + + + E-mail + E-mail + + + Author + Autor + + + Description + Opis + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Preferencje + + + version : … + wersja:... + + + Default Settings + Ustawienia domyślne + + + Close + Zamknij + + + Display + Wyświetlaj + + + Internet + Internet + + + Show Page with External Browser + Wyświetl stronę w przeglądarce zewnętrznej + + + Home Page: + Strona główna: + + + Virtual Keyboard + Wirtualna klawiatura + + + Keyboard button size: + Rozmiar przycisków klawiatury: + + + Toolbar + Pasek narzędzi + + + Positioned at the Top (recommended for tablets) + Ustawienie w górnej części (zalecane dla tabletów) + + + Positioned at the Bottom (recommended for white boards) + Ustawienie w dolnej części (zalecane dla tablic) + + + Display Text Under Button + Wyświetlaj tekst pod przyciskiem + + + Stylus Palette + Paleta piórka + + + Horizontal + Poziomo + + + Vertical + Pionowo + + + Pen + Pióro + + + Marker + Marker + + + About + Informacje o programie + + + Software Update + Aktualizacja oprogramowania + + + Check software update at launch + Sprawdź aktualizacje oprogramowania w trakcie uruchamiania + + + Licences + Licencje + + + Network + Sieć + + + Show internal web page content on secondary screen or projector + Pokaż wewnętrzną treść strony na podrzędnym ekranie lub projektorze + + + Multi display + Tryb wielu wyświetlaczy + + + Swap control display and view display + Zamień ekran sterowania z ekranem wyświetlania + + + Mode + Tryb + + + Mode to start in: + Tryb początkowy: + + + Board + Tablica + + + Desktop + Pulpit + + + Proxy User: + Uzytkownik serwera proxy: + + + Pass: + Hasło: + + + Credits + Podziękowania + + + On Dark Background + Na ciemnym tle + + + Opacity + Nieprzezroczystość + + + On Light Background + Na jasnym tle + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Złap Flash + + + Select a flash to trap + Wybierz Flash do złapania + + + about:blank + about:blank + + + Application name + Nazwa aplikacji + + + Create Application + Stwórz aplikację + + + diff --git a/resources/i18n/OpenBoard_pt.ts b/resources/i18n/OpenBoard_pt.ts new file mode 100644 index 0000000..8ba43cc --- /dev/null +++ b/resources/i18n/OpenBoard_pt.ts @@ -0,0 +1,2958 @@ + + + + + BlackoutWidget + + Click to Return to Application + Clicar para voltar para a Aplicação + + + + DownloadDialog + + Downloads + Transferências + + + Clean Up + Limpar + + + 0 Items + 0 Itens + + + + DownloadItem + + Form + Formulário + + + Filename + Nome do ficheiro + + + Try Again + Tentar novamente + + + Stop + Parar + + + Open + Abrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicar Podcast no YouTube + + + Title + Título + + + Description + Descrição + + + Author + Autor + + + + MainWindow + + Board + Quadro + + + Web + Web + + + Documents + Documentos + + + Stylus + Paleta + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fundo + + + Change Background + Mudar Fundo + + + Undo + Desfazer + + + Ctrl+Z + Ctrl+Z + + + Redo + Refazer + + + Ctrl+Y + Ctrl+Y + + + Previous + Anterior + + + Previous Page + Página anterior + + + PgUp + Subir na página + + + Next + Próximo + + + Next Page + Próxima Página + + + PgDown + Descer na página + + + Manage Documents + Gerir Documentos + + + Ctrl+D + Ctrl+D + + + Web Browsing + Navegar na Web + + + Ctrl+W + Ctrl+W + + + Line + Linha + + + Small Line + Traço Fino + + + Medium Line + Traço Médio + + + Large Line + Traço Grosso + + + Quit + Sair + + + Eraser + Borracha + + + Smalle Eraser + Borracha Pequena + + + Medium Eraser + Borracha Média + + + Large Eraser + Borracha Grande + + + Color + Cores + + + Back + Recuar + + + Left + Esquerda + + + Forward + Avançar + + + Right + Direita + + + Reload + Recarregar + + + Reload Current Page + Recarregar a página atual + + + Home + Página Inicial + + + Load Home Page + Carregar a Página Inicial + + + Bookmarks + Favoritos + + + Show Bookmarks + Mostrar os Favoritos + + + Bookmark + Favorito + + + Add Bookmark + Adicionar aos Favoritos + + + Display Board + Mostrar o Quadro + + + Ctrl+B + Ctrl+B + + + Erase + Apagar + + + Erase Content + Apagar Conteúdo + + + Preferences + Preferências + + + Display Preferences + Mostrar Preferências + + + Library + Biblioteca + + + Show Library + Mostrar Biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + "Mostrar Ambiente de Trabalho" (muito longo) - Mostrar a mesa + Ver mesa + + + Show Computer Desktop + Mostrar o ambiente de trabalho do Computador + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Ampliar + + + Zoom In + Aproximar + + + Ctrl++ + Ctrl++ + + + Smaller + Reduzir + + + Zoom Out + Afastar + + + Ctrl+- + Ctrl+- + + + New Folder + Nova Pasta + + + Create a New Folder + Criar uma Nova Pasta + + + New Document + Novo Documento + + + Create a New Document + Criar um Novo Documento + + + Import + Importar + + + Import a Document + Importar um Documento + + + Export + Exportar + + + Export a Document + Exportar um Documento + + + Open in Board + Abrir no Quadro + + + Open Page in Board + Abrir Página no Quadro + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicar + + + Duplicate Selected Content + Duplicar o Conteúdo Selecionado + + + Delete + Apagar + + + Delete Selected Content + Apagar o Conteúdo Selecionado + + + Del + Del + + + Add to Working Document + Adicionar ao Documento de Trabalho + + + Add Selected Content to Open Document + Adicionar o Conteúdo Selecionado ao Documento Aberto + + + Add + Adicionar + + + Add Content to Document + Adicionar Conteúdo ao Documento + + + Rename + Mudar o Nome + + + Rename Content + Mudar o Nome do Conteúdo + + + Tools + Ferramentas + + + Display Tools + Mostrar Ferramentas + + + Multi Screen + Écrans Múltiplos + + + Wide Size (16/9) + Formato Panorâmico (16/9) + + + Use Document Wide Size (16/9) + Usar documento no Formato Panorâmico (16/9) + + + Regular Size (4/3) + Formato Tradicional (4/3) + + + Use Document Regular Size (4/3) + Usar documento no Formato Tradicional (4/3) + + + Custom Size + Tamanho Personalizado + + + Use Custom Document Size + Usar documento no Tamanho Personalizado + + + Stop Loading + Parar de Carregar + + + Stop Loading Web Page + Parar de Carregar a Página Web + + + Cut + Cortar + + + Copy + Copiar + + + Paste + Colar + + + Sleep + Modo "Espera" + + + Put Presentation to Sleep + Colocar a Apresentaçãao em modo "Espera" + + + Virtual Keyboard + Teclado Virtual + + + Display Virtual Keyboard + Mostrar o Teclado Virtual + + + Plain Light Background + Fundo Branco e Liso + + + Light + Claro + + + Grid Light Background + Fundo Branco e Quadriculado + + + Plain Dark Background + Fundo Preto e Liso + + + Dark + Escuro + + + Grid Dark Background + Fundo Preto e Quadriculado + + + Podcast + Podcast + + + Record Presentation to Video + Gravar a Apresentação em Vídeo + + + Record + Gravar + + + Start Screen Recording + Iniciar a Gravação do Ecrã + + + Erase Items + Apagar Itens + + + Erase All Items + Apagar Todos os Itens + + + Erase Annotations + Apagar Anotações + + + Erase All Annotations + Apagar Todas as Anotações + + + Clear Page + Limpar a Página + + + Clear All Elements + Limpar Todos os Elementos + + + Pen + Caneta + + + Annotate Document + Escrever + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Apagar + + + Ctrl+E + Ctrl+E + + + Marker + Marcador + + + Highlight + Marcador + + + Ctrl+M + Ctrl+M + + + Selector + Seletor + + + Select And Modify Objects + Selecionar e Modificar Objetos + + + Ctrl+F + Ctrl+F + + + Hand + Mão + + + Scroll Page + Desloca-se na página + + + Laser Pointer + Apontador Laser + + + Virtual Laser Pointer + Apontador Laser Virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Desenhar Linhas + + + Ctrl+J + Ctrl+J + + + Text + Texto + + + Write Text + Escrever Texto + + + Ctrl+K + Ctrl+K + + + Capture + Capturar + + + Capture Part of the Screen + Capturar uma Parte do Ecrã + + + Add To Current Page + Adicionar à Página Atual + + + Add Item To Current Page + Adicionar Item à Página Atual + + + Add To New Page + Adicionar a uma Página Nova + + + Add Item To New Page + Adicionar Item a uma Página Nova + + + Add To Library + Adicionar à Biblioteca + + + Add Item To Library + Adicionar Item à Biblioteca + + + Pages + Páginas + + + Create a New Page + Criar uma Nova Página + + + New Page + Nova Página + + + Duplicate Page + Duplicar Página + + + Duplicate the Current Page + Duplicar a Página Atual + + + Import Page + Importar Página + + + Import an External Page + Importar uma Página Externa + + + Pause + Pausa + + + Pause Podcast Recording + Pausar a Gravação do Podcast + + + Podcast Config + Configuração do Podcast + + + Configure Podcast Recording + Configuração da Gravação de Podcast + + + Flash Trap + Captura de Flash + + + Trap Flash Content + Captura de Conteúdo Flash + + + Web Trap + Captura de Web + + + Trap Web Content + Captura de Conteúdo Web + + + Custom Capture + Captura Personalizada + + + Window Capture + Captura da Janela + + + Capture a Window + Capturar uma Janela + + + Embed Web Content + Conteúdo Web Embutido + + + Capture Embeddable Web Content + Capturar Conteúdo Web Embutido + + + Show on Display + Mostrar no Ecrã + + + Show Main Screen on Display Screen + Mostrar a Tela Principal no Ecrã + + + Erase all Annotations + Apagar todas as notas + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importar uma simulação eduMedia + + + Check Update + Verificar Atualização + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Sair do OpenBoard + + + Hide OpenBoard + Ocultar o OpenBoard + + + Hide OpenBoard Application + Ocultar a Aplicação OpenBoard + + + Play + Começar(?) + Iniciar + + + Interact with items + Interagir com itens + + + Erase Background + Apagar o fundo + + + Remove the backgound + Remover o fundo + + + Open Tutorial + Abrir Tutorial + + + Open the tutorial web page + Abrir a página web de tutorial + + + Ruled Light Background + + + + Ruled Dark Background + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Autenticação Necessária + + + Username: + Usuário: + + + Password: + Senha: + + + + ProxyDialog + + Proxy Authentication + Autenticação do Proxy + + + Connect to Proxy + Conetar ao Proxy + + + Username: + Nome de Utilizador: + + + Password: + Senha: + + + Save username and password for future use + Gravar "Nome de Utilizador" e "Senha" para futuras utilizações + + + + QObject + + Element ID = + ID do Elemento + + + Content is not supported in destination format. + O conteúdo não é suportado no formato de destino. + + + Remove Page + Remover Página + + + Are you sure you want to remove 1 page from the selected document '%0'? + Tem a certeza que quer remover 1 página do documento selecionado '%0'? + + + + UBApplication + + Page Size + Tamanho da Página + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + Update available + Atualização disponível + + + New update available, would you go to the web page ? + Nova atualização disponível. Ir para a página web? + + + No update available + Nenhuma atualização disponível + + + Update + Atualizar + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + A transferência de conteúdos falhou %1 + + + Download finished + Transferência Completa + + + Unknown tool type %1 + Tipo de ferramenta desconhecido %1 + + + Unknown content type %1 + Tipo de conteúdo desconhecido %1 + + + Add Item + Adicionar Item + + + All Supported (%1) + Tudo Suportado (%1) + + + Delete page %1 from document + Apagar a página %1 do documento + + + Page %1 deleted + Página %1 apagada + + + Add file operation failed: file copying error + Falha na operação de adição de ficheiro: erro na cópia do ficheiro + + + Group + Agrupar + + + Ungroup + Desagrupar + + + Saving document... + Gravando documento... + + + Document has just been saved... + Documento acaba de ser gravado... + + + Deleting page %1 + + + + Color + Cores + + + + UBBoardPaletteManager + + Error Adding Image to Library + Erro ao Adicionar Imagem à Biblioteca + + + CapturedImage + Imagem capturada + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Propriedades da Cache + + + Color: + Cor: + + + Shape: + Forma: + + + Size: + Tamanho: + + + Close + Fechar + + + + UBDesktopPalette + + Capture Part of the Screen + Capturar Parte do Ecrã + + + Capture the Screen + Capturar Ecrã + + + Show the stylus palette + Mostrar Paleta + + + Show Board on Secondary Screen + Mostrar o Quadro num Ecrã Secundário + + + Show Desktop on Secondary Screen + Mostrar Ambiente de Trabalho num Ecrã Secundário + + + Show OpenBoard + Mostrar OpenBoard + + + + UBDocumentController + + New Folder + Nova Pasta + + + Page %1 + Página %1 + + + Add Folder of Images + Adicionar Pasta de Imagens + + + Add Images + Adicionar Imagens + + + Add Pages from File + Adicionar Páginas de um Ficheiro + + + Duplicating Document %1 + A Duplicar Documento %1 + + + Document %1 copied + Documento %1 Copiado + + + Remove Page + Remover Página + + + Remove Document + Remover Documento + + + Are you sure you want to remove the document '%1'? + Tem a certeza que quer remover o documento '%1'? + + + Empty Trash + Vazar Lixo + + + Are you sure you want to empty trash? + Tem a certeza que quer vazar a pasta Lixo? + + + Emptying trash + A vazar Lixo + + + Emptied trash + Pasta Lixo limpa + + + Remove Folder + Apagar Pasta + + + Are you sure you want to remove the folder '%1' and all its content? + Tem a certeza que quer apagar a pasta '%1' e todo o seu conteúdo? + + + No document selected! + Não há documentos selecionados! + + + Open Supported File + Abrir Ficheiro Suportado + + + Importing file %1... + A importar ficheiro %1... + + + Failed to import file ... + Falha ao importar ficheiro ... + + + Import all Images from Folder + Importar todas as Imagens de uma Pasta + + + Delete + Apagar + + + Empty + Vazio + + + Trash + Lixo + + + Open Document + Abrir Documento + + + Add all Images to Document + Adicionar todas as imagens ao Documento + + + All Images (%1) + Todas as Imagens (%1) + + + Selection does not contain any image files! + A seleção não contém ficheiros de Imagem! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Tem certeza que quer apagar %n página do documento selecionado '%1'? + Tem certeza que quer apagar %n páginas do documento selecionado '%1'? + + + + Folder does not contain any image files + O diretório não contém imagens + + + Untitled Documents + Documentos sem nome + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + O documento '%1' foi produzido com uma versão mais nova do OpenBoard (%2). Ao abri-lo, você poderá perder alguma informação. Gostaria de continuar? + + + Are you sure you want to remove all selected documents? + Você tem certeza que deseja remover todos os documentos selecionados? + + + Remove multiple documents + Remover múltiplos documentos + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Title page + + + + + UBDocumentManager + + images + imagens + + + videos + vídeos + + + objects + objetos + + + widgets + widgets + + + All supported files (*.%1) + Todos os ficheiros suportados (*.%1) + + + File %1 saved + Ficheiro %1 gravado + + + Inserting page %1 of %2 + A inserir página %1 de %2 + + + Import successful. + Importação bem sucedida. + + + Import of file %1 successful. + Importação do ficheiro %1 bem sucedida. + + + Importing file %1 + A importar o ficheiro %1 + + + + UBDocumentNavigator + + Page %0 + Página %0 + + + + UBDocumentReplaceDialog + + Accept + Aceitar + + + Cancel + Cancelar + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Lixo + + + %1 pages copied + + %1 página copiada + %1 páginas copiadas + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 página copiada + %1 páginas copiadas + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + A copiar página %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (cópia) + + + Copying page %1/%2 + A copiar página %1/%2 + + + %1 pages copied + + %1 página copiada + %1 páginas copiadas + + + + + UBDownloadWidget + + Downloading files + A descarregar ficheiro + + + Cancel + Cancelar + + + + UBDraggableThumbnail + + Page %0 + Página %0 + + + + UBDraggableThumbnailView + + Page %0 + Página %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Surgiram alertas durante a exportação + + + Exporting document... + A exportar documento... + + + Export failed + Exportação falhou + + + Export failed: location not writable + Exportação falhou: localização não gravável + + + Export successful. + Exportação bem sucedida. + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + + UBExportCFF + + Export to IWB + Exportar para IWB + + + Export as IWB File + Exportar como ficheiro IWB + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Export failed. + Falha na Exportação. + + + + UBExportDocument + + Page + Página + + + Export as UBZ File + Exportar como Ficheiro UBZ + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Exporting %1 %2 of %3 + A exportar %1 %2 de %3 + + + Export to OpenBoard Format + Exportar para o formato OpenBoard + + + Export failed: location not writable + Exportação falhou: localização não gravável + + + Export failed + Exportação falhou + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossível exportar para a localização selcionada. Você não possui as permissões necessárias para gravar o arquivo. + + + + UBExportDocumentSetAdaptor + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportar como Ficheiro PDF + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Export to PDF + Exportar para PDF + + + Export failed: location not writable + Exportação falhou: localização não gravável + + + Export failed + Exportação falhou + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossível exportar para a localização selecionada. Você não possui as permissões necessárias para gravar o arquivo. + + + + UBExportPDF + + Export as PDF File + Exportar como Ficheiro PDF + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Exporting page %1 of %2 + A exportar página %1 de %2 + + + Export to PDF + Exportar para PDF + + + + UBExportWeb + + Page + Página + + + Export as Web data + Exportar para formato de Web + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Export failed. + Falha na exportação. + + + Export to Web Browser + Exportar para Explorador Web + + + + UBFeatureProperties + + Add to page + Adicionar à página + + + Set as background + Definir como fundo + + + Add to library + Adicionar à biblioteca + + + Object informations + Informações do Objecto + + + + UBFeaturesActionBar + + Add to favorites + Adicionar aos favoritos + + + Share + Partilhar + + + Search + Procurar + + + Delete + Apagar + + + Back to folder + Voltar à pasta + + + Remove from favorites + Remover dos favoritos + + + Create new folder + Criar uma nova pasta + + + Rescan file system + "Procurar ficheiro de Sistema"(?) + Voltar a procurar ficheiro de Sistema + + + + UBFeaturesController + + ImportedImage + Imagem Importada + + + Audios + Áudios + + + Movies + Vídeos + + + Pictures + Imagens + + + Animations + Animações + + + Interactivities + Atividades Interativas + + + Applications + Aplicações + + + Shapes + Formas + + + Favorites + Favoritos + + + Web search + Busca na web + + + Trash + Lixo + + + + UBFeaturesNewFolderDialog + + Accept + Aceitar + + + Cancel + Cancelar + + + Enter a new folder name + Escrever um novo nome para o diretório + + + + UBFeaturesProgressInfo + + Loading + A carregar + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visível em Ecrã Expandido + + + + UBGraphicsItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visível em Ecrã Expandido + + + Go to Content Source + Ir para a Fonte do Conteúdo + + + Set as background + Definir como fundo + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Recurso de mídia não pode ser resolvido + + + Unsupported media format + Formato de mídia não suportado + + + Media playback service not found + Serviço de reprodução de mídia não encontrado + + + Media error: + Erro de mídia: + + + + UBGraphicsTextItem + + <Type Text Here> + <Introduzir o Texto Aqui> + + + + UBGraphicsTextItemDelegate + + Text Color + Cor do Texto + + + Editable + Editável + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + A carregar ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Congelado + + + Transform as Tool + Transformar em Ferramenta + + + + UBImportCFF + + Common File Format ( + Formato de Ficheiro Frequente ( + + + Importing file %1... + A importar ficheiro %1... + + + Import of file %1 failed. + Falha a importar ficheiro %1. + + + Import successful. + Importação bem sucedida. + + + Import failed. + Falha na importação. + + + + UBImportDocument + + Importing file %1... + A importar ficheiro %1... + + + Import of file %1 failed. + Falha a importar ficheiro %1. + + + Import successful. + Importação bem sucedida. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Formato da Imagem ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Falha na importação de PDF. + + + Importing page %1 of %2 + A importar a página %1 de %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Erro durante a publicação do vídeo na intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicação na Intranet em progresso %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicar + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Sim + + + No + Não + + + Ok + Ok + + + + UBMessagesDialog + + Close + Fechar + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Introduzir o Nome de Utilizador e Senha "%1" em %2</qt> + + + Failed to log to Proxy + Falha ao entrar no Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Erros SSL: + +%1 + +%2 + +Quer ignorar estes erros, deste servidor? + + + Yes + Sim + + + No + Não + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Documentos do Open-Sankore Detectado + + + Show this panel next time + Mostrar este painel da próxima vez + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Você sempre poderá acessar o Importador de Documentos OpenBoard através do painel de Preferências na aba Sobre. Aviso, se você já importou seus dados do Open-Sankoré, você poderá perder seus atuais documentos do OpenBoard. + + + Cancel + Cancelar + + + Proceed + Prosseguir + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Documentos do Open-Sankoré estão presentes em seu computador. É possível importá-los para o OpenBoard pressionando o botão "Prosseguir" para lançar a aplicação de importação. + + + + UBPersistenceManager + + (copy) + (cópia) + + + Document Repository Loss + Repositório de Documentos perdido + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + Acesso ao repositório '%1' foi perdido. Infelizmente a aplicação deverá desligar para avitar a corrupção de dados. As últimas alterações também serão perdidas. + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Inglês + + + Russian + Russo + + + German + Alemão + + + French + Francês + + + Swiss French + Francês (Suiço) + + + + UBPodcastController + + Failed to start encoder ... + Falha ao iniciar o codificador ... + + + No Podcast encoder available ... + Nenhum codificador de Podcast disponível ... + + + Part %1 + Parte %1 + + + on your desktop ... + no seu ambiente de trabalho ... + + + in folder %1 + na pasta %1 + + + Podcast created %1 + Podcast criado %1 + + + Podcast recording error (%1) + Erro de gravação do Podcast (%1) + + + Default Audio Input + Entrada de áudio padrão + + + No Audio Recording + Sem gravação de áudio + + + Small + Pequeno + + + Medium + Médio + + + Full + Completo + + + Publish to Intranet + Publicar na Intranet + + + Publish to Youtube + Publicar no Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + versão: + + + Marker is pressure sensitive + O marcador é sensível à pressão + + + + UBProxyLoginDlg + + Proxy Login + Iniciar sessão no Proxy + + + Username: + Nome de Utilizador: + + + Password: + Senha: + + + + UBPublicationDlg + + Publish document on the web + Publicar documentos na web + + + Title: + Título: + + + Description: + Descrição: + + + Publish + Publicar + + + + UBSettings + + My Movies + Os meus filmes + + + + UBStartupHintsPalette + + Visible next time + Visível na próxima vez + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + A gerar pré-visualização de miniaturas ... + + + %1 thumbnails generated ... + %1 de miniaturas geradas ... + + + + UBThumbnailTextItem + + Page %0 + Página %0 + + + + UBToolsManager + + Mask + Cortina + + + Ruler + Régua + + + Compass + Compasso + + + Protractor + Transferidor + + + Triangle + Esquadro + + + Magnifier + Lupa + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + Página completa + + + Web + Web + + + + UBUpdateDlg + + Document updater + Atualizador de documento + + + files require an update. + arquivos requerem uma atualização. + + + Backup path: + Localização da Cópia de Segurança: + + + Browse + Procurar + + + Update + Atualizar + + + Select a backup folder + Selecione uma pasta para a Cópia de Segurança + + + Please wait the import process will start soon... + Aguarde. O processo de importação vai começar em breve... + + + Files update successful! +Please reboot the application to access the updated documents. + Atualização de ficheiros bem sucedida! +Por favor, reinicie o aplicativo para aceder aos documentos atualizados. + + + An error occured during the update. The files have not been affected. + Ocorreu um erro durante a atualização. Os ficheiros não foram afetados. + + + Files update results + Resultados da actualização de ficheiros + + + Updating file + A actualizar o ficheiro + + + Remind me later + Lembrar-me depois + + + + UBWebPluginWidget + + Loading... + Carregando... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 pedido (método=%1, estado=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Erro de autenticação no YouTube. + + + Error while uploading video to YouTube (%1) + Erro no envio do vídeo para o YouTube (%1) + + + Upload to YouTube in progress %1 % + Envio para o YouTube em curso %1 % + + + + UBYouTubePublishingDialog + + Upload + Enviar + + + Autos & Vehicles + Automóveis + + + Music + Música + + + Pets & Animals + Animais + + + Sports + Desporto + + + Travel & Events + Viagens e Eventos + + + Gaming + Jogos + + + Comedy + Humor + + + People & Blogs + Pessoas e Blogues + + + News & Politics + Notícias e Política + + + Entertainment + Entretenimento + + + Education + Educação + + + Howto & Style + Guias e Estilo + + + Nonprofits & Activism + Sem fins lucrativos e Ativismo + + + Science & Technology + Ciência e Tecnologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Limpar + + + + WBDownloadItem + + Save File + Gravar ficheiro + + + Download canceled: %1 + Download cancelado: %1 + + + Error opening saved file: %1 + Erro a abrir o ficheiro gravado: %1 + + + Error saving: %1 + Erro ao gravar: %1 + + + Network Error: %1 + Erro na Ligação: %1 + + + seconds + Segundos + + + minutes + Minutos + + + - %4 %5 remaining + - %4 %5 de tempo restante + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/seg) %4 + + + ? + unknown file size + Tamanho do ficheiro desconhecido + ? + + + %1 of %2 - Stopped + %1 de %2 - Parado + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 ficheiro descarregado + + + %1 Downloads + always >= 2 + Sempre >= 2 + %1 ficheiros descarregados + + + + WBHistoryModel + + Title + Título + + + Address + Endereço + + + + WBHistoryTreeModel + + Earlier Today + Hoje + + + %1 items + %1 item(s) + + + + WBSearchLineEdit + + Search + Pesquisar + + + + WBTabBar + + New &Tab + Novo &Separador + + + Clone Tab + Duplicar Separador + + + &Close Tab + &Fechar Separador + + + Close &Other Tabs + Fechar os &Outros Separadores + + + Reload Tab + Atualizar Separador + + + Reload All Tabs + Atualizar todos os Separadores + + + + WBTabWidget + + Recently Closed Tabs + Separadores recentemente fechados + + + (Untitled) + (Sem Título) + + + + WBToolbarSearch + + Search + Pesquisar + + + No Recent Searches + Sem pesquisas recentes + + + Recent Searches + Pesquisas recentes + + + Clear Recent Searches + Limpar as pesquisas recentes + + + + WBWebPage + + Download + Descarregar + + + Add to Current Document + Adicionar ao documento atual + + + PDF + PDF + + + Error loading page: %1 + Erro ao carregar a página: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Download de Documento PDF: você prefere baixar o arquivo PDF ou adicioná-lo ao atual documento OpenBoard? + + + + WBWebView + + Open in New Tab + Abrir num Novo Separador + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicar Podcast no Youtube + + + Title + Título + + + Description + Descrição + + + Keywords + Palavras chave + + + Category + Categoria + + + YouTube Username + Nome de utilizador do Youtube + + + YouTube Password + Senha do Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Clicando em 'Enviar', você certifica que possui todos os direitos sobre o conteúdo ou que está autorizado pelo proprietário a tornar o conteúdo disponível publicamente no YouTube, e que esta de acordo com os Termos de Serviço do YouTube localizado em</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Reestabelecer credenciais ao reiniciar + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Num fundo branco + + + On Dark Background + Num fundo preto + + + Opacity + Opacidade + + + Line Width + Largura da linha + + + Medium + Médio + + + Strong + Largo + + + Fine + Fino + + + Pen is Pressure Sensitive + Caneta sensível à pressão + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Caixa de Diálogo + + + Title + Título + + + E-mail + E-mail + + + Author + Autor + + + Description + Descrição + + + + documentPublishingDialog + + Dialog + Caixa de Diálogo + + + Title + Título + + + E-mail + E-mail + + + Author + Autor + + + Description + Descrição + + + + documents + + OpenBoard Documents + Documentos OpenBoard + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Preferências + + + version : … + versão : ... + + + Default Settings + Configuração por defeito + + + Close + Fechar + + + Display + Exibir + + + Internet + Internet + + + Show Page with External Browser + Mostrar a página num Browser externo + + + Home Page: + Página de entrada: + + + Virtual Keyboard + Teclado virtual + + + Keyboard button size: + Tamanho dos botões do teclado: + + + Toolbar + Barra de ferramentas + + + Positioned at the Top (recommended for tablets) + Posicionado no topo (recomendado para tablets) + + + Positioned at the Bottom (recommended for white boards) + Posicionado em baixo (recomendado para quadros brancos) + + + Display Text Under Button + Mostrar o texto por debaixo dos botões + + + Stylus Palette + Paleta + + + Horizontal + Horizontal + + + Vertical + Vertical + + + Pen + Caneta + + + Marker + Marcador + + + Licences + Licenças + + + About + Sobre + + + Software Update + Atualização de Software + + + Check software update at launch + Verificar atualizações de software no arranque + + + Network + Rede + + + Multi display + Écrans Múltiplos + + + Show internal web page content on secondary screen or projector + Mostrar o conteúdo interno da página web num ecrã ou projetor secundário + + + Swap control display and view display + Trocar entre o ecrã de controlo e apresentação? + Trocar entre o ecrã de controlo e visualização + + + Mode + Modo + + + Mode to start in: + "Mode to start in:" + Modo iniciar: + + + Board + Quadro + + + Desktop + Área de Trabalho + + + Proxy User: + Proxy User: + + + Pass: + Senha: + + + Credits + Créditos + + + Open-Sankoré Importer + Importador Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Verifique se os dados do Open-Sankoré poderão ser importados na inicialização + + + Use system keyboard (recommended) + Usar teclado do sistema (recomendado) + + + Built-in virtual keyboard button size: + Tamanho da tecla do teclado virtual embarcado: + + + On Dark Background + Num fundo preto + + + Opacity + Opacidade + + + On Light Background + Num fundo branco + + + Swap first and second view displays + + + + Grid + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Capturar flash + + + Select a flash to trap + Selecionar o flash a capturar + + + about:blank + Acerca:em branco + + + Application name + Nome da Aplicação + + + Create Application + Criar Aplicação + + + diff --git a/resources/i18n/OpenBoard_pt_BR.ts b/resources/i18n/OpenBoard_pt_BR.ts new file mode 100644 index 0000000..b5240dd --- /dev/null +++ b/resources/i18n/OpenBoard_pt_BR.ts @@ -0,0 +1,2625 @@ + + + + + BlackoutWidget + + Click to Return to Application + Clicar para voltar para a Aplicação + + + + DownloadDialog + + Downloads + Transferências + + + Clean Up + Limpar + + + 0 Items + 0 Itens + + + + DownloadItem + + Form + Formulário + + + Filename + Nome do arquivo + + + Try Again + Tentar novamente + + + Stop + Parar + + + Open + Abrir + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicar Podcast no YouTube + + + Title + Título + + + Description + Descrição + + + Author + Autor + + + + MainWindow + + Board + Quadro + + + Web + Web + + + Documents + Documentos + + + Stylus + Paleta + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fundo + + + Change Background + Mudar Fundo + + + Undo + Desfazer + + + Ctrl+Z + Ctrl+Z + + + Redo + Refazer + + + Ctrl+Y + Ctrl+Y + + + Previous + Anterior + + + Previous Page + Página anterior + + + PgUp + Subir na página + + + Next + Próximo + + + Next Page + Próxima Página + + + PgDown + Descer na página + + + Manage Documents + Gerir Documentos + + + Ctrl+D + Ctrl+D + + + Web Browsing + Navegar na Web + + + Ctrl+W + Ctrl+W + + + Line + Linha + + + Small Line + Traço Fino + + + Medium Line + Traço Médio + + + Large Line + Traço Grosso + + + Quit + Sair + + + Eraser + Borracha + + + Smalle Eraser + Borracha Pequena + + + Medium Eraser + Borracha Média + + + Large Eraser + Borracha Grande + + + Color + Cores + + + Back + Recuar + + + Left + Esquerda + + + Forward + Avançar + + + Right + Direita + + + Reload + Recarregar + + + Reload Current Page + Recarregar a página atual + + + Home + Página Inicial + + + Load Home Page + Carregar a Página Inicial + + + Bookmarks + Favoritos + + + Show Bookmarks + Mostrar os Favoritos + + + Bookmark + Favorito + + + Add Bookmark + Adicionar aos Favoritos + + + Display Board + Mostrar o Quadro + + + Ctrl+B + Ctrl+B + + + Erase + Apagar + + + Erase Content + Apagar Conteúdo + + + Preferences + Preferências + + + Display Preferences + Mostrar Preferências + + + Library + Biblioteca + + + Show Library + Mostrar Biblioteca + + + Ctrl+L + Ctrl+L + + + Show Desktop + Ver desktop + + + Show Computer Desktop + Mostrar o ambiente de trabalho do Computador + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Ampliar + + + Zoom In + Aproximar + + + Ctrl++ + Ctrl++ + + + Smaller + Reduzir + + + Zoom Out + Afastar + + + Ctrl+- + Ctrl+- + + + New Folder + Nova Pasta + + + Create a New Folder + Criar uma Nova Pasta + + + New Document + Novo Documento + + + Create a New Document + Criar um Novo Documento + + + Import + Importar + + + Import a Document + Importar um Documento + + + Export + Exportar + + + Export a Document + Exportar um Documento + + + Open in Board + Abrir no Quadro + + + Open Page in Board + Abrir Página no Quadro + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicar + + + Duplicate Selected Content + Duplicar o Conteúdo Selecionado + + + Delete + Apagar + + + Delete Selected Content + Apagar o Conteúdo Selecionado + + + Del + Del + + + Add to Working Document + Adicionar ao Documento de Trabalho + + + Add Selected Content to Open Document + Adicionar o Conteúdo Selecionado ao Documento Aberto + + + Add + Adicionar + + + Add Content to Document + Adicionar Conteúdo ao Documento + + + Rename + Mudar o Nome + + + Rename Content + Mudar o Nome do Conteúdo + + + Tools + Ferramentas + + + Display Tools + Mostrar Ferramentas + + + Multi Screen + Múltiplos Monitores + + + Wide Size (16/9) + Formato Panorâmico (16/9) + + + Use Document Wide Size (16/9) + Usar documento no Formato Panorâmico (16/9) + + + Regular Size (4/3) + Formato Tradicional (4/3) + + + Use Document Regular Size (4/3) + Usar documento no Formato Tradicional (4/3) + + + Custom Size + Tamanho Personalizado + + + Use Custom Document Size + Usar documento no Tamanho Personalizado + + + Stop Loading + Parar de Carregar + + + Stop Loading Web Page + Parar de Carregar a Página Web + + + Cut + Cortar + + + Copy + Copiar + + + Paste + Colar + + + Sleep + Modo "Espera" + + + Put Presentation to Sleep + Colocar a Apresentaçãao em modo "Espera" + + + Virtual Keyboard + Teclado Virtual + + + Display Virtual Keyboard + Mostrar o Teclado Virtual + + + Plain Light Background + Fundo Branco e Liso + + + Light + Claro + + + Grid Light Background + Fundo Branco e Quadriculado + + + Plain Dark Background + Fundo Preto e Liso + + + Dark + Escuro + + + Grid Dark Background + Fundo Preto e Quadriculado + + + Podcast + Podcast + + + Record Presentation to Video + Gravar a Apresentação em Vídeo + + + Record + Gravar + + + Start Screen Recording + Iniciar a Gravação do Vídeo + + + Erase Items + Apagar Itens + + + Erase All Items + Apagar Todos os Itens + + + Erase Annotations + Apagar Anotações + + + Erase All Annotations + Apagar Todas as Anotações + + + Clear Page + Limpar a Página + + + Clear All Elements + Limpar Todos os Elementos + + + Pen + Caneta + + + Annotate Document + Escrever + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Apagar + + + Ctrl+E + Ctrl+E + + + Marker + Marcador + + + Highlight + Marcador + + + Ctrl+M + Ctrl+M + + + Selector + Seletor + + + Select And Modify Objects + Selecionar e Modificar Objetos + + + Ctrl+F + Ctrl+F + + + Hand + Mão + + + Scroll Page + Desloca-se na página + + + Laser Pointer + Apontador Laser + + + Virtual Laser Pointer + Apontador Laser Virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Desenhar Linhas + + + Ctrl+J + Ctrl+J + + + Text + Texto + + + Write Text + Escrever Texto + + + Ctrl+K + Ctrl+K + + + Capture + Capturar + + + Capture Part of the Screen + Capturar uma Parte da Tela + + + Add To Current Page + Adicionar à Página Atual + + + Add Item To Current Page + Adicionar Item à Página Atual + + + Add To New Page + Adicionar a uma Página Nova + + + Add Item To New Page + Adicionar Item a uma Página Nova + + + Add To Library + Adicionar à Biblioteca + + + Add Item To Library + Adicionar Item à Biblioteca + + + Pages + Páginas + + + Create a New Page + Criar uma Nova Página + + + New Page + Nova Página + + + Duplicate Page + Duplicar Página + + + Duplicate the Current Page + Duplicar a Página Atual + + + Import Page + Importar Página + + + Import an External Page + Importar uma Página Externa + + + Pause + Pausa + + + Pause Podcast Recording + Pausar a Gravação do Podcast + + + Podcast Config + Configuração do Podcast + + + Configure Podcast Recording + Configuração da Gravação de Podcast + + + Flash Trap + Captura de Flash + + + Trap Flash Content + Captura de Conteúdo Flash + + + Web Trap + Captura de Web + + + Trap Web Content + Captura de Conteúdo Web + + + Custom Capture + Captura Personalizada + + + Window Capture + Captura da Janela + + + Capture a Window + Capturar uma Janela + + + Embed Web Content + Conteúdo Web Embutido + + + Capture Embeddable Web Content + Capturar Conteúdo Web Embutido + + + Show on Display + Mostrar no Vídeo + + + Show Main Screen on Display Screen + Mostrar a Tela Principal no Vídeo + + + Erase all Annotations + Apagar todas as notas + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importar uma simulação eduMedia + + + Check Update + Verificar Atualização + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Sair do OpenBoard + + + Hide OpenBoard + Ocultar o OpenBoard + + + Hide OpenBoard Application + Ocultar a Aplicação OpenBoard + + + Play + Começar(?) + Iniciar + + + Interact with items + Interagir com itens + + + Erase Background + Apagar o fundo + + + Remove the backgound + Remover o fundo + + + Open Tutorial + Abrir Tutorial + + + Open the tutorial web page + Abrir a página web de tutorial + + + + PasswordDialog + + Authentication Required + Autenticação Necessária + + + Username: + Usuário: + + + Password: + Senha: + + + + ProxyDialog + + Proxy Authentication + Autenticação do Proxy + + + Connect to Proxy + Conetar ao Proxy + + + Username: + Nome de Utilizador: + + + Password: + Senha: + + + Save username and password for future use + Gravar "Nome de Usuário" e "Senha" para futuras utilizações + + + + QObject + + Element ID = + ID do Elemento + + + Content is not supported in destination format. + O conteúdo não é suportado no formato de destino. + + + Remove Page + Remover Página + + + Are you sure you want to remove 1 page from the selected document '%0'? + Tem a certeza que quer remover 1 página do documento selecionado '%0'? + + + + UBApplication + + Page Size + Tamanho da Página + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + Update available + Atualização disponível + + + New update available, would you go to the web page ? + Nova atualização disponível. Ir para a página web? + + + No update available + Nenhuma atualização disponível + + + Update + Atualizar + + + + UBBoardController + + Downloading content %1 failed + A transferência de conteúdos falhou %1 + + + Download finished + Transferência Completa + + + Unknown tool type %1 + Tipo de ferramenta desconhecido %1 + + + Unknown content type %1 + Tipo de conteúdo desconhecido %1 + + + Add Item + Adicionar Item + + + All Supported (%1) + Tudo Suportado (%1) + + + Delete page %1 from document + Apagar a página %1 do documento + + + Page %1 deleted + Página %1 apagada + + + Add file operation failed: file copying error + Falha na operação de adição de arquivo: erro na cópia do arquivo + + + Group + Agrupar + + + Ungroup + Desagrupar + + + Saving document... + Gravando documento... + + + Document has just been saved... + Documento acaba de ser gravado... + + + + UBBoardPaletteManager + + Error Adding Image to Library + Erro ao Adicionar Imagem à Biblioteca + + + CapturedImage + Imagem capturada + + + + UBCachePropertiesWidget + + Cache Properties + Propriedades da Cache + + + Color: + Cor: + + + Shape: + Forma: + + + Size: + Tamanho: + + + Close + Fechar + + + + UBDesktopPalette + + Capture Part of the Screen + Capturar Parte da Tela + + + Capture the Screen + Capturar Tela + + + Show the stylus palette + Mostrar Paleta + + + Show Board on Secondary Screen + Mostrar o Quadro num Vídeo Secundário + + + Show Desktop on Secondary Screen + Mostrar Ambiente de Trabalho num Vídeo Secundário + + + Show OpenBoard + Mostrar OpenBoard + + + + UBDocumentController + + New Folder + Nova Pasta + + + Page %1 + Página %1 + + + Add Folder of Images + Adicionar Pasta de Imagens + + + Add Images + Adicionar Imagens + + + Add Pages from File + Adicionar Páginas de um Arquivo + + + Duplicating Document %1 + A Duplicar Documento %1 + + + Document %1 copied + Documento %1 Copiado + + + Remove Page + Remover Página + + + Remove Document + Remover Documento + + + Are you sure you want to remove the document '%1'? + Tem a certeza que quer remover o documento '%1'? + + + Empty Trash + Vazar Lixo + + + Are you sure you want to empty trash? + Tem a certeza que quer vazar a pasta Lixo? + + + Emptying trash + A vazar Lixo + + + Emptied trash + Pasta Lixo limpa + + + Remove Folder + Apagar Pasta + + + Are you sure you want to remove the folder '%1' and all its content? + Tem a certeza que quer apagar a pasta '%1' e todo o seu conteúdo? + + + No document selected! + Não há documentos selecionados! + + + Open Supported File + Abrir Arquivo Suportado + + + Importing file %1... + Importando arquivo %1... + + + Failed to import file ... + Falha ao importar arquivo ... + + + Import all Images from Folder + Importar todas as Imagens de uma Pasta + + + Delete + Apagar + + + Empty + Vazio + + + Trash + Lixo + + + Open Document + Abrir Documento + + + Add all Images to Document + Adicionar todas as imagens ao Documento + + + All Images (%1) + Todas as Imagens (%1) + + + Selection does not contain any image files! + A seleção não contém arquivos de Imagem! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Tem certeza que quer apagar %n página do documento selecionado '%1'? + Tem certeza que quer apagar %n páginas do documento selecionado '%1'? + + + + Folder does not contain any image files + O diretório não contém imagens + + + Untitled Documents + Documentos sem nome + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + O documento '%1' foi produzido com uma versão mais nova do OpenBoard (%2). Ao abri-lo, você poderá perder alguma informação. Gostaria de continuar? + + + Are you sure you want to remove all selected documents? + Você tem certeza que deseja remover todos os documentos selecionados? + + + Remove multiple documents + Remover múltiplos documentos + + + + UBDocumentManager + + images + imagens + + + videos + vídeos + + + objects + objetos + + + widgets + widgets + + + All supported files (*.%1) + Todos os arquivos suportados (*.%1) + + + File %1 saved + Arquivo %1 gravado + + + Inserting page %1 of %2 + A inserir página %1 de %2 + + + Import successful. + Importação bem sucedida. + + + Import of file %1 successful. + Importação do arquivo %1 bem sucedida. + + + Importing file %1 + Importando o arquivo %1 + + + + UBDocumentNavigator + + Page %0 + Página %0 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (cópia) + + + Copying page %1/%2 + Copiando página %1/%2 + + + %1 pages copied + + %1 página copiada + %1 páginas copiadas + + + + + UBDownloadWidget + + Downloading files + Baixando arquivos + + + Cancel + Cancelar + + + + UBExportAdaptor + + Warnings during export was appeared + Surgiram alertas durante a exportação + + + + UBExportCFF + + Export to IWB + Exportar para IWB + + + Export as IWB File + Exportar como arquivo IWB + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Export failed. + Falha na Exportação. + + + + UBExportDocument + + Page + Página + + + Export as UBZ File + Exportar como Arquivo UBZ + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Exporting %1 %2 of %3 + A exportar %1 %2 de %3 + + + Export to OpenBoard Format + Exportar para o formato OpenBoard + + + Export failed: location not writable + Exportação falhou: localização não gravável + + + Export failed + Exportação falhou + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossível exportar para a localização selcionada. Você não possui as permissões necessárias para gravar o arquivo. + + + + UBExportFullPDF + + Export as PDF File + Exportar como Arquivo PDF + + + Exporting document... + A exportar documento... + + + Export successful. + Exportação bem sucedida. + + + Export to PDF + Exportar para PDF + + + Export failed: location not writable + Exportação falhou: localização não gravável + + + Export failed + Exportação falhou + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Impossível exportar para a localização selecionada. Você não possui as permissões necessárias para gravar o arquivo. + + + + UBExportPDF + + Export as PDF File + Exportar como Arquivo PDF + + + Exporting document... + Exportando documento... + + + Export successful. + Exportação bem sucedida. + + + Exporting page %1 of %2 + Exportando página %1 de %2 + + + Export to PDF + Exportar para PDF + + + + UBExportWeb + + Page + Página + + + Export as Web data + Exportar para formato de Web + + + Exporting document... + Exportando documento... + + + Export successful. + Exportação bem sucedida. + + + Export failed. + Falha na exportação. + + + Export to Web Browser + Exportar para Explorador Web + + + + UBFeatureProperties + + Add to page + Adicionar à página + + + Set as background + Definir como fundo + + + Add to library + Adicionar à biblioteca + + + Object informations + Informações do Objecto + + + + UBFeaturesActionBar + + Add to favorites + Adicionar aos favoritos + + + Share + Partilhar + + + Search + Procurar + + + Delete + Apagar + + + Back to folder + Voltar à pasta + + + Remove from favorites + Remover dos favoritos + + + Create new folder + Criar uma nova pasta + + + Rescan file system + "Procurar arquivo de Sistema"(?) + Voltar a procurar arquivo de Sistema + + + + UBFeaturesController + + ImportedImage + Imagem Importada + + + Audios + Áudios + + + Movies + Vídeos + + + Pictures + Imagens + + + Animations + Animações + + + Interactivities + Atividades Interativas + + + Applications + Aplicações + + + Shapes + Formas + + + Favorites + Favoritos + + + Web search + Busca na web + + + Trash + Lixo + + + + UBFeaturesNewFolderDialog + + Accept + Aceitar + + + Cancel + Cancelar + + + Enter a new folder name + Escrever um novo nome para o diretório + + + + UBFeaturesProgressInfo + + Loading + A carregar + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visível em Vídeo Expandido + + + + UBGraphicsItemDelegate + + Locked + Bloqueado + + + Visible on Extended Screen + Visível em Vídeo Expandido + + + Go to Content Source + Ir para a Fonte do Conteúdo + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Recurso de mídia não pode ser resolvido + + + Unsupported media format + Formato de mídia não suportado + + + Media playback service not found + Serviço de reprodução de mídia não encontrado + + + Media error: + Erro de mídia: + + + + UBGraphicsTextItem + + <Type Text Here> + <Introduzir o Texto Aqui> + + + + UBGraphicsTextItemDelegate + + Text Color + Cor do Texto + + + Editable + Editável + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Carregando ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Congelado + + + Transform as Tool + Transformar em Ferramenta + + + + UBImportCFF + + Common File Format ( + Formato de Arquivo Frequente ( + + + Importing file %1... + Importando arquivos %1... + + + Import of file %1 failed. + Falha a importar arquivo %1. + + + Import successful. + Importação bem sucedida. + + + Import failed. + Falha na importação. + + + + UBImportDocument + + Importing file %1... + Importando arquivo %1... + + + Import of file %1 failed. + Falha a importar arquivo %1. + + + Import successful. + Importação bem sucedida. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportImage + + Image Format ( + Formato da Imagem ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Falha na importação de PDF. + + + Importing page %1 of %2 + Importando página %1 de %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Erro durante a publicação do vídeo na intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicação na Intranet em progresso %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicar + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Sim + + + No + Não + + + Ok + Ok + + + + UBMessagesDialog + + Close + Fechar + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Introduzir o Nome de Usuário e Senha "%1" em %2</qt> + + + Failed to log to Proxy + Falha ao entrar no Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Erros SSL: + +%1 + +%2 + +Quer ignorar estes erros, deste servidor? + + + Yes + Sim + + + No + Não + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Documentos do Open-Sankore Detectado + + + Show this panel next time + Mostrar este painel da próxima vez + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Você sempre poderá acessar o Importador de Documentos OpenBoard através do painel de Preferências na aba Sobre. Aviso, se você já importou seus dados do Open-Sankoré, você poderá perder seus atuais documentos do OpenBoard. + + + Cancel + Cancelar + + + Proceed + Prosseguir + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Documentos do Open-Sankoré estão presentes em seu computador. É possível importá-los para o OpenBoard pressionando o botão "Prosseguir" para lançar a aplicação de importação. + + + + UBPersistenceManager + + (copy) + (cópia) + + + Document Repository Loss + Repositório de Documentos perdido + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + Acesso ao repositório '%1' foi perdido. Infelizmente a aplicação deverá desligar para avitar a corrupção de dados. As últimas alterações também serão perdidas. + + + + UBPlatformUtils + + English + Inglês + + + Russian + Russo + + + German + Alemão + + + French + Francês + + + Swiss French + Francês (Suiço) + + + + UBPodcastController + + Failed to start encoder ... + Falha ao iniciar o codificador ... + + + No Podcast encoder available ... + Nenhum codificador de Podcast disponível ... + + + Part %1 + Parte %1 + + + on your desktop ... + no seu ambiente de trabalho ... + + + in folder %1 + na pasta %1 + + + Podcast created %1 + Podcast criado %1 + + + Podcast recording error (%1) + Erro de gravação do Podcast (%1) + + + Default Audio Input + Entrada de áudio padrão + + + No Audio Recording + Sem gravação de áudio + + + Small + Pequeno + + + Medium + Médio + + + Full + Completo + + + Publish to Intranet + Publicar na Intranet + + + Publish to Youtube + Publicar no Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + versão: + + + Marker is pressure sensitive + O marcador é sensível à pressão + + + + UBProxyLoginDlg + + Proxy Login + Iniciar sessão no Proxy + + + Username: + Nome de Utilizador: + + + Password: + Senha: + + + + UBPublicationDlg + + Publish document on the web + Publicar documentos na web + + + Title: + Título: + + + Description: + Descrição: + + + Publish + Publicar + + + + UBSettings + + My Movies + Os meus filmes + + + + UBStartupHintsPalette + + Visible next time + Visível na próxima vez + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + A gerar pré-visualização de miniaturas ... + + + %1 thumbnails generated ... + %1 de miniaturas geradas ... + + + + UBToolsManager + + Mask + Cortina + + + Ruler + Régua + + + Compass + Compasso + + + Protractor + Transferidor + + + Triangle + Esquadro + + + Magnifier + Lupa + + + Cache + Cache + + + + UBTrapFlashController + + Whole page + Página completa + + + Web + Web + + + + UBUpdateDlg + + Document updater + Atualizador de documento + + + files require an update. + arquivos requerem uma atualização. + + + Backup path: + Localização da Cópia de Segurança: + + + Browse + Procurar + + + Update + Atualizar + + + Select a backup folder + Selecione uma pasta para a Cópia de Segurança + + + Please wait the import process will start soon... + Aguarde. O processo de importação vai começar em breve... + + + Files update successful! +Please reboot the application to access the updated documents. + Atualização de arquivos bem sucedida! +Por favor, reinicie o aplicativo para ir aos documentos atualizados. + + + An error occured during the update. The files have not been affected. + Ocorreu um erro durante a atualização. Os arquivos não foram afetados. + + + Files update results + Resultados da atualização de arquivos + + + Updating file + Atualizando o arquivo + + + Remind me later + Lembrar-me depois + + + + UBWebPluginWidget + + Loading... + Carregando... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 pedido (método=%1, estado=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Erro de autenticação no YouTube. + + + Error while uploading video to YouTube (%1) + Erro no envio do vídeo para o YouTube (%1) + + + Upload to YouTube in progress %1 % + Envio para o YouTube em curso %1 % + + + + UBYouTubePublishingDialog + + Upload + Enviar + + + Autos & Vehicles + Automóveis + + + Music + Música + + + Pets & Animals + Animais + + + Sports + Esportes + + + Travel & Events + Viagens e Eventos + + + Gaming + Jogos + + + Comedy + Humor + + + People & Blogs + Pessoas e Blogues + + + News & Politics + Notícias e Política + + + Entertainment + Entretenimento + + + Education + Educação + + + Howto & Style + Guias e Estilo + + + Nonprofits & Activism + Sem fins lucrativos e Ativismo + + + Science & Technology + Ciência e Tecnologia + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Limpar + + + + WBDownloadItem + + Save File + Gravar arquivo + + + Download canceled: %1 + Download cancelado: %1 + + + Error opening saved file: %1 + Erro a abrir o arquivo gravado: %1 + + + Error saving: %1 + Erro ao gravar: %1 + + + Network Error: %1 + Erro na Ligação: %1 + + + seconds + Segundos + + + minutes + Minutos + + + - %4 %5 remaining + - %4 %5 de tempo restante + + + %1 of %2 (%3/sec) %4 + %1 de %2 (%3/seg) %4 + + + ? + unknown file size + Tamanho do arquivo desconhecido + ? + + + %1 of %2 - Stopped + %1 de %2 - Parado + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 arquivo baixado + + + %1 Downloads + always >= 2 + Sempre >= 2 + %1 arquivos baixados + + + + WBHistoryModel + + Title + Título + + + Address + Endereço + + + + WBHistoryTreeModel + + Earlier Today + Hoje + + + %1 items + %1 item(s) + + + + WBSearchLineEdit + + Search + Pesquisar + + + + WBTabBar + + New &Tab + Novo &Separador + + + Clone Tab + Duplicar Separador + + + &Close Tab + &Fechar Separador + + + Close &Other Tabs + Fechar os &Outros Separadores + + + Reload Tab + Atualizar Separador + + + Reload All Tabs + Atualizar todos os Separadores + + + + WBTabWidget + + Recently Closed Tabs + Separadores recentemente fechados + + + (Untitled) + (Sem Título) + + + + WBToolbarSearch + + Search + Pesquisar + + + No Recent Searches + Sem pesquisas recentes + + + Recent Searches + Pesquisas recentes + + + Clear Recent Searches + Limpar as pesquisas recentes + + + + WBWebPage + + Download + Baixar + + + Add to Current Document + Adicionar ao documento atual + + + PDF + PDF + + + Error loading page: %1 + Erro ao carregar a página: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Download de Documento PDF: você prefere baixar o arquivo PDF ou adicioná-lo ao atual documento OpenBoard? + + + + WBWebView + + Open in New Tab + Abrir num Novo Separador + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicar Podcast no Youtube + + + Title + Título + + + Description + Descrição + + + Keywords + Palavras chave + + + Category + Categoria + + + YouTube Username + Nome de utilizador do Youtube + + + YouTube Password + Senha do Youtube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Clicando em 'Enviar', você certifica que possui todos os direitos sobre o conteúdo ou que está autorizado pelo proprietário a tornar o conteúdo disponível publicamente no YouTube, e que esta de acordo com os Termos de Serviço do YouTube localizado em</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Reestabelecer credenciais ao reiniciar + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + Num fundo branco + + + On Dark Background + Num fundo preto + + + Opacity + Opacidade + + + Line Width + Largura da linha + + + Medium + Médio + + + Strong + Largo + + + Fine + Fino + + + Pen is Pressure Sensitive + Caneta sensível à pressão + + + + capturePublishingDialog + + Dialog + Caixa de Diálogo + + + Title + Título + + + E-mail + E-mail + + + Author + Autor + + + Description + Descrição + + + + documents + + OpenBoard Documents + Documentos OpenBoard + + + + preferencesDialog + + Preferences + Preferências + + + version : … + versão : ... + + + Default Settings + Configuração por defeito + + + Close + Fechar + + + Display + Exibir + + + Internet + Internet + + + Show Page with External Browser + Mostrar a página num Browser externo + + + Home Page: + Página de entrada: + + + Virtual Keyboard + Teclado virtual + + + Keyboard button size: + Tamanho dos botões do teclado: + + + Toolbar + Barra de ferramentas + + + Positioned at the Top (recommended for tablets) + Posicionado no topo (recomendado para tablets) + + + Positioned at the Bottom (recommended for white boards) + Posicionado em baixo (recomendado para quadros brancos) + + + Display Text Under Button + Mostrar o texto por debaixo dos botões + + + Stylus Palette + Paleta + + + Horizontal + Horizontal + + + Vertical + Vertical + + + Pen + Caneta + + + Marker + Marcador + + + Licences + Licenças + + + About + Sobre + + + Software Update + Atualização de Software + + + Check software update at launch + Verificar atualizações de software no arranque + + + Network + Rede + + + Multi display + Múltiplos Monitores + + + Show internal web page content on secondary screen or projector + Mostrar o conteúdo interno da página web num monitor ou projetor secundário + + + Swap control display and view display + Trocar entre o monitor de controle e apresentação? + Trocar entre o monitor de controle e visualização + + + Mode + Modo + + + Mode to start in: + "Mode to start in:" + Modo iniciar: + + + Board + Quadro + + + Desktop + Área de Trabalho + + + Proxy User: + Proxy User: + + + Pass: + Senha: + + + Credits + Créditos + + + Open-Sankoré Importer + Importador Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Verifique se os dados do Open-Sankoré poderão ser importados na inicialização + + + Use system keyboard (recommended) + Usar teclado do sistema (recomendado) + + + Built-in virtual keyboard button size: + Tamanho da tecla do teclado virtual embarcado: + + + + trapFlashDialog + + Trap flash + Capturar flash + + + Select a flash to trap + Selecionar o flash a capturar + + + about:blank + Acerca:em branco + + + Application name + Nome da Aplicação + + + Create Application + Criar Aplicação + + + diff --git a/resources/i18n/OpenBoard_ro.ts b/resources/i18n/OpenBoard_ro.ts new file mode 100644 index 0000000..fc63c39 --- /dev/null +++ b/resources/i18n/OpenBoard_ro.ts @@ -0,0 +1,2929 @@ + + + + + BlackoutWidget + + Click to Return to Application + Faceţi clic pe Înapoi la Aplicaţie + + + + DownloadDialog + + Downloads + Descărcări + + + Clean Up + Curăţare + + + 0 Items + 0 articole + + + + DownloadItem + + Form + Formular + + + Filename + Denumire fişier + + + Try Again + Încercaţi din nou + + + Stop + Oprire + + + Open + Deschidere + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicare podcast pe YouTube + + + Title + Titlu + + + Description + Descriere + + + Author + Autor + + + + MainWindow + + Board + Tablă + + + Web + Web + + + Documents + Documente + + + Stylus + Stilou + + + Ctrl+T + Ctrl+T + + + Backgrounds + Fundaluri + + + Change Background + Schimbare fundal + + + Undo + Anulare + + + Ctrl+Z + Ctrl+Z + + + Redo + Repetare + + + Ctrl+Y + Ctrl+Y + + + Previous + Precedent + + + Previous Page + Pagina precedentă + + + PgUp + PgUp + + + Next + Următor + + + Next Page + Pagina următoare + + + PgDown + PgDown + + + Manage Documents + Administrare documente + + + Ctrl+D + Ctrl+D + + + Web Browsing + Navigare pe web + + + Ctrl+W + Ctrl+W + + + Line + Linie + + + Small Line + Linie subţire + + + Medium Line + Linie medie + + + Large Line + Linie groasă + + + Quit + Ieşire + + + Eraser + Gumă + + + Smalle Eraser + Gumă mică + + + Medium Eraser + Gumă medie + + + Large Eraser + Gumă mare + + + Color + Culoare + + + Back + Înapoi + + + Left + Stânga + + + Forward + Înainte + + + Right + Dreapta + + + Reload + Reîncărcare + + + Reload Current Page + Reîncărcare pagina curentă + + + Home + Acasă + + + Load Home Page + Încărcare pagina de start + + + Bookmarks + Semne de carte + + + Show Bookmarks + Afişare semne de carte + + + Bookmark + Semn de carte + + + Add Bookmark + Adăugare semn de carte + + + Display Board + Afişare tablă + + + Ctrl+B + Ctrl+B + + + Erase + Ştergere + + + Erase Content + Ştergere conţinut + + + Preferences + Preferinţe + + + Display Preferences + Afişare preferinţe + + + Library + Bibliotecă + + + Show Library + Afişare bibliotecă + + + Ctrl+L + Ctrl+L + + + Show Desktop + Afişare desktop + + + Show Computer Desktop + Afişare desktop computer + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Mai mare + + + Zoom In + Mărire + + + Ctrl++ + Ctrl++ + + + Smaller + Mai mic + + + Zoom Out + Micşorare + + + Ctrl+- + Ctrl+- + + + New Folder + Folder nou + + + Create a New Folder + Creare folder nou + + + New Document + Document nou + + + Create a New Document + Creare document nou + + + Import + Importare + + + Import a Document + Importare document + + + Export + Exportare + + + Export a Document + Exportare document + + + Open in Board + Deschidere în tablă + + + Open Page in Board + Deschidere pagină în tablă + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicare + + + Duplicate Selected Content + Duplicare conţinut selectat + + + Delete + Ştergere + + + Delete Selected Content + Ştergere conţinut selectat + + + Del + Del + + + Add to Working Document + Adăugare la documente de lucru + + + Add Selected Content to Open Document + Adăugare conţinut selectat în Open document + + + Add + Adăugare + + + Add Content to Document + Adăugare conţinut în document + + + Rename + Redenumire + + + Rename Content + Redenumire conţinut + + + Tools + Instrumente + + + Display Tools + Afişare instrumente + + + Multi Screen + Ecran multiplu + + + Wide Size (16/9) + Format lat (16/9) + + + Use Document Wide Size (16/9) + Utilizare format document lat (16/9) + + + Regular Size (4/3) + Format normal (4/3) + + + Use Document Regular Size (4/3) + Utilizare format document normal (4/3) + + + Custom Size + Format particularizat + + + Use Custom Document Size + Utilizare format document particularizat + + + Stop Loading + Oprire încărcare + + + Stop Loading Web Page + Oprire încărcare pagină web + + + Cut + Decupare + + + Copy + Copiere + + + Paste + Lipire + + + Sleep + Oprire automată + + + Put Presentation to Sleep + Punere prezentare pe oprire automată + + + Virtual Keyboard + Tastatură virtuală + + + Display Virtual Keyboard + Afişare tastatură virtuală + + + Plain Light Background + Fundal deschis simplu + + + Light + Deschis + + + Grid Light Background + Fundal deschis cu grilă + + + Plain Dark Background + Fundal închis simplu + + + Dark + Închis + + + Grid Dark Background + Fundal închis cu grilă + + + Podcast + Podcast + + + Record Presentation to Video + Înregistrare prezentare pe video + + + Record + Înregistrare + + + Start Screen Recording + Pornire înregistrare ecran + + + Erase Items + Ştergere articole + + + Erase All Items + Ştergere toate articolele + + + Erase Annotations + Ştergere adnotări + + + Erase All Annotations + Ştergere toate adnotările + + + Clear Page + Ştergere pagină + + + Clear All Elements + Ştergere toate elementele + + + Pen + Stilou + + + Annotate Document + Adnotare document + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Ştergere adnotare + + + Ctrl+E + Ctrl+E + + + Marker + Marker + + + Highlight + Evidenţiere + + + Ctrl+M + Ctrl+M + + + Selector + Selector + + + Select And Modify Objects + Selectare şi modificare obiecte + + + Ctrl+F + Ctrl+F + + + Hand + Mână + + + Scroll Page + Derulare pagină + + + Laser Pointer + Indicator laser + + + Virtual Laser Pointer + Indicator laser virtual + + + Ctrl+G + Ctrl+G + + + Draw Lines + Desenare linii + + + Ctrl+J + Ctrl+J + + + Text + Text + + + Write Text + Scriere text + + + Ctrl+K + Ctrl+K + + + Capture + Captuare + + + Capture Part of the Screen + Capturare parte ecran + + + Add To Current Page + Adăugare la pagina curentă + + + Add Item To Current Page + Adăugare articol la pagina curentă + + + Add To New Page + Adăugare la pagină nouă + + + Add Item To New Page + Adăugare articol la pagină nouă + + + Add To Library + Adăugare la bibliotecă + + + Add Item To Library + Adăugare articol la bibliotecă + + + Pages + Pagini + + + Create a New Page + Creare pagină nouă + + + New Page + Pagină nouă + + + Duplicate Page + Duplicare pagină + + + Duplicate the Current Page + Duplicare pagină curentă + + + Import Page + Importare pagină + + + Import an External Page + Importare pagină externă + + + Pause + Pauză + + + Pause Podcast Recording + Pauză înregistrare podcast + + + Podcast Config + Podcast Config + + + Configure Podcast Recording + Configurare înregistrare podcast + + + Flash Trap + Blocare flash + + + Trap Flash Content + Blocare conţinut flash + + + Web Trap + Blocare web + + + Trap Web Content + Blocare conţinut web + + + Custom Capture + Capturare particularizată + + + Window Capture + Capturare fereastră + + + Capture a Window + Capturare fereastră + + + Embed Web Content + Incorporare conţinut web + + + Capture Embeddable Web Content + Capturare conţinut web incorporabil + + + Show on Display + Afişare pe ecran + + + Show Main Screen on Display Screen + Afişare ecran principal pe ecran de afişare + + + Erase all Annotations + Ştergere toate adnotările + + + eduMedia + eduMedia + + + Import eduMedia simulation + Importare simulare eduMedia + + + Check Update + Verificare actualizare + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Ieşire din OpenBoard + + + Hide OpenBoard + Ascundere OpenBoard + + + Hide OpenBoard Application + Ascundere aplicaţie OpenBoard + + + Play + Redare + + + Interact with items + Interacțiune cu articolele + + + Erase Background + Ștergere fundal + + + Remove the backgound + Eliminare fundal + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Autentificare obligatorie + + + Username: + Nume de utilizator: + + + Password: + Parolă: + + + + ProxyDialog + + Proxy Authentication + Autentificare Proxy + + + Connect to Proxy + Conectare pe Proxy + + + Username: + Nume de utilizator: + + + Password: + Parolă: + + + Save username and password for future use + Salvare nume de utilizator şi parolă pentru utilizare ulterioară + + + + QObject + + Element ID = + ID element = + + + Content is not supported in destination format. + Conținutul nu este suportat în formatul de destinație. + + + Remove Page + Eliminare pagină + + + Are you sure you want to remove 1 page from the selected document '%0'? + Sunteți sigur că doriți să eliminați 1 pagină din documentul selectat '%0'? + + + + UBApplication + + Page Size + Dimensiune pagină + + + Podcast + Podcast + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Actualizare nouă disponibilă, doriţi să accesaţi pagina web? + + + No update available + Nu este disponibilă nicio actualizare + + + Update available + Actualizare disponibilă + + + Update + Actualizare + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Descărcare conţinut %1 nereuşită + + + Download finished + Descărcare terminată + + + Unknown tool type %1 + Tip de instrument necunoscut %1 + + + Unknown content type %1 + Tip de conţinut necunoscut %1 + + + Add Item + Adăugare articol + + + All Supported (%1) + Tot ce se suportă (%1) + + + Delete page %1 from document + Ștergere pagina %1 din document + + + Page %1 deleted + Pagina %1 ștearsă + + + Add file operation failed: file copying error + Operațiunea de adăugare fișier nu a reușit: eroare copiere fișier + + + Group + Grupare + + + Ungroup + Degrupare + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Culoare + + + + UBBoardPaletteManager + + Error Adding Image to Library + Eroare adăugare imagine la bibliotecă + + + CapturedImage + ImagineCapturată + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Caracteristici cache + + + Color: + Culoare: + + + Shape: + Formă: + + + Size: + Dimensiune: + + + Close + Închidere + + + + UBDesktopPalette + + Capture Part of the Screen + Capturare parte de ecran + + + Capture the Screen + Capturare ecran + + + Show the stylus palette + Afişare paletă stilou + + + Show Board on Secondary Screen + Afişare tablă pe ecran secundar + + + Show Desktop on Secondary Screen + Afişare desktop pe ecran secundar + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Folder nou + + + Page %1 + Pagina %1 + + + Add Folder of Images + Adăugare folder de imagini + + + Add Images + Afăugare imagini + + + Add Pages from File + Adăugare pagini din fişier + + + Duplicating Document %1 + Duplicare document %1 + + + Document %1 copied + Document %1 copiat + + + Remove Page + Eliminare pagină + + + Remove Document + Eliminare document + + + Are you sure you want to remove the document '%1'? + Sunteţi siguri că doriţi să eliminaţi documentul %1? + + + Empty Trash + Golire coş de gunoi + + + Are you sure you want to empty trash? + Sunteţi siguri că doriţi să goliţi coşul de gunoi? + + + Emptying trash + Golire coş de gunoi + + + Emptied trash + Coş de gunoi golit + + + Remove Folder + Eliminare folder + + + Are you sure you want to remove the folder '%1' and all its content? + Sunteţi siguri că doriţi să eliminaţi folderul '%1' şi toate conţinuturile sale? + + + No document selected! + Nu s-a selectat niciun document! + + + Open Supported File + Deschidere fişier suportat + + + Importing file %1... + Importare fişier %1... + + + Failed to import file ... + Importare fişier nereuşită ... + + + Import all Images from Folder + Importare toate imaginile din folder + + + Delete + Ştergere + + + Empty + Golire + + + Trash + Coş de gunoi + + + Open Document + Deschidere document + + + Add all Images to Document + Adăugare toate imaginile la document + + + All Images (%1) + Toate imaginile (%1) + + + Selection does not contain any image files! + Selecţia nu conţine nicio imagine! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Sunteţi sigur că doriţi să eliminaţi %n pagină din documentul selectat '%1'? + Sunteţi sigur că doriţi să eliminaţi %n pagini din documentul selectat '%1'? + + + + Folder does not contain any image files + Folderul nu conține niciun fișier imagine + + + Untitled Documents + Documente fără titlu + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + imagini + + + videos + înregistrări video + + + objects + obiecte + + + widgets + widget-uri + + + All supported files (*.%1) + Toate fişierele suportate (*.%1) + + + File %1 saved + Fişier %1 salvat + + + Inserting page %1 of %2 + Inserare pagina %1 din %2 + + + Import successful. + Importare reuşită. + + + Import of file %1 successful. + Importare fișier %1 reușită. + + + Importing file %1 + Importare fișier %1 + + + + UBDocumentNavigator + + Page %0 + Pagina %0 + + + + UBDocumentPublisher + + Export failed. + Exportare nereuşită. + + + + UBDocumentReplaceDialog + + Accept + Acceptare + + + Cancel + Anulare + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Coş de gunoi + + + %1 pages copied + + %1 pagini copiate + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 pagini copiate + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Copiere pagina %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copie) + + + Copying page %1/%2 + Copiere pagina %1/%2 + + + %1 pages copied + + %1 pagini copiate + + + + + + UBDownloadWidget + + Downloading files + Descărcare fişiere + + + Cancel + Anulare + + + + UBDraggableThumbnail + + Page %0 + Pagina %0 + + + + UBDraggableThumbnailView + + Page %0 + Pagina %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Au apărut atenționări în timpul exportului + + + Export successful. + Exportare reuşită. + + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Exportare în IWB + + + Export as IWB File + Exportare ca fișier IWB + + + Exporting document... + Exportare document... + + + Export successful. + Exportare reuşită. + + + Export failed. + Exportare nereuşită. + + + + UBExportDocument + + Page + Pagină + + + Export as UBZ File + Exportare ca fişier UBZ + + + Exporting document... + Exportare document ... + + + Export successful. + Exportare reuşită. + + + Exporting %1 %2 of %3 + Exportare %1 %2 din %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Export successful. + Exportare reuşită. + + + Export failed. + Exportare nereuşită. + + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportare ca fişier PDF + + + Exporting document... + Exoprtare document ... + + + Export successful. + Exportare reuşită. + + + Export to PDF + Exportare în PDF + + + + UBExportPDF + + Export as PDF File + Exportare ca fişier PDF + + + Exporting document... + Exportare document... + + + Export successful. + Exportare reuşită. + + + Exporting page %1 of %2 + Exportare pagina %1 din %2 + + + Export to PDF + Exportare în PDF + + + + UBExportWeb + + Page + Pagina + + + Export as Web data + Exportare ca dată web + + + Exporting document... + Exportare document... + + + Export successful. + Exportare reuşită. + + + Export failed. + Exportare nereuşită. + + + Export to Web Browser + Exportare în browser web + + + + UBFeatureProperties + + Add to page + Adăugare la pagină + + + Set as background + Setare ca fundal + + + Add to library + Adăugare la bibliotecă + + + Object informations + Informaţii despre obiect + + + + UBFeaturesActionBar + + Add to favorites + Adăugare la favorite + + + Share + Distribuire + + + Search + Căutare + + + Delete + Ştergere + + + Back to folder + Înapoi la folder + + + Remove from favorites + Eliminare din favorite + + + Create new folder + Creare folder nou + + + Rescan file system + Rescanare sistem de fișiere + + + + UBFeaturesController + + ImportedImage + ImagineImportată + + + Audios + Înregistrări audio + + + Movies + Filme + + + Pictures + Imagini + + + Animations + Animaţii + + + Interactivities + Interactivităţi + + + Applications + Aplicaţii + + + Shapes + Forme + + + Favorites + Favorite + + + Web search + Căutare web + + + Trash + Coş de gunoi + + + + UBFeaturesNewFolderDialog + + Accept + Acceptare + + + Cancel + Anulare + + + Enter a new folder name + Introducere un nume de folder nou + + + + UBFeaturesProgressInfo + + Loading + Încărcare + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Blocat + + + Visible on Extended Screen + Vizibil pe ecran extins + + + + UBGraphicsItemDelegate + + Locked + Blocat + + + Visible on Extended Screen + Vizibil pe ecran extins + + + Go to Content Source + Accesare sursă conţinut + + + Set as background + Setare ca fundal + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Tipărire text aici> + + + + UBGraphicsTextItemDelegate + + Text Color + Culoare text + + + Editable + Editabil + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Încărcare ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Îngheţat + + + Transform as Tool + Transformare în instrument + + + + UBImportCFF + + Common File Format ( + Format de fişier comun ( + + + Importing file %1... + Importare fişier %1... + + + Import of file %1 failed. + Importare fişier %1 nereuşită. + + + Import successful. + Importare reuşită. + + + Import failed. + Importare nereuşită. + + + + UBImportDocument + + Importing file %1... + Importare fişier %1... + + + Import successful. + Importare reuşită. + + + Import of file %1 failed. + Importare fişier %1 nereuşită. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Format imagine ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Document în format portabil (*.pdf) + + + PDF import failed. + Importare PDF nereuşită. + + + Importing page %1 of %2 + Importare pagina %1 din %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Eroare în timpul publicării înregistrării video pe intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicare pe intranet în curs %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicare + + + + UBKeyboardPalette + + Enter + Intrare + + + + UBMainWindow + + Yes + Da + + + No + Nu + + + Ok + Ok + + + + UBMessagesDialog + + Close + Închidere + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Introduceţi numele de utilizator şi parola pentru "%1" la %2</qt> + + + Failed to log to Proxy + Conectare nereuşită pe Proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Erori SSL: + +%1 + +%2 + +Doriţi să ignoraţi aceste erori pentru acest host? + + + Yes + Da + + + No + Nu + + + + UBOpenSankoreImporterWidget + + Cancel + Anulare + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (copie) + + + Document Repository Loss + Pierdere depozit de documente + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Engleză + + + Russian + Rusă + + + German + Germană + + + French + Franceză + + + Swiss French + Franceză elvețiană + + + + UBPodcastController + + Failed to start encoder ... + Pornire codificator nereuşită ... + + + No Podcast encoder available ... + Nu este disponibil niciun codificator de podcast ... + + + Part %1 + Partea %1 + + + on your desktop ... + pe desktopul dumneavoastră ... + + + in folder %1 + în folderul %1 + + + Podcast created %1 + Podcast creat %1 + + + Podcast recording error (%1) + Eroare înregistrare podcast (%1) + + + Default Audio Input + Intrare audio implicită + + + No Audio Recording + Nicio înregistrare audio + + + Small + Mic + + + Medium + Mediu + + + Full + Mare + + + Publish to Intranet + Publicare pe Intranet + + + Publish to Youtube + Publicare pe YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + versiune: + + + Marker is pressure sensitive + Markerul este sensibil la apăsare + + + + UBProxyLoginDlg + + Proxy Login + Conectare Proxy + + + Username: + Nume de utilizator: + + + Password: + Parolă: + + + + UBPublicationDlg + + Publish document on the web + Publicare document pe web + + + Title: + Titlu: + + + Description: + Descriere: + + + Publish + Publicare + + + + UBSettings + + My Movies + Filmele mele + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Generare previzualizare miniaturi ... + + + %1 thumbnails generated ... + %1 miniaturi generate ... + + + + UBThumbnailTextItem + + Page %0 + Pagina %0 + + + + UBToolsManager + + Mask + Mască + + + Ruler + Riglă + + + Compass + Compas + + + Protractor + Raportor + + + Triangle + Echer + + + Magnifier + Lupă + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + Toată pagina + + + Web + Web + + + + UBUpdateDlg + + Document updater + Actualizator documente + + + files require an update. + fişiere necesită o actualizare. + + + Backup path: + Cale de acces pentru copii de rezervă: + + + Browse + Navigare + + + Update + Actualizare + + + Select a backup folder + Selectare fişier cu copii de rezervă + + + Files update successful! +Please reboot the application to access the updated documents. + Fişiere actualizate cu succes! +Vă rugăm să reporniţi aplicaţia pentru a accesa documentele actualizate. + + + An error occured during the update. The files have not been affected. + O eroare a intervenit în timpul actualizării. Fişierele nu au fost afectate. + + + Files update results + Rezultate actualizare fişiere + + + Updating file + Actualizare fişier + + + Please wait the import process will start soon... + Vă rugăm să aşteptaţi, procesul de importare va începe în curând... + + + Remind me later + Reaminteşte-mi mai târziu + + + + UBWebPluginWidget + + Loading... + Încărcare... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 apelate (metodă=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Autentificare YouTube nereuşită. + + + Error while uploading video to YouTube (%1) + Eroare în timpul încărcării înregistrării video pe YouTube (%1) + + + Upload to YouTube in progress %1 % + Încărcare pe YouTube în curs %1 % + + + + UBYouTubePublishingDialog + + Upload + Încărcare + + + Autos & Vehicles + Autoturisme & vehicule + + + Music + Muzică + + + Pets & Animals + Animale de companie & Animale + + + Sports + Sporturi + + + Travel & Events + Călătorie & Evenimente + + + Gaming + Jocuri + + + Comedy + Comedie + + + People & Blogs + Oameni & Bloguri + + + News & Politics + Noutăţi & Politică + + + Entertainment + Divertisment + + + Education + Educaţie + + + Howto & Style + Cum se face & Stil + + + Nonprofits & Activism + Non-profituri & Activism + + + Science & Technology + Ştiinţă & Tehnologie + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Ştergere + + + + WBDownloadItem + + Save File + Salvare fişier + + + Download canceled: %1 + Descărcare anulată: %1 + + + Error opening saved file: %1 + Eroare deschidere fişier salvat: %1 + + + Error saving: %1 + Eroare salvare: %1 + + + Network Error: %1 + Eroare de reţea: %1 + + + seconds + secunde + + + minutes + minute + + + - %4 %5 remaining + - %4 %5 rămase + + + %1 of %2 (%3/sec) %4 + %1 din %2 (%3/sec) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 din %2 - Întrerupte + + + bytes + biţi + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 descărcare + + + %1 Downloads + always >= 2 + %1 descărcări + + + + WBHistoryModel + + Title + Titlu + + + Address + Adresă + + + + WBHistoryTreeModel + + Earlier Today + Astăzi mai devreme + + + %1 items + %1 articole + + + + WBSearchLineEdit + + Search + Căutare + + + + WBTabBar + + New &Tab + Nou &Tab + + + Clone Tab + Clonare tab + + + &Close Tab + &Închidere tab + + + Close &Other Tabs + Închidere &Alte taburi + + + Reload Tab + Reîncărcare tab + + + Reload All Tabs + Reîncărcare toate tab-urile + + + + WBTabWidget + + Recently Closed Tabs + Tab-uri recent închise + + + (Untitled) + (fără titlu) + + + + WBToolbarSearch + + Search + Căutare + + + No Recent Searches + Nicio căutare recentă + + + Recent Searches + Căutări recente + + + Clear Recent Searches + Ştergere toate căutările recente + + + + WBWebPage + + Download + Descărcare + + + Add to Current Document + Adăugare la documentul curent + + + PDF + PDF + + + Error loading page: %1 + Eroare încărcare pagină: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Deschidere în tab nou + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicare podcast pe YouTube + + + Title + Titlu + + + Description + Descriere + + + Keywords + Cuvinte cheie + + + Category + Categorie + + + YouTube Username + Nume de utilizator YouTube + + + YouTube Password + Parolă YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Făcând clic pe'Încărcare,' certificaţi faptul că deţineţi toate drepturile asupra conţinutului sau că sunteţi autorizat de titular să faceţi public conţinutul pe YouTube şi că este conform în celelalte privinţe cu Termenii de utilizare pentru YouTube de pe</span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + Pe fundal deschis + + + On Dark Background + Pe fundal închis + + + Opacity + Opacitate + + + Line Width + Grosime linie + + + Medium + Medie + + + Strong + Groasă + + + Fine + Subţire + + + Pen is Pressure Sensitive + Stiloul este sensibil la apăsare + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Titlu + + + E-mail + E-mail + + + Author + Autor + + + Description + Descriere + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Titlu + + + E-mail + E-mail + + + Author + Autor + + + Description + Descriere + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Preferinţe + + + version : … + versiune : ... + + + Default Settings + Setări implicite + + + Close + Închidere + + + Display + Afişare + + + Internet + Internet + + + Show Page with External Browser + Afişare pagină cu browser extern + + + Home Page: + Pagina de start: + + + Virtual Keyboard + Tastatură virtuală + + + Keyboard button size: + Dimensiune buton tastatură: + + + Toolbar + Bară de instrumente + + + Positioned at the Top (recommended for tablets) + Poziţionat în partea de sus (recomandat pentru tablete) + + + Positioned at the Bottom (recommended for white boards) + Poziţionat în partea de jos (recomandat pentru table albe) + + + Display Text Under Button + Afişare text sub buton + + + Stylus Palette + Paletă stilou + + + Horizontal + Orizontal + + + Vertical + Vertical + + + Pen + Stilou + + + Marker + Marker + + + About + Despre + + + Software Update + Actualizare software + + + Check software update at launch + Verificare actualizare software la lansare + + + Licences + Licenţe + + + Network + Reţea + + + Show internal web page content on secondary screen or projector + Afişare conţinut pagină de web intern pe ecranul secundar sau pe proiector + + + Multi display + Afişare multiplă + + + Swap control display and view display + Schimbare control afişare cu vizualizare afişare + + + Mode + Mod + + + Mode to start in: + Modul în care se porneşte: + + + Board + Tablă + + + Desktop + Desktop + + + Proxy User: + Utilizator Proxy: + + + Pass: + Parolă: + + + Credits + Credite + + + On Dark Background + Pe fundal închis + + + Opacity + Opacitate + + + On Light Background + Pe fundal deschis + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Blocare flash + + + Select a flash to trap + Selectaţi un flash pentru blocare + + + about:blank + about:blank + + + Application name + Nume aplicaţie + + + Create Application + Creare aplicaţie + + + diff --git a/resources/i18n/OpenBoard_ru.ts b/resources/i18n/OpenBoard_ru.ts new file mode 100644 index 0000000..ece64ae --- /dev/null +++ b/resources/i18n/OpenBoard_ru.ts @@ -0,0 +1,2931 @@ + + + + + BlackoutWidget + + Click to Return to Application + Нажать, чтобы вернуться в приложение + + + + DownloadDialog + + Downloads + Загрузки + + + Clean Up + Очистить + + + 0 Items + 0 элементов + + + + DownloadItem + + Form + Форма + + + Filename + Имя файла + + + Try Again + Попробовать еще + + + Stop + Стоп + + + Open + Открыть + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Разместить подкаст на Youtube + + + Title + Название + + + Description + Описание + + + Author + Автор + + + + MainWindow + + Board + Доска + + + Web + Интернет + + + Documents + Документы + + + Stylus + Инструменты + + + Ctrl+T + Ctrl+T + + + Backgrounds + Фон + + + Change Background + Изменить фон + + + Undo + Отменить + + + Ctrl+Z + Ctrl+Z + + + Redo + Вернуть + + + Ctrl+Y + Ctrl+Y + + + Previous + Назад + + + Previous Page + Предыдущая страница + + + PgUp + PgUp + + + Next + Вперед + + + Next Page + Следующая страница + + + PgDown + PgDown + + + Manage Documents + Управление документами + + + Ctrl+D + Ctrl+D + + + Web Browsing + Веб-браузер + + + Ctrl+W + Ctrl+W + + + Line + Линия + + + Small Line + Тонкая линия + + + Medium Line + Средняя линия + + + Large Line + Толстая линия + + + Quit + Выход + + + Eraser + Ластик + + + Smalle Eraser + Малый ластик + + + Medium Eraser + Средний ластик + + + Large Eraser + Большой ластик + + + Color + Цвет + + + Back + Назад + + + Left + Влево + + + Forward + Вперед + + + Right + Вправо + + + Reload + Перезагрузить + + + Reload Current Page + Перезагрузить текущую страницу + + + Home + Главная + + + Load Home Page + Загрузить главную страницу + + + Bookmarks + Закладки + + + Show Bookmarks + Показать закладки + + + Bookmark + Закладка + + + Add Bookmark + Добавить закладку + + + Display Board + Показать доску + + + Ctrl+B + Ctrl+B + + + Erase + Стереть + + + Erase Content + Стереть содержимое + + + Preferences + Настройки + + + Display Preferences + Показать настройки + + + Library + Библиотека + + + Show Library + Отобразить библиотеку + + + Ctrl+L + Ctrl+L + + + Show Desktop + Рабочий стол + + + Show Computer Desktop + Показать рабочий стол компьютера + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Больше + + + Zoom In + Увеличить + + + Ctrl++ + Ctrl++ + + + Smaller + Меньше + + + Zoom Out + Уменьшить + + + Ctrl+- + Ctrl+- + + + New Folder + Новая папка + + + Create a New Folder + Создать новую папку + + + New Document + Новый документ + + + Create a New Document + Создать новый документ + + + Import + Импорт + + + Import a Document + Импортировать документ + + + Export + Экспорт + + + Export a Document + Экспортировать документ + + + Open in Board + Открыть на доске + + + Open Page in Board + Открыть страницу на доске + + + Ctrl+O + Ctrl+O + + + Duplicate + Дублировать + + + Duplicate Selected Content + Дублировать выбранное содержимое + + + Delete + Удалить + + + Delete Selected Content + Удалить выбранное содержимое + + + Del + Del + + + Add to Working Document + Добавить в рабочий документ + + + Add Selected Content to Open Document + Добавить выбранное содержимое в открытый документ + + + Add + Добавить + + + Add Content to Document + Добавить содержимое в документ + + + Rename + Переименовать + + + Rename Content + Переименовать содержимое + + + Tools + Инструменты + + + Display Tools + Показать инструменты + + + Multi Screen + Многоэкранный + + + Wide Size (16/9) + Широкий формат (16:9) + + + Use Document Wide Size (16/9) + Использовать широкий формат для документа (16:9) + + + Regular Size (4/3) + Обычный формат (4:3) + + + Use Document Regular Size (4/3) + Использовать обычный формат для документа (4:3) + + + Custom Size + Пользовательский формат + + + Use Custom Document Size + Использовать пользовательский формат для документа + + + Stop Loading + Остановить загрузку + + + Stop Loading Web Page + Остановить загрузку веб-страницы + + + Cut + Вырезать + + + Copy + Копировать + + + Paste + Вставить + + + Sleep + Режим ожидания + + + Put Presentation to Sleep + Перевести презентацию в режим ожидания + + + Virtual Keyboard + Виртуальная клавиатура + + + Display Virtual Keyboard + Показать виртуальную клавиатуру + + + Plain Light Background + Однотонный светлый фон + + + Light + Светлый + + + Grid Light Background + Светлый фон с сеткой + + + Plain Dark Background + Однотонный темный фон + + + Dark + Темный + + + Grid Dark Background + Темный фон с сеткой + + + Podcast + Подкаст + + + Record Presentation to Video + Сохранить презентацию как видео + + + Record + Запись + + + Start Screen Recording + Начать запись экрана + + + Erase Items + Стереть элементы + + + Erase All Items + Стереть все элементы + + + Erase Annotations + Стереть примечания + + + Erase All Annotations + Стереть все примечания + + + Clear Page + Очистить страницу + + + Clear All Elements + Очистить все элементы + + + Pen + Перо + + + Annotate Document + Снабдить документ примечаниями + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Удалить примечание + + + Ctrl+E + Ctrl+E + + + Marker + Маркер + + + Highlight + Выделить + + + Ctrl+M + Ctrl+M + + + Selector + Инструмент выделения + + + Select And Modify Objects + Выбрать и изменить объекты + + + Ctrl+F + Ctrl+F + + + Hand + Рука + + + Scroll Page + Прокрутка страницы + + + Laser Pointer + Лазерная указка + + + Virtual Laser Pointer + Виртуальная лазерная указка + + + Ctrl+G + Ctrl+G + + + Draw Lines + Нарисовать линии + + + Ctrl+J + Ctrl+J + + + Text + Текст + + + Write Text + Сделать надпись + + + Ctrl+K + Ctrl+K + + + Capture + Снимок + + + Capture Part of the Screen + Сделать снимок части экрана + + + Add To Current Page + Добавить к текущей странице + + + Add Item To Current Page + Добавить элемент на текущую страницу + + + Add To New Page + Добавить на новую страницу + + + Add Item To New Page + Добавить элемент на новую страницу + + + Add To Library + Добавить в библиотеку + + + Add Item To Library + Добавить элемент в библиотеку + + + Pages + Страницы + + + Create a New Page + Создать новую страницу + + + New Page + Новая страница + + + Duplicate Page + Дублировать страницу + + + Duplicate the Current Page + Дублировать текущую страницу + + + Import Page + Импортировать страницу + + + Import an External Page + Импортировать внешнюю страницу + + + Pause + Пауза + + + Pause Podcast Recording + Пауза при записи подкаста + + + Podcast Config + Конфигурация подкаста + + + Configure Podcast Recording + Конфигурировать запись подкаста + + + Flash Trap + Захват флэш + + + Trap Flash Content + Захват флэш-содержимого + + + Web Trap + Захват веб + + + Trap Web Content + Захват веб-содержимого + + + Custom Capture + Снимок с пользовательскими параметрами + + + Window Capture + Снимок окна + + + Capture a Window + Сделать снимок окна + + + Embed Web Content + Вставить веб-содержимое + + + Capture Embeddable Web Content + Захватить веб-содержимого с возможностью вставки + + + Show on Display + Показать на мониторе + + + Show Main Screen on Display Screen + Показать на мониторе главный экран + + + Erase all Annotations + Удалить все примечания + + + eduMedia + eduMedia + + + Import eduMedia simulation + Импортировать симуляцию eduMedia + + + Check Update + Проверить обновления + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Выйти из OpenBoard + + + Hide OpenBoard + Свернуть OpenBoard + + + Hide OpenBoard Application + Свернуть приложение OpenBoard + + + Play + Играть + + + Interact with items + Взаимодействовать с элементами + + + Erase Background + Очистить доску + + + Remove the backgound + Удалить фон + + + Ruled Light Background + Управляемый светлый фон + + + Ruled Dark Background + Управляемый тёмный фон + + + Open Tutorial + Открыть руководство + + + Open the tutorial web page + Открыть веб-страницу с руководством + + + Reset grid size + Сбросить размер сетки + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Требуется авторизация + + + Username: + Имя пользователя: + + + Password: + Пароль: + + + + ProxyDialog + + Proxy Authentication + Авторизация на прокси-сервере + + + Connect to Proxy + Подключиться к прокси-серверу + + + Username: + Имя пользователя: + + + Password: + Пароль: + + + Save username and password for future use + Сохранить имя пользователя и пароль для будущего использования + + + + QObject + + Element ID = + ID элемента = + + + Content is not supported in destination format. + Не поддерживается в текущем формате. + + + Remove Page + Удалить Страницу + + + Are you sure you want to remove 1 page from the selected document '%0'? + Вы уверены, что хотите удалить 1 страницу из документа '%0'? + + + + UBApplication + + Page Size + Размеры страницы + + + Podcast + Подкаст + + + + UBApplicationController + + Web + Интернет + + + New update available, would you go to the web page ? + Доступны обновления, перейти на страницу? + + + No update available + Нет доступных обновлений + + + Update available + Доступны обновления + + + Update + Обновить + + + + UBBackgroundPalette + + Grid size + Размер сетки + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Ошибка загрузки содержимого из %1 + + + Download finished + Загрузка завершена + + + Unknown tool type %1 + Неизвестный тип инструмента %1 + + + Unknown content type %1 + Неизвестный тип содержимого %1 + + + Add Item + Добавить элемент + + + All Supported (%1) + Все поддерживаемые типы (%1) + + + Delete page %1 from document + Удалить страницу %1 из документа + + + Page %1 deleted + Страница %1 удалена + + + Add file operation failed: file copying error + Операции добавления файла завершена неудачей: ошибка копирования + + + Group + Сгруппировать + + + Ungroup + Разгруппировать + + + Saving document... + Сохранение документа... + + + Document has just been saved... + Документ был только что сохранён... + + + Deleting page %1 + Удаление страницы %1 + + + Color + Цвет + + + + UBBoardPaletteManager + + Error Adding Image to Library + Ошибка добавления изображения в библиотеку + + + CapturedImage + Захватить изображение + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Загрузка страницы (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Свойства кэша + + + Color: + Цвет: + + + Shape: + Форма: + + + Size: + Размеры: + + + Close + Закрыть + + + + UBDesktopPalette + + Capture Part of the Screen + Сделать снимок части экрана + + + Capture the Screen + Сделать снимок экрана + + + Show the stylus palette + Показать инструменты + + + Show Board on Secondary Screen + Показать доску на втором экране + + + Show Desktop on Secondary Screen + Показать раб. стол на втором экране + + + Show OpenBoard + Показать OpenBoard + + + + UBDocumentController + + New Folder + Новая папка + + + Page %1 + Страница %1 + + + Add Folder of Images + Добавить папку с изображениями + + + Add Images + Добавить изображения + + + Add Pages from File + Добавить страницы из файла + + + Duplicating Document %1 + Дублирование документа %1 + + + Document %1 copied + Документ %1 скопирован + + + Remove Page + Удалить страницу + + + Remove Document + Удалить документ + + + Are you sure you want to remove the document '%1'? + Вы уверены, что хотите удалить документ '%1'? + + + Empty Trash + Очистить корзину + + + Are you sure you want to empty trash? + Вы уверены, что хотите очистить корзину? + + + Emptying trash + Очистка корзины + + + Emptied trash + Корзина пуста + + + Remove Folder + Удалить папку + + + Are you sure you want to remove the folder '%1' and all its content? + Вы уверены, что хотите удалить папку '%1 и все ее содержимое? + + + No document selected! + Ничего не выбрано! + + + Open Supported File + Открыть файл поддерживаемого формата + + + Importing file %1... + Импортирование файла %1... + + + Failed to import file ... + Ошибка импорта файла ... + + + Import all Images from Folder + Импортировать все изображения из папки + + + Delete + Удалить + + + Empty + Пусто + + + Trash + Корзина + + + Open Document + Открыть документ + + + Add all Images to Document + Добавить все изображения в документ + + + All Images (%1) + Все изображения (%1) + + + Selection does not contain any image files! + Не выбрано ни одного изображения! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Вы уверены, что хотите удалить %n страницу из выбранного документа '%1'? + Вы уверены, что хотите удалить %n страниц из выбранного документа '%1'? + + + + Folder does not contain any image files + Каталог не содержит файлов изображений + + + Untitled Documents + Документы без Названия + + + duplicated %1 page + duplicated %1 pages + + продублировано %1 страницы + продублировано %1 страниц + + + + Remove Item + Удалить элемент + + + Are you sure you want to remove the selected item(s) ? + Действительно удалить выделенные элементы? + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Документ «%1» был создан в более новой версии OpenBoard (%2). При открытии этого документа может быть потеряна некоторая информация. Продолжить? + + + Title page + Заглавная страница + + + + UBDocumentManager + + images + изображения + + + videos + видео + + + objects + объекты + + + widgets + виджеты + + + All supported files (*.%1) + Все файлы поддерживаемых типов (*.%1) + + + File %1 saved + Файл %1 сохранен + + + Inserting page %1 of %2 + Добавление страницы %1 из %2 + + + Import successful. + Импорт успешно завершен. + + + Import of file %1 successful. + Импорт файла %1 успешно завершен. + + + Importing file %1 + Импорт файла %1 + + + + UBDocumentNavigator + + Page %0 + Страница %0 + + + + UBDocumentPublisher + + Export failed. + Не удалось выполнить экспорт. + + + + UBDocumentReplaceDialog + + Accept + Принять + + + Cancel + Отмена + + + Replace + Заменить + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + Имя «%1» уже используется. +Сохранение под этим именем приведёт к замене документа. +Сохранение под другим именем приведёт к созданию нового документа. + + + + UBDocumentTreeModel + + Trash + Корзина + + + %1 pages copied + + %1 страницы скопировано + %1 страниц скопировано + + + + My documents + Мои документы + + + + UBDocumentTreeView + + %1 pages copied + + %1 страницы скопировано + %1 страниц скопировано + + + + Remove Item + Удалить элемент + + + Are you sure you want to remove the selected item(s) ? + Действительно удалить выделенные элементы? + + + Copying page %1/%2 + Копирование страницы %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (копирование) + + + Copying page %1/%2 + Копирование страницы %1/%2 + + + %1 pages copied + + %1 страницы скопировано + %1 страниц скопировано + + + + + UBDownloadWidget + + Downloading files + Загрузить файлы + + + Cancel + Отмена + + + + UBDraggableThumbnail + + Page %0 + Страница %0 + + + + UBDraggableThumbnailView + + Page %0 + Страница %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Обнаружены предупреждения во время экспорта + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершён. + + + Export failed + Не удалось выполнить экспорт + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Не удалось экспортировать в выбранное расположение. Нет доступа к возможности сохранения. + + + Export failed: location not writable + Не удалось экспортировать: невозможно записать в этот каталог + + + + UBExportCFF + + Export to IWB + Экспорт в IWB + + + Export as IWB File + Экспортировать как IWB файл + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершен. + + + Export failed. + Ошибка экспорта. + + + + UBExportDocument + + Page + Страница + + + Export as UBZ File + Экспортировать как файл UBZ + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершен. + + + Exporting %1 %2 of %3 + Экспорт %1 %2 из %3 + + + Export to OpenBoard Format + Экспортировать в формат OpenBoard + + + + UBExportDocumentSetAdaptor + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершён. + + + Export failed. + Ошибка экспорта. + + + Failed to export... + Не удалось экспортировать... + + + Export as UBX File + Экспортировать как файл UBX + + + Export to OpenBoard UBX Format + Экспортировать в формат OpenBoard UBX + + + + UBExportFullPDF + + Export as PDF File + Экспортировать как файл PDF + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершен. + + + Export to PDF + Экспорт в PDF + + + + UBExportPDF + + Export as PDF File + Экспортировать как файл PDF + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершен. + + + Exporting page %1 of %2 + Экспорт страницы %1 из %2 + + + Export to PDF + Экспорт в PDF + + + + UBExportWeb + + Page + Страница + + + Export as Web data + Экспортировать как веб-данные + + + Exporting document... + Экспорт документа... + + + Export successful. + Экспорт успешно завершен. + + + Export failed. + Ошибка экспорта. + + + Export to Web Browser + Экспорт в веб-браузер + + + + UBFeatureProperties + + Add to page + Добавить на страницу + + + Set as background + Сделать фоновым изображением + + + Add to library + Добавить в библиотеку + + + Object informations + Информация об объекте + + + + UBFeaturesActionBar + + Add to favorites + Добавить в избранное + + + Share + Совместный доступ + + + Search + Поиск + + + Delete + Удалить + + + Back to folder + Назад в папку + + + Remove from favorites + Удалить из избранного + + + Create new folder + Создать новую папку + + + Rescan file system + Пересканировать библиотеку + + + + UBFeaturesController + + ImportedImage + Импортированные изображения + + + Audios + Аудио + + + Movies + Видео + + + Pictures + Картинки + + + Animations + Мультфильмы + + + Interactivities + Интерактивные элементы + + + Applications + Приложения + + + Shapes + Формы + + + Favorites + Избранное + + + Web search + Веб поиск + + + Trash + Корзина + + + + UBFeaturesNewFolderDialog + + Accept + Принять + + + Cancel + Отмена + + + Enter a new folder name + Введите название новой папки + + + + UBFeaturesProgressInfo + + Loading + Загрузка + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Заблокированный + + + Visible on Extended Screen + Видимый на втором экране + + + + UBGraphicsItemDelegate + + Locked + Заблокированный + + + Visible on Extended Screen + Видимый на втором экране + + + Go to Content Source + Перейти к источнику содержимого + + + Set as background + Сделать фоновым изображением + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Не удалось разрешить медиа-ресурс + + + Unsupported media format + Неподдерживаемый формат медиафайла + + + Media playback service not found + Не найдена служба воспроизведения мультимедиа + + + Media error: + Ошибка мультимедиа: + + + + UBGraphicsTextItem + + <Type Text Here> + <Введите здесь текст> + + + + UBGraphicsTextItemDelegate + + Text Color + Цвет текста + + + Editable + Редактируемый + + + + UBGraphicsW3CWidgetItem + + Web + Веб + + + + UBGraphicsWidgetItem + + Loading ... + Загрузка... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Замороженный + + + Transform as Tool + Преобразовать в инструмент + + + + UBImportCFF + + Common File Format ( + Стандартный формат файла ( + + + Importing file %1... + Импорт файла %1... + + + Import of file %1 failed. + Ошибка импорта файла %1. + + + Import successful. + Импорт успешно завершен. + + + Import failed. + Ошибка импорта. + + + + UBImportDocument + + Importing file %1... + Импорт файла %1... + + + Import successful. + Импорт успешно завершен. + + + Import of file %1 failed. + Ошибка импорта файла %1. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + Openboard (набор документов) (*.ubx) + + + + UBImportImage + + Image Format ( + Формат изображения ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + Ошибка импорта PDF. + + + Importing page %1 of %2 + Импорт страницы %1 из %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Ошибка при размещении видео в интранете (%1) + + + Publishing to Intranet in progress %1 % + Ход размещения в интранете %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Опубликовать + + + + UBKeyboardPalette + + Enter + Ввод + + + + UBMainWindow + + Yes + Да + + + No + Нет + + + Ok + Ok + + + + UBMessagesDialog + + Close + Закрыть + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Введите имя пользователя и пароль для "%1" в %2</qt> + + + Failed to log to Proxy + Ошибка входа на прокси-сервер + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Ошибки SSL: + +%1 + +%2 + +Хотите игнорировать эти ошибки для данного хоста? + + + Yes + Да + + + No + Нет + + + + UBOpenSankoreImporterWidget + + Cancel + Отмена + + + Open-Sankore Documents Detected + Найдены документы Open-Sankore + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + На этом компьютере найдены документы Open-Sankore. Их можно импортировать в OpenBoard с помощью кнопки «Продолжить». + + + Show this panel next time + Показывать эту панель в следующий раз + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Доступ к средству импорта документов OpenBoard можно получить из панели «Настройка» на вкладке «О программе». Предупреждение: если данные Open-Sankore уже были импортированы, есть риск потери текущих документов OpenBoard. + + + Proceed + Продолжить + + + + UBPersistenceManager + + (copy) + (копия) + + + Document Repository Loss + Потеря соединения с репозиторием документов + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + Потерян доступ к репозиторию документов «%1». Приложение должно быть закрыто, чтобы избежать повреждения данных. Последние изменения также могут быть утеряны. + + + + UBPlatformUtils + + English + Английский + + + Russian + Русский + + + German + Немецкий + + + French + Французский + + + Swiss French + Шв. французский + + + + UBPodcastController + + Failed to start encoder ... + Ошибка запуска кодировщика... + + + No Podcast encoder available ... + Нет доступного кодировщика для подкаста... + + + Part %1 + Часть %1 + + + on your desktop ... + на вашем раб. столе... + + + in folder %1 + в папке %1 + + + Podcast created %1 + Подкаст создан %1 + + + Podcast recording error (%1) + Ошибка записи подкаста (%1) + + + Default Audio Input + Аудиовход по умолчанию + + + No Audio Recording + Нет записи аудио + + + Small + Малый + + + Medium + Средний + + + Full + Полный + + + Publish to Intranet + Опубликовать в интранете + + + Publish to Youtube + Опубликовать на Youtube + + + OpenBoard Cast + OpenBoard Cast + + + + UBPreferencesController + + version: + версия: + + + Marker is pressure sensitive + Маркер чувствителен к нажиму + + + + UBProxyLoginDlg + + Proxy Login + Вход на прокси-сервер + + + Username: + Имя пользователя: + + + Password: + Пароль: + + + + UBPublicationDlg + + Publish document on the web + Опубликовать документ в вебе + + + Title: + Название: + + + Description: + Описание: + + + Publish + Опубликовать + + + + UBSettings + + My Movies + Мои видеофайлы + + + + UBStartupHintsPalette + + Visible next time + Видимый в следующий раз + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Создание просмотра эскизов... + + + %1 thumbnails generated ... + сгенерированы эскизы %1... + + + + UBThumbnailTextItem + + Page %0 + Страница %0 + + + + UBToolsManager + + Mask + Маска + + + Ruler + Линейка + + + Compass + Циркуль + + + Protractor + Транспортир + + + Triangle + Треугольник + + + Magnifier + Лупа + + + Cache + Кэш + + + Axes + + + + + UBTrapFlashController + + Whole page + Вся страница + + + Web + Веб + + + + UBUpdateDlg + + Document updater + Обновление документа + + + files require an update. + файлы требуют обновления. + + + Backup path: + Путь к резервной копии: + + + Browse + Обзор + + + Update + Обновить + + + Select a backup folder + Выбрать папку для резервной копии + + + Files update successful! +Please reboot the application to access the updated documents. + Обновление файлов завершено успешно! +Перезагрузите приложение, чтобы получить доступ к обновленным документам. + + + An error occured during the update. The files have not been affected. + Во время обновления произошла ошибка. Файлы не изменены. + + + Files update results + Результаты обновления файлов + + + Updating file + Обновление файла + + + Please wait the import process will start soon... + Пожалуйста, подождите, процесс импорта скоро начнется... + + + Remind me later + Напомнить позже + + + + UBWebPluginWidget + + Loading... + Загрузка... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + вызов %0 (метод=%1, статус=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Ошибка авторизации на YouTube. + + + Error while uploading video to YouTube (%1) + Ошибка во время публикации видео на YouTube (%1) + + + Upload to YouTube in progress %1 % + Выполняется загрузка на YouTube %1 % + + + + UBYouTubePublishingDialog + + Upload + Размещение + + + Autos & Vehicles + Авто и транспорт + + + Music + Музыка + + + Pets & Animals + Животные + + + Sports + Спорт + + + Travel & Events + Путешествия и события + + + Gaming + Компьютерные игры + + + Comedy + Юмор + + + People & Blogs + Люди и блоги + + + News & Politics + Новости и политика + + + Entertainment + Развлечения + + + Education + Образование + + + Howto & Style + Обучение и стиль + + + Nonprofits & Activism + Общественные акции + + + Science & Technology + Наука и техника + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Очистить + + + + WBDownloadItem + + Save File + Сохранить файл + + + Download canceled: %1 + Загрузка отменена: %1 + + + Error opening saved file: %1 + Ошибка открытия сохраненного файла: %1 + + + Error saving: %1 + Ошибка сохранения: %1 + + + Network Error: %1 + Ошибка сети: %1 + + + seconds + секунды + + + minutes + минуты + + + - %4 %5 remaining + - %4 %5 остается + + + %1 of %2 (%3/sec) %4 + %1 из %2 (%3/с) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 из %2 - Остановлено + + + bytes + байт + + + KB + КБ + + + MB + МБ + + + + WBDownloadManager + + 1 Download + 1 загрузка + + + %1 Downloads + always >= 2 + %1 загрузок + + + + WBHistoryModel + + Title + Название + + + Address + Адрес + + + + WBHistoryTreeModel + + Earlier Today + Ранее сегодня + + + %1 items + %1 элементов + + + + WBSearchLineEdit + + Search + Поиск + + + + WBTabBar + + New &Tab + Новая &вкладка + + + Clone Tab + Дублировать вкладку + + + &Close Tab + &Закрыть вкладку + + + Close &Other Tabs + Закрыть все &другие вкладки + + + Reload Tab + Перезагрузить вкладку + + + Reload All Tabs + Перезагрузить все вкладки + + + + WBTabWidget + + Recently Closed Tabs + Недавно закрытые вкладки + + + (Untitled) + (Без названия) + + + + WBToolbarSearch + + Search + Поиск + + + No Recent Searches + Нет последних поисков + + + Recent Searches + Последние поиски + + + Clear Recent Searches + Очистить последние поиски + + + + WBWebPage + + Download + Загрузить + + + Add to Current Document + Добавить в текущий документ + + + PDF + PDF + + + Error loading page: %1 + Ошибка загрузки страницы: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Загрузить PDF-документ: загрузить PDF-файл или добавить его в текущий документ OpenBoard? + + + + WBWebView + + Open in New Tab + Открыть в новой вкладке + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Опубликовать подкаст на YouTube + + + Title + Название + + + Description + Описание + + + Keywords + Ключевые слова + + + Category + Категория + + + YouTube Username + Имя пользователя YouTube + + + YouTube Password + Пароль YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Нажав "Загрузить", вы подтверждаете, что обладаете всеми правами на данное содержимое, или что вы были уполномочены владельцем на публикацию данного содержимого на YouTube, или что иным образом удовлетворяете требованиям Условий предоставления услуг YouTube, размещенных по адресу </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + Восстановить учётные данные при перезагрузке + + + + brushProperties + + On Light Background + На светлом фоне + + + On Dark Background + На темном фоне + + + Opacity + Непрозрачность + + + Line Width + Толщина линии + + + Medium + Средняя + + + Strong + Толстая + + + Fine + Тонкая + + + Pen is Pressure Sensitive + Перо чувствительно к нажиму + + + Show preview circle from + Показывать круг предпросмотра из + + + px + пикс. + + + + capturePublishingDialog + + Dialog + Диалог + + + Title + Название + + + E-mail + Электронная почта + + + Author + Автор + + + Description + Описание + + + + documentPublishingDialog + + Dialog + Диалог + + + Title + Название + + + E-mail + Электронная почта + + + Author + Автор + + + Description + Описание + + + + documents + + OpenBoard Documents + Документы OpenBoard + + + Creation date + Дата создания + + + Update date + Дата обновления + + + Alphabetical order + В алфавитном порядке + + + Sort Order + Порядок сортировки + + + + preferencesDialog + + Preferences + Настройки + + + version : … + версия: … + + + Default Settings + Настройки по умолчанию + + + Close + Закрыть + + + Display + Показать + + + Internet + Интернет + + + Show Page with External Browser + Показать страницу во внешнем браузере + + + Home Page: + Главная страница: + + + Virtual Keyboard + Виртуальная клавиатура + + + Keyboard button size: + Размер клавиш клавиатуры: + + + Toolbar + Панель инструментов + + + Positioned at the Top (recommended for tablets) + Расположение вверху (рекомендуется для планшетов) + + + Positioned at the Bottom (recommended for white boards) + Расположение внизу (рекомендуется для белых досок) + + + Display Text Under Button + Показывать текст под кнопками + + + Stylus Palette + Инструменты + + + Horizontal + Горизонтально + + + Vertical + Вертикально + + + Pen + Перо + + + Marker + Маркер + + + About + О программе + + + Software Update + Обновление программы + + + Check software update at launch + Проверять наличие обновлений при запуске + + + Licences + Лицензии + + + Network + Сеть + + + Show internal web page content on secondary screen or projector + Показать содежимое веб страницы на втором мониторе + + + Multi display + Несколько монитров + + + Swap control display and view display + Инвертировать первый и второй монитор + + + Mode + Режим + + + Mode to start in: + Режим при загрузке: + + + Board + Доска + + + Desktop + Десктоп + + + Proxy User: + Прокси пользователь: + + + Pass: + Пароль: + + + Credits + Содержание + + + On Dark Background + На тёмном фоне + + + Opacity + Непрозрачность + + + On Light Background + На светлом фоне + + + Swap first and second view displays + Поменять местами первый и второй монитор + + + Built-in virtual keyboard button size: + Размер кнопок встроенной виртуальной клавиатуры + + + Use system keyboard (recommended) + Использовать системную клавиатуру (рекомендуется) + + + Grid + Сетка + + + Open-Sankoré Importer + Импорт из Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Проверять, могут ли быть данные Open-Sankoré импортированы при запуске + + + Documents Mode + Режим документов + + + Display date column on alphabetical sort + Сортировать столбец с датой в алфавитном порядке + + + Empty trash for documents older than + Очищать корзину от документов старше, чем + + + days + дней + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Захват флеш + + + Select a flash to trap + Выбрать флеш-содержимое для захвата + + + about:blank + about:blank + + + Application name + Название приложения + + + Create Application + Создать приложение + + + diff --git a/resources/i18n/OpenBoard_sk.ts b/resources/i18n/OpenBoard_sk.ts new file mode 100644 index 0000000..c2abbc3 --- /dev/null +++ b/resources/i18n/OpenBoard_sk.ts @@ -0,0 +1,2970 @@ + + + + + BlackoutWidget + + Click to Return to Application + Ak sa chcete vrátiť do aplikácie, kliknite sem + + + + DownloadDialog + + 0 Items + 0 položiek + + + Clean Up + Vymazať všetko + + + Downloads + Stiahnuté súbory + + + + DownloadItem + + Form + Formulár + + + Open + Otvoriť + + + Stop + Zastaviť + + + Filename + Názov súboru + + + Try Again + Skúsiť znova + + + + IntranetPodcastPublishingDialog + + Title + Názov + + + Author + Autor + + + Description + Popis + + + Publish Podcast to YouTube + Publikovať podcast na YouTube + + + + MainWindow + + Add + Pridať + + + Del + Vymazať + + + Cut + Vystrihnúť + + + Pen + Pero + + + Web + Web + + + Back + oproti reťazcu ďalšia strana + Predošlá + + + Copy + Kopírovať + + + Dark + Tmavá + + + Hand + Ruka + + + Home + Úvodná stránka + + + Left + Doľava + + + Line + Čiara + + + Next + strana + Ďalšia + + + PgUp + PgUp + + + Redo + Opakovať zmenu + + + Quit + Skončiť + + + Text + Text + + + Undo + Odvolať zmenu + + + Display Board + Zobraziť tabuľu + + + Board + Tabuľa + + + Color + Farba + + + Erase + Vygumovať + + + Display Tools + Zobraziť nástroje + + + Light + Svetlá + + + Embed Web Content + Vložiť obsah z webu + + + Pages + Stránky + + + Paste + Prilepiť + + + Pause + Pozastaviť + + + Right + Doprava + + + Sleep + Uspať + + + Tools + Nástroje + + + Multi Screen + Viac obrazoviek + + + Put Presentation to Sleep + Uspať prezentáciu + + + New Document + Nový dokument + + + Plain Dark Background + Úplne tmavé pozadie + + + Podcast Config + Nastavenia podcastu + + + Check Update + Vyhľadať aktualizáciu + + + Use Custom Document Size + Použiť vlastnú veľkosť dokumentu + + + Zoom In + Zväčšiť + + + Record Presentation to Video + Nahrať prezentáciu na video + + + Grid Dark Background + Mriežka s tmavým pozadím + + + Large Eraser + Veľká guma + + + Grid Light Background + Mriežka so svetlým pozadím + + + Hide OpenBoard Application + Schovať aplikáciu OpenBoard + + + Import an External Page + Nahrať externú stránku + + + Add Bookmark + Pridať záložku + + + OpenBoard + OpenBoard + + + Clear All Elements + Vyčistiť všetky objekty + + + Scroll Page + Posunúť sa po stránke + + + Small Line + Tenká čiara + + + Library + Knižnica + + + Configure Podcast Recording + Nastaviť nahrávanie podcastu + + + Open Page in Board + Otvoriť stránku na tabuli + + + Bigger + Zväčšiť + + + Ctrl++ + Ctrl++ + + + Ctrl+- + Ctrl+- + + + Ctrl+B + Ctrl+B + + + Ctrl+D + Ctrl+D + + + Ctrl+E + Ctrl+E + + + Ctrl+I + Ctrl+I + + + Ctrl+L + Ctrl+L + + + Ctrl+O + Ctrl+O + + + Ctrl+T + Ctrl+T + + + Ctrl+W + Ctrl+W + + + Ctrl+Y + Ctrl+Y + + + Ctrl+Z + Ctrl+Z + + + Delete + Vymazať + + + Eraser + Guma + + + Export + Exportovať + + + New Folder + Nový priečinok + + + Trap Flash Content + Označiť obsah vo Flashi + + + Import + Nahrať + + + Custom Capture + Vlastný spôsob označenia + + + Marker + Zvýrazňovač + + + PgDown + PgDown + + + Create a New Document + Vytvoriť nový dokument + + + Record + Nahrávať + + + Reload + Obnoviť + + + Rename + Premenovať + + + Stylus + Dotykové pero + + + Quit OpenBoard + Skončiť OpenBoard + + + Custom Size + Vlastná veľkosť + + + Laser Pointer + Laserové ukazovadlo + + + Wide Size (16/9) + Na šírku (16/9) + + + Load Home Page + Nahrať úvodnú stránku + + + Duplicate Page + Duplikovať stránku + + + Duplicate Selected Content + Duplikovať vybraný obsah + + + Bookmarks + Záložky + + + Open in Board + Otvoriť na tabuli + + + Rename Content + Premenovať obsah + + + Zoom Out + Zmenšiť + + + Bookmark + Záložka + + + Add To Current Page + Pridať na aktuálnu stránku + + + Create a New Page + Vytvoriť novú stránku + + + Hide OpenBoard + Schovať OpenBoard + + + Erase All Items + Vygumovať všetky položky + + + Erase Content + Vygumovať obsah + + + Erase Items + Vygumovať položky + + + Duplicate + Duplikovať + + + Add Selected Content to Open Document + Pridať vybraný obsah do otvoreného dokumentu + + + Virtual Keyboard + Virtuálna klávesnica + + + Podcast + Podcast + + + Show Library + Zobraziť knižnicu + + + Medium Eraser + Stredne veľká guma + + + Stop Loading Web Page + Zastaviť nahrávanie webovej stránky + + + Duplicate the Current Page + Duplikovať aktuálnu stránku + + + Pause Podcast Recording + Pozastaviť nahrávanie podcastu + + + Create a New Folder + Vytvoriť nový priečinok + + + Clear Page + Vyčistiť stránku + + + Add To Library + Pridať do knižnice + + + Previous + Predošlá + + + Stop Loading + Zastaviť nahrávanie + + + Reload Current Page + Obnoviť aktuálnu stránku + + + Import Page + Nahrať stránku + + + Draw Lines + Kresliť čiary + + + Capture + Označiť + + + Show Main Screen on Display Screen + V zobrazenej časti obrazovky zobraziť hlavnú obrazovku + + + Flash Trap + Označiť Flash + + + Window Capture + Označiť okno + + + Delete Selected Content + Vymazať vybraný obsah + + + Add Item To New Page + Pridať položku na novú stránku + + + Add Content to Document + Pridať obsah do dokumentu + + + Smaller + Zmenšiť + + + Capture Embeddable Web Content + Označiť obsah z internetu, ktorý sa dá vložiť + + + Write Text + Písať text + + + Documents + Dokumenty + + + Add To New Page + Pridať na novú stránku + + + Regular Size (4/3) + Bežná veľkosť (4/3) + + + Web Trap + Označiť web + + + Display Virtual Keyboard + Zobraziť virtuálnu klávesnicu + + + Show Bookmarks + Zobraziť záložky + + + Use Document Wide Size (16/9) + Zobraziť na šírku dokumentu (16/9) + + + Show Computer Desktop + Zobraziť pracovnú plochu + + + eduMedia + eduMedia + + + Medium Line + Stredne hrubá čiara + + + Previous Page + Predchádzajúca stránka + + + Trap Web Content + Označiť obsah z webu + + + Selector + Oddeľovač + + + Erase all Annotations + Vygumovať všetky poznámky + + + Erase All Annotations + Vygumovať všetky poznámky + + + Export a Document + Exportovať dokument + + + Start Screen Recording + Spustiť nahrávanie obrazovky + + + New Page + Nová stránka + + + Import a Document + Nahrať dokument + + + Import eduMedia simulation + Nahrať simuláciu zo stránky eduMedia + + + Use Document Regular Size (4/3) + Používať bežnú veľkosť dokumentu (4/3) + + + Change Background + Zmeniť pozadie + + + Display Preferences + Zobraziť predvoľby + + + Preferences + Predvoľby + + + Capture Part of the Screen + Označiť časť obrazovky + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Forward + Ďalšia + + + Manage Documents + Riadiť dokumenty + + + Large Line + Hrubá čiara + + + Erase Annotations + Vygumovať poznámky + + + Show on Display + Zobraziť pri projekcii + + + Select And Modify Objects + Vybrať a upraviť objekty + + + Capture a Window + Označiť okno + + + Virtual Laser Pointer + Virtuálne laserové ukazovadlo + + + Plain Light Background + Úplne svetlé pozadie + + + Add Item To Library + Pridať položku do knižnice + + + Web Browsing + Prehliadanie webu + + + Backgrounds + Pozadia + + + Smalle Eraser + spelling mistake in source: should be small + Malá guma + + + Add Item To Current Page + Pridať položku na aktuálnu stránku + + + Add to Working Document + Pridať do aktuálneho dokumentu + + + Highlight + Zvýrazniť + + + Show Desktop + Zobraziť pracovnú plochu + + + Next Page + Ďalšia stránka + + + Annotate Document + Pridať poznámku do dokumentu + + + Erase Annotation + Vygumovať poznámku + + + Play + Prehrať + + + Interact with items + Manipulovať s položkami + + + Erase Background + Vygumovať pozadie + + + Remove the backgound + spelling mistake: should be background + Odstrániť pozadie + + + Open Tutorial + Otvoriť príručku + + + Open the tutorial web page + Otvoriť webovú stránku príručky + + + Ruled Light Background + + + + Ruled Dark Background + + + + Ctrl+M + + + + Ctrl+F + + + + Ctrl+G + + + + Ctrl+J + + + + Ctrl+K + + + + Ctrl+H + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Vyžaduje sa prihlásenie + + + Password: + Heslo: + + + Username: + Používateľské meno: + + + + ProxyDialog + + Save username and password for future use + Používateľské meno a heslo uložiť na použitie v budúcnosti + + + Connect to Proxy + Pripojiť sa k proxy + + + Proxy Authentication + Prihlásenie na proxy + + + Password: + Heslo: + + + Username: + Používateľské meno: + + + + QObject + + Element ID = + ID prvku = + + + Content is not supported in destination format. + Obsah nie je podporovaný v cieľovom formáte. + + + Remove Page + Odstrániť stránku + + + Are you sure you want to remove 1 page from the selected document '%0'? + Určite chcete odstrániť 1 stránku z vybraného dokumentu '%0'? + + + + UBApplication + + Podcast + Podcast + + + Page Size + Veľkosť stránky + + + + UBApplicationController + + Web + Web + + + Update + Aktualizovať + + + No update available + Žiadna aktualizácia nie je k dispozícii + + + New update available, would you go to the web page ? + K dispozícii je nová aktualizácia. Chcete prejsť na webovú stránku? + + + Update available + K dispozícii je aktualizácia + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + All Supported (%1) + Všetky podporované (%1) + + + Downloading content %1 failed + Nepodarilo sa stiahnuť %1 + + + Unknown content type %1 + Neznámy typ obsahu (%1) + + + Add Item + Pridať položku + + + Unknown tool type %1 + Neznámy typ nástroja %1 + + + Download finished + Sťahovanie bolo dokončené + + + Delete page %1 from document + Vymazať stránku %1 z dokumentu + + + Page %1 deleted + Stránka %1 bola vymazaná + + + Add file operation failed: file copying error + Nepodarilo sa pridať súbor: chyba pri kopírovaní súboru + + + Group + Zoskupiť + + + Ungroup + Oddeliť + + + Saving document... + Dokument sa ukladá... + + + Document has just been saved... + Dokument bol uložený. + + + Deleting page %1 + + + + Color + Farba + + + + UBBoardPaletteManager + + Error Adding Image to Library + Chyba pri pridávaní obrázka do knižnice + + + CapturedImage + Označený obrázok + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Close + Zatvoriť + + + Size: + Veľkosť: + + + Color: + Farba: + + + Shape: + Tvar: + + + Cache Properties + Vlastnosti baterky + + + + UBDesktopPalette + + Show Desktop on Secondary Screen + Zobraziť pracovnú plochu na druhej obrazovke + + + Capture the Screen + Označiť obrazovku + + + Show the stylus palette + Zobraziť paletu pre interaktívne pero + + + Capture Part of the Screen + Označiť časť obrazovky + + + Show Board on Secondary Screen + Zobraziť tabuľu na druhej obrazovke + + + Show OpenBoard + Zobraziť OpenBoard + + + + UBDocumentController + + Empty + Vyprázdniť + + + Trash + Kôš + + + Are you sure you want to empty trash? + Určite chcete vyprázdniť kôš? + + + Are you sure you want to remove the folder '%1' and all its content? + Určite chcete odstrániť priečinok "%1" a celý jeho obsah? + + + Open Supported File + Otvoriť podporovaný súbor + + + Remove Document + Odstrániť dokument + + + All Images (%1) + Všetky obrázky (%1) + + + Selection does not contain any image files! + Vo výbere nie je žiaden súbor obrázka! + + + Open Document + Otvoriť dokument + + + Add Folder of Images + Pridať priečinok s obrázkami + + + Delete + Vymazať + + + New Folder + Nový priečinok + + + Add Images + Pridať obrázky + + + Duplicating Document %1 + Duplikuje sa dokument %1 + + + Page %1 + Stránka %1 + + + Document %1 copied + Dokument %1 bol skopírovaný + + + Importing file %1... + Nahráva sa súbor %1... + + + Failed to import file ... + Súbor sa nepodarilo nahrať... + + + Are you sure you want to remove the document '%1'? + Určite chcete odstrániť dokument "%1"? + + + Emptied trash + Kôš bol vyprázdnený + + + Empty Trash + Vyprázdniť kôš + + + Remove Folder + Odstrániť priečinok + + + Remove Page + Odstrániť stránku + + + No document selected! + Nevybrali ste žiaden dokument! + + + Import all Images from Folder + Nahrať všetky obrázky z priečinka + + + Emptying trash + Vyprázdňuje sa kôš + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Určite chcete odstrániť %n stránku z vybraného dokumentu %1? + Určite chcete odstrániť %n stránky z vybraného dokumentu %1? + Určite chcete odstrániť %n stránok z vybraného dokumentu %1? + + + + Add all Images to Document + Pridať všetky obrázky do dokumentu + + + Add Pages from File + Pridať stránky zo súboru + + + Folder does not contain any image files + V priečinku nie sú žiadne súbory obrázkov + + + Untitled Documents + Dokumenty bez názvu + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Dokument '%1' bol vytvorený v novšej verzii OpenBoardu (%2). Ak ho otvoríte v tejto, aktuálnej verzii, môže dôjsť k strate údajov. Chcete napriek tomu pokračovať? + + + Are you sure you want to remove all selected documents? + Určite chcete odstrániť všetky vybrané dokumenty? + + + Remove multiple documents + Odstránenie viacerých dokumentov + + + duplicated %1 page + duplicated %1 pages + + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Title page + + + + + UBDocumentManager + + All supported files (*.%1) + Všetky podporované súbory (*.%1) + + + objects + objekty + + + images + obrázky + + + videos + videá + + + widgets + widgety + + + File %1 saved + Súbor %1 bol uložený + + + Inserting page %1 of %2 + Vkladá sa stránka %1 z(o) %2 + + + Import successful. + Nahrávanie bolo úspešné. + + + Import of file %1 successful. + Nahrávanie súboru %1 bolo úspešné. + + + Importing file %1 + Nahráva sa súbor %1 + + + + UBDocumentNavigator + + Page %0 + Stránka %0 + + + + UBDocumentReplaceDialog + + Accept + Prijať + + + Cancel + Zrušiť + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Kôš + + + %1 pages copied + + %1 skopírovaná stránka + %1 skopírované stránky + %1 skopírovaných stránok + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 skopírovaná stránka + %1 skopírované stránky + %1 skopírovaných stránok + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopíruje sa stránka %1/%2 + + + + UBDocumentTreeWidget + + %1 pages copied + + %1 skopírovaná stránka + %1 skopírované stránky + %1 skopírovaných stránok + + + + %1 (copy) + %1 (kópia) + + + Copying page %1/%2 + Kopíruje sa stránka %1/%2 + + + + UBDownloadWidget + + Downloading files + Sťahujú sa súbory + + + Cancel + Zrušiť + + + + UBDraggableThumbnail + + Page %0 + Stránka %0 + + + + UBDraggableThumbnailView + + Page %0 + Stránka %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Počas exportu sa objavili varovania + + + Exporting document... + Exportuje sa dokument... + + + Export failed + Export zlyhal + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Do vybraného umiestnenia sa nedá exportovať. Na uloženie súboru nemáte dostatočné oprávnenia. + + + Export failed: location not writable + Export sa nepodaril: do umiestnenia sa nedá zapisovať + + + Export successful. + Export bol úspešný. + + + + UBExportCFF + + Export to IWB + Exportovať do IWB + + + Export as IWB File + Exportovať ako súbor IWB + + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + Export failed. + Export sa nepodaril. + + + + UBExportDocument + + Page + Stránka + + + Export as UBZ File + Exportovať ako súbor UBZ + + + Exporting %1 %2 of %3 + Exportuje sa %1 %2 z(o) %3 + + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + Export to OpenBoard Format + Exportovať do formátu OpenBoard + + + Export failed: location not writable + Export sa nepodaril: do umiestnenia sa nedá zapisovať + + + Export failed + Export zlyhal + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Do vybraného umiestnenia sa nedá exportovať. Na uloženie súboru nemáte dostatočné oprávnenia. + + + + UBExportDocumentSetAdaptor + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + Failed to export... + + + + Export as UBX File + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportovať ako súbor PDF + + + Export to PDF + Exportovať do PDF + + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + Export failed: location not writable + Export sa nepodaril: do umiestnenia sa nedá zapisovať + + + Export failed + Export zlyhal + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Do vybraného umiestnenia sa nedá exportovať. Na uloženie súboru nemáte dostatočné oprávnenia. + + + + UBExportPDF + + Export as PDF File + Exportovať ako súbor PDF + + + Export to PDF + Exportovať do PDF + + + Exporting page %1 of %2 + Exportuje sa stránka %1 z(o) %2 + + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + + UBExportWeb + + Page + Stránka + + + Export failed. + Export zlyhal. + + + Export as Web data + Exportovať ako webové dáta + + + Exporting document... + Exportuje sa dokument... + + + Export successful. + Export bol úspešný. + + + Export to Web Browser + Exportovať do webového prehliadača + + + + UBFeatureProperties + + Add to page + Pridať na stránku + + + Set as background + Nastaviť ako pozadie + + + Add to library + Pridať do knižnice + + + Object informations + Informácie o objekte + + + + UBFeaturesActionBar + + Add to favorites + Pridať do obľúbených položiek + + + Share + Zdieľať* + + + Search + Vyhľadať + + + Delete + Vymazať + + + Back to folder + Späť do priečinka + + + Remove from favorites + Odstrániť z obľúbených položiek + + + Create new folder + Vytvoriť nový priečinok + + + Rescan file system + Znova prejsť systém súborov + + + + UBFeaturesController + + ImportedImage + NahranýObrázok + + + Audios + Zvukové nahrávky + + + Movies + Filmy + + + Pictures + Obrázky + + + Animations + Animácie + + + Interactivities + Interaktívne aktivity + + + Applications + Aplikácie + + + Shapes + Geometrické útvary + + + Favorites + Obľúbené + + + Web search + Vyhľadávanie na webe + + + Trash + Kôš + + + + UBFeaturesNewFolderDialog + + Accept + Prijať + + + Cancel + Zrušiť + + + Enter a new folder name + Zadajte názov nového priečinka + + + + UBFeaturesProgressInfo + + Loading + Nahrávanie + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Zamknuté + + + Visible on Extended Screen + Zobraziť na rozšírenej obrazovke + + + + UBGraphicsItemDelegate + + Go to Content Source + Prejsť na zdroj + + + Locked + Zamknuté + + + Visible on Extended Screen + Zobraziť na rozšírenej obrazovke + + + Set as background + Nastaviť ako pozadie + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Nepodarilo sa identifikovať nástroj na prácu s médiom + + + Unsupported media format + Nepodporovaný typ média + + + Media playback service not found + Služba na prehratie média sa nenašla + + + Media error: + Chyba média: + + + + UBGraphicsTextItem + + <Type Text Here> + <Text napíšte sem> + + + + UBGraphicsTextItemDelegate + + Text Color + Farba textu + + + Editable + Dá sa upravovať + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Nahráva sa... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Zamrznuté + + + Transform as Tool + Zmeniť ako nástroj + + + + UBImportCFF + + Importing file %1... + Nahráva sa súbor %1... + + + Import failed. + Nahrávanie zlyhalo. + + + Import of file %1 failed. + Nepodarilo sa nahrať súbor %1. + + + Common File Format ( + Bežný formát súboru ( + + + Import successful. + Nahrávanie bolo úspešné. + + + + UBImportDocument + + Importing file %1... + Nahráva sa súbor %1... + + + Import of file %1 failed. + Nepodarilo sa nahrať súbor %1. + + + Import successful. + Nahrávanie bolo úspešné. + + + OpenBoard (*.ubz) + OpenBoard (*.ubz) + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Súbor obrázka ( + + + + UBImportPDF + + PDF import failed. + Nahrávanie do PDF zlyhalo. + + + Importing page %1 of %2 + Nahráva sa stránka %1 z(o) %2 + + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + + UBIntranetPodcastPublisher + + Publishing to Intranet in progress %1 % + Prebieha publikovanie na intranet %1 % + + + Error while publishing video to intranet (%1) + Chyba pri publikovaní videa na intranet (%1) + + + + UBIntranetPodcastPublishingDialog + + Publish + Publikovať + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + No + Nie + + + Ok + Ok + + + Yes + Áno + + + + UBMessagesDialog + + Close + Zatvoriť + + + + UBNetworkAccessManager + + No + Nie + + + Yes + Áno + + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Zadajte používateľské meno a heslo pre "%1" na %2</qt> + + + Failed to log to Proxy + Nepodarilo sa prihlásiť na proxy + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Chyby SSL: + +%1 + +%2 + +Chcete ignorovať tieto chyby na tomto serveri? + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Našli sa dokumenty Open-Sankoré + + + Show this panel next time + Tento panel zobraziť aj nabudúce + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Nahrávanie dokumentov môžete kedykoľvek spustiť z karty O programe na paneli Predvoľby. Pozor, ak ste už nahrali dáta z Open-Sankoré, môžete ich spúšťať ako dokumenty vytvorené v OpenBoarde. + + + Cancel + Zrušiť + + + Proceed + Pokračovať + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Vo vašom počítači sa nachádzajú dokumenty Open-Sankoré. Do OpenBoardu ich môžete nahrať stlačením tlačidla Pokračovať, ktorým sa spustí aplikácia na nahrávanie. + + + + UBPersistenceManager + + (copy) + (kópia) + + + Document Repository Loss + Strata úložiska dokumentov + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + stratil prístup k úložisku dokumentov '%1'. Aplikácia sa musí zatvoriť, aby sa predišlo poškodeniu dát. Možno nebudú uložené ani najnovšie zmeny. + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Angličtina + + + Russian + Ruština + + + German + Nemčina + + + French + Francúzština + + + Swiss French + Švajčiarska francúzština + + + + UBPodcastController + + Full + Vysoké rozlíšenie + + + Small + Nízke rozlíšenie + + + Podcast recording error (%1) + Chyba pri nahrávaní podcastu (%1) + + + No Podcast encoder available ... + Žiaden kódovač podcastu nie je k dispozícii. + + + Publish to Youtube + inconsistent: elswhere written as YouTube + Publikovať na Youtube + + + Medium + Stredne vysoké rozlíšenie + + + in folder %1 + v priečinku %1 + + + Part %1 + Časť %1 + + + Podcast created %1 + Podcast vytvorený %1 + + + No Audio Recording + Žiadna zvuková nahrávka + + + Publish to Intranet + Publikovať na intranet + + + on your desktop ... + na vašu pracovnú plochu... + + + Default Audio Input + Predvolený vstup pre zvuk + + + Failed to start encoder ... + Nepodarilo sa spustiť kódovač... + + + OpenBoard Cast + Názov súboru podcastu + Film OpenBoardu + + + + UBPreferencesController + + version: + verzia: + + + Marker is pressure sensitive + Zvýrazňovač je citlivý na tlak + + + + UBProxyLoginDlg + + Password: + Heslo: + + + Proxy Login + Prihlásenie na proxy + + + Username: + Používateľské meno: + + + + UBPublicationDlg + + Description: + Popis: + + + Title: + Názov: + + + Publish + Publikovať + + + Publish document on the web + Publikovať dokument na internet + + + + UBSettings + + My Movies + Moje filmy + + + + UBStartupHintsPalette + + Visible next time + Zobraziť aj nabudúce + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + %1 thumbnails generated ... + %1 vytvorených miniatúr... + + + Generating preview thumbnails ... + Vytvárajú sa ukážky miniatúr... + + + + UBThumbnailTextItem + + Page %0 + Stránka %0 + + + + UBToolsManager + + Mask + Clona + + + Cache + Baterka + + + Ruler + Pravítko + + + Triangle + Trojuholník + + + Compass + Kružidlo + + + Protractor + Uhlomer + + + Magnifier + Lupa + + + Axes + + + + + UBTrapFlashController + + Web + Web + + + Whole page + Celá stránka + + + + UBUpdateDlg + + Document updater + Aktualizácia dokumentu + + + Please wait the import process will start soon... + Prosím, počkajte, proces nahrávania sa čoskoro začne... + + + Files update successful! +Please reboot the application to access the updated documents. + Aktualizácia bola úspešne dokončená! +Reštartujte aplikáciu, aby ste mohli pracovať s aktualizovanými dokumentmi. + + + Browse + Prehľadávať + + + Select a backup folder + Vyberte priečinok zálohy + + + files require an update. + súbory si vyžadujú aktualizáciu. + + + Update + Aktualizovať + + + An error occured during the update. The files have not been affected. + Počas aktualizácie sa vyskytla chyba. Súbory to neovplyvnilo. + + + Files update results + Výsledky aktualizácie súborov + + + Backup path: + Umiestnenie zálohy: + + + Updating file + Prebieha aktualizácia súboru + + + Remind me later + Pripomenúť mi neskôr + + + + UBWebPluginWidget + + Loading... + Nahráva sa... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 vyvolané (metóda = %1, stav = %2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Nepodarilo sa prihlásiť na YouTube. + + + Error while uploading video to YouTube (%1) + Chyba pri nahrávaní videa na YouTube (%1) + + + Upload to YouTube in progress %1 % + Prebieha nahrávanie na YouTube %1 % + + + + UBYouTubePublishingDialog + + Music + Hudba + + + People & Blogs + Ľudia a blogy + + + Nonprofits & Activism + Neziskovky a aktivisti + + + Comedy + Komédia + + + Gaming + Hry + + + Sports + Šport + + + Upload + Nahrať + + + Science & Technology + Veda a technika + + + Howto & Style + Návody a štýl + + + Education + Vzdelávanie + + + Entertainment + Zábava + + + Travel & Events + Cestovanie a udalosti + + + News & Politics + Správy a politika + + + Pets & Animals + Zvieratá + + + Autos & Vehicles + Autá a dopravné prostriedky + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Vyčistiť + + + + WBDownloadItem + + KB + kB + + + MB + MB + + + bytes + bytov + + + - %4 %5 remaining + – zostáva %4 %5 + + + minutes + minút(y) + + + Error opening saved file: %1 + Chyba pri otváraní uloženého súboru: %1 + + + seconds + sekúnd + + + Error saving: %1 + Chyba pri ukladaní súboru: %1 + + + Download canceled: %1 + Sťahovanie súboru bolo zrušené: %1 + + + %1 of %2 - Stopped + %1 z(o) %2 – zastavené + + + Save File + Uložiť súbor + + + %1 of %2 (%3/sec) %4 + %1 z(o) %2 (%3/sek) %4 + + + Network Error: %1 + Chyba siete: %1 + + + ? + unknown file size + ? + + + + WBDownloadManager + + 1 Download + 1 stiahnutý súbor + + + %1 Downloads + always >= 2 + %1 stiahnuté súbory + + + + WBHistoryModel + + Title + Názov + + + Address + Adresa + + + + WBHistoryTreeModel + + %1 items + 2,3,4 položky, 0, >=5 položiek + %1 položiek + + + Earlier Today + Dnes + + + + WBSearchLineEdit + + Search + Hľadať + + + + WBTabBar + + Reload All Tabs + Obnoviť všetky karty + + + Reload Tab + Obnoviť kartu + + + Clone Tab + Duplikovať kartu + + + &Close Tab + &Zatvoriť kartu + + + Close &Other Tabs + Zatvoriť &ostané karty + + + New &Tab + Nová &karta + + + + WBTabWidget + + (Untitled) + (Bez názvu) + + + Recently Closed Tabs + Nedávno zatvorené karty + + + + WBToolbarSearch + + Recent Searches + Nedávne vyhľadávania + + + Search + Vyhľadať + + + No Recent Searches + Žiadne nedávne vyhľadávania + + + Clear Recent Searches + Vymazať nedávne vyhľadávania + + + + WBWebPage + + PDF + PDF + + + Add to Current Document + Pridať do aktuálneho dokumentu + + + Download + Stiahnuť + + + Error loading page: %1 + Chyba pri nahrávaní stránky: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Sťahovanie dokumentu PDF: chcete súbor PDF radšej stiahnuť alebo pridať do aktuálneho dokumentu? + + + + WBWebView + + Open in New Tab + Otvoriť na novej karte + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Title + Názov + + + YouTube Username + Používateľské meno na YouTube + + + YouTube Password + Heslo na YouTube + + + Category + Kategória + + + Description + Popis + + + Publish Podcast to YouTube + Publikovať podcast na YouTube + + + Keywords + Kľúčové slová + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Kliknutím na "Upload" (Nahrať) potvrdzujete, že máte všetky práva k materiálu alebo že máte písomný súhlas vlastníka týchto práv na zverejnenie materiálu na sieti YouTube a že materiál je v súlade s podmienkami využívania služieb siete YouTube, ktorých aktuálne znenie sa nachádza na adrese </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + Po reštarte obnoviť prihlasovacie údaje + + + + brushProperties + + Fine + Tenká + + + Medium + Stredne hrubá + + + Strong + Hrubá + + + Opacity + Priehľadnosť + + + Line Width + Šírka čiary + + + On Light Background + Na svetlom pozadí + + + Pen is Pressure Sensitive + Pero je citlivé na tlak + + + On Dark Background + Na tmavom pozadí + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Title + Názov + + + E-mail + E-mail + + + Author + Autor + + + Dialog + Dialóg + + + Description + Popis + + + + documentPublishingDialog + + Dialog + Dialóg + + + Title + Názov + + + E-mail + E-mail + + + Author + Autor + + + Description + Popis + + + + documents + + OpenBoard Documents + Dokumenty OpenBoardu + + + Creation date + Dátum vytvorenia + + + Update date + Dátum úpravy + + + Alphabetical order + Podľa abecedy + + + Sort Order + Kritérium triedenia + + + + preferencesDialog + + Pen + Pero + + + About + O programe + + + Close + Zatvoriť + + + Horizontal + Vodorovná + + + Display Text Under Button + Pod tlačidlom zobraziť text + + + Show Page with External Browser + Stránku zobraziť v externom prehliadači + + + Default Settings + Predvolené nastavenia + + + Network + Sieť + + + Positioned at the Bottom (recommended for white boards) + Je umiestnený dole (odporúča sa pre tabule) + + + Marker + Zvýrazňovač + + + Internet + Internet + + + Positioned at the Top (recommended for tablets) + Je umiestnený navrchu (odporúča sa pre tablety) + + + Virtual Keyboard + Virtuálna klávesnica + + + Home Page: + Úvodná stránka: + + + Check software update at launch + Pri spustení programu vyhľadať aktualizáciu + + + Software Update + Aktualizácia programu + + + Keyboard button size: + Veľkosť tlačidla klávesnice: + + + Stylus Palette + Paleta pre interaktívne pero + + + Display + Zobraziť + + + Toolbar + Panel s nástrojmi + + + Vertical + Zvislá + + + Preferences + Predvoľby + + + version : … + Verzia:... + + + Licences + Licencie + + + Multi display + Viac obrazoviek + + + Show internal web page content on secondary screen or projector + Na druhej obrazovke alebo projektore zobraziť obsah internej webovej stránky + + + Swap control display and view display + Prehodiť ovládaciu obrazovku a zobrazovaciu obrazovku + + + Mode + Režim + + + Mode to start in: + Režim pri štarte: + + + Board + Tabuľa + + + Desktop + Pracovná plocha + + + Proxy User: + Použ. meno na proxy: + + + Pass: + Heslo: + + + Credits + Poďakovanie + + + Open-Sankoré Importer + Nahrávanie z Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Zistiť, či pri spustení možno nahrať dáta Open-Sankoré + + + Use system keyboard (recommended) + Používať systémovú klávesnicu (odporúča sa) + + + Built-in virtual keyboard button size: + Veľkosť tlačidla zabudovanej virtuálnej klávesnice: + + + On Dark Background + Na tmavom pozadí + + + Opacity + Priehľadnosť + + + On Light Background + Na svetlom pozadí + + + Swap first and second view displays + Vymeniť obrazovku 1. a 2. zobrazenia + + + Grid + Mriežka + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Označiť flash + + + Select a flash to trap + Vyberte flash, ktorý chcete označiť + + + about:blank + about:blank + + + Application name + Názov aplikácie + + + Create Application + Vytvoriť aplikáciu + + + diff --git a/resources/i18n/OpenBoard_sv.ts b/resources/i18n/OpenBoard_sv.ts new file mode 100644 index 0000000..eed47fc --- /dev/null +++ b/resources/i18n/OpenBoard_sv.ts @@ -0,0 +1,2930 @@ + + + + + BlackoutWidget + + Click to Return to Application + Klicka för att återgå till applikationen + + + + DownloadDialog + + Downloads + Hämtningar + + + Clean Up + Rensa + + + 0 Items + 0 objekt + + + + DownloadItem + + Form + Formulär + + + Filename + Filnamn + + + Try Again + Försök igen + + + Stop + Stopp + + + Open + Öppna + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Publicera Podcast på YouTube + + + Title + Titel + + + Description + Beskrivning + + + Author + Författare + + + + MainWindow + + Board + Tavla + + + Web + Nät + + + Documents + Dokument + + + Stylus + Pekpenna + + + Ctrl+T + Ctrl+T + + + Backgrounds + Bakgrund + + + Change Background + Ändra bakgrund + + + Undo + Ångra + + + Ctrl+Z + Ctrl+Z + + + Redo + Gör om inmatning + + + Ctrl+Y + Ctrl+Y + + + Previous + Föregående + + + Previous Page + Föregående sida + + + PgUp + Rulla uppåt + + + Next + Nästa + + + Next Page + Nästa sida + + + PgDown + Rulla nedåt + + + Manage Documents + Hantera dokument + + + Ctrl+D + Ctrl+D + + + Web Browsing + Bläddra + + + Ctrl+W + Ctrl+W + + + Line + Linje + + + Small Line + Liten linje + + + Medium Line + Medium linje + + + Large Line + stor linje + + + Quit + Avsluta + + + Eraser + Sudd + + + Smalle Eraser + Litet sudd + + + Medium Eraser + Medium sudd + + + Large Eraser + Stort sudd + + + Color + Färg + + + Back + Backa + + + Left + Vänster + + + Forward + Framåt + + + Right + Höger + + + Reload + Uppdatera + + + Reload Current Page + Uppdatera aktuell sida + + + Home + Hem + + + Load Home Page + Ladda startsida + + + Bookmarks + Bokmärken + + + Show Bookmarks + Visa bokmärken + + + Bookmark + Lägg till bokmärke + + + Add Bookmark + Lägg till bokmärke + + + Display Board + Visa tavla + + + Ctrl+B + Ctrl+B + + + Erase + Radera + + + Erase Content + Radera innehåll + + + Preferences + Inställningar + + + Display Preferences + Visa inställningar + + + Library + Bibliotek + + + Show Library + Visa bibliotek + + + Ctrl+L + Ctrl+L + + + Show Desktop + Visa skrivbord + + + Show Computer Desktop + Visa datorns skrivbord + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Förstora + + + Zoom In + Zooma in + + + Ctrl++ + Ctrl++ + + + Smaller + Förminska + + + Zoom Out + Zooma ut + + + Ctrl+- + Ctrl+- + + + New Folder + Ny mapp + + + Create a New Folder + Skapa ny mapp + + + New Document + Nytt dokument + + + Create a New Document + Skapa nytt dokument + + + Import + Importera + + + Import a Document + Importera ett dokument + + + Export + Exportera + + + Export a Document + Exportera ett dokument + + + Open in Board + Öppna i tavla + + + Open Page in Board + Öppna sida i tavla + + + Ctrl+O + Ctrl+O + + + Duplicate + Duplicera + + + Duplicate Selected Content + Duplicera markerat innehåll + + + Delete + Radera + + + Delete Selected Content + Radera markerat innehåll + + + Del + Radera + + + Add to Working Document + Lägg till i arbetsdokumentet + + + Add Selected Content to Open Document + Lägg till markerat innehåll i öppet dokument + + + Add + Lägg till + + + Add Content to Document + Lägg till innehåll till dokument + + + Rename + Byt namn + + + Rename Content + Byt namn på innehåll + + + Tools + Verktyg + + + Display Tools + Visa verktyg + + + Multi Screen + Multi skärm + + + Wide Size (16/9) + Bred storlek (16/9) + + + Use Document Wide Size (16/9) + Använd bred dokumentstorlek (16/9) + + + Regular Size (4/3) + Normal storlek (4/3) + + + Use Document Regular Size (4/3) + Använd normal dokumentstorlek (4/3) + + + Custom Size + Anpassad storlek + + + Use Custom Document Size + Använd anpassad dokumentstorlek + + + Stop Loading + Sluta ladda + + + Stop Loading Web Page + Sluta ladda web sida + + + Cut + Klipp + + + Copy + Kopiera + + + Paste + Klistra in + + + Sleep + Viloläge + + + Put Presentation to Sleep + Sätt presentation i viloläge + + + Virtual Keyboard + Virtuellt tangentbord + + + Display Virtual Keyboard + Visa virtuellt tangentbord + + + Plain Light Background + Enkel ljus bakgrund + + + Light + Ljus + + + Grid Light Background + Rutig ljus bakgrund + + + Plain Dark Background + Enkel mörk bakgrund + + + Dark + Mörk + + + Grid Dark Background + Rutig mörk bakgrund + + + Podcast + Podcast + + + Record Presentation to Video + Spela in presentation till video + + + Record + Spela in + + + Start Screen Recording + Starta skärminspelning + + + Erase Items + Radra objekt + + + Erase All Items + Radera alla objekt + + + Erase Annotations + Radera kommetarer + + + Erase All Annotations + Radera alla kommentarer + + + Clear Page + Rensa sida + + + Clear All Elements + Rensa alla element + + + Pen + Penna + + + Annotate Document + Kommentera dokument + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Radera kommetar + + + Ctrl+E + Ctrl+E + + + Marker + Markör + + + Highlight + Markera + + + Ctrl+M + Ctrl+M + + + Selector + Väljare + + + Select And Modify Objects + Markera och ändra objekt + + + Ctrl+F + Ctrl+F + + + Hand + Hand + + + Scroll Page + Rulla sida + + + Laser Pointer + Laser pekare + + + Virtual Laser Pointer + Virtuellt laserpekare + + + Ctrl+G + Ctrl+G + + + Draw Lines + Rita linjer + + + Ctrl+J + Ctrl+J + + + Text + Text + + + Write Text + Skriv text + + + Ctrl+K + Ctrl+K + + + Capture + Fånga + + + Capture Part of the Screen + Fånga en del av skärmen + + + Add To Current Page + Lägg till aktuell sida + + + Add Item To Current Page + Lägg objekt till aktuell sida + + + Add To New Page + Lägg till ny sida + + + Add Item To New Page + Lägg objekt till ny sida + + + Add To Library + Lägg till bibliotek + + + Add Item To Library + Lägg objekt till bibliotek + + + Pages + Sidor + + + Create a New Page + Skapa ny sida + + + New Page + Ny sida + + + Duplicate Page + Duplicera sida + + + Duplicate the Current Page + Duplicera aktuell sida + + + Import Page + Importera sida + + + Import an External Page + Importera extern sida + + + Pause + Paus + + + Pause Podcast Recording + Pausa inspelning av podcast + + + Podcast Config + Anpassa Podcast + + + Configure Podcast Recording + Anpassa inspelning av Podcast + + + Flash Trap + Lagra flash + + + Trap Flash Content + Lagra flash innehål + + + Web Trap + Lagra web + + + Trap Web Content + Lagra webinnehål + + + Custom Capture + Anpassa fånga + + + Window Capture + Fönster fånga + + + Capture a Window + Fånga ett fönster + + + Embed Web Content + Inbäddat webinnehåll + + + Capture Embeddable Web Content + Fånga inbäddat webinnehåll + + + Show on Display + Visa på skärm + + + Show Main Screen on Display Screen + Visa primärskärm på visningsskärm + + + Erase all Annotations + Radera alla kommentarer + + + eduMedia + utbMedia + + + Import eduMedia simulation + Importera utbMedia simulation + + + Check Update + Kontrollera uppdatering + + + Ctrl+H + Ctrl+H + + + OpenBoard + Öppna Sankoré + + + Quit OpenBoard + Lämna öppen Sankoré + + + Hide OpenBoard + Göm öppen Sankoré + + + Hide OpenBoard Application + Göm öppen Sankoré applikation + + + Play + Spela + + + Interact with items + Interagera med objekt + + + Erase Background + Radera bakgrund + + + Remove the backgound + Ta bort bakgrund + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Inloggning krävs + + + Username: + Användarnamn: + + + Password: + Lösenord: + + + + ProxyDialog + + Proxy Authentication + Proxy verifiering + + + Connect to Proxy + Anslut till proxy + + + Username: + Användarnamn: + + + Password: + Lösenord: + + + Save username and password for future use + Sapara användarnamn och lösenord för framtida användning + + + + QObject + + Element ID = + Element ID= + + + Content is not supported in destination format. + Innehållet stöds inte i destinationsformatet + + + Remove Page + Ta bort sida + + + Are you sure you want to remove 1 page from the selected document '%0'? + Är du säker på att du vill ta bort 1 sida från det valda dokumentet '%0'? + + + + UBApplication + + Page Size + Storlek på sida + + + Podcast + Podcast + + + + UBApplicationController + + Web + Nät + + + New update available, would you go to the web page ? + Ny uppdatering tillgänglig, vill du besöka web sidan? + + + No update available + Inga uppdateringar tillgängliga + + + Update available + Uppdateringar tillgängliga + + + Update + Uppdatera + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Hämtning av innehåll %1 misslyckades + + + Download finished + Hämtning avslutad + + + Unknown tool type %1 + Okänd verktygstyp %1 + + + Unknown content type %1 + Okänd innehållstyp %1 + + + Add Item + Lägg till objekt + + + All Supported (%1) + Alla stöds (%1) + + + Delete page %1 from document + Radera sida %1 från dokument + + + Page %1 deleted + Sida %1 raderad + + + Add file operation failed: file copying error + Lägg till fil åtgärd misslyckad: filkopieringsfel + + + Group + Verb our a noun? Next segement is Ungorup = verb. If "Group" is a verb it should be "Gruppera" in sv. + Grupp + + + Ungroup + Avgruppera + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Färg + + + + UBBoardPaletteManager + + Error Adding Image to Library + Fel vid lägg bild bibliotek + + + CapturedImage + FångadBild + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Cacheinställningar + + + Color: + Färg: + + + Shape: + Form: + + + Size: + Storlek: + + + Close + Stäng + + + + UBDesktopPalette + + Capture Part of the Screen + Fånga en del av skärmen + + + Capture the Screen + Fånga skärmen + + + Show the stylus palette + Visa pekpennans palett + + + Show Board on Secondary Screen + Visa taval på den sekundära skärmen + + + Show Desktop on Secondary Screen + Visa skrivbordet på den sekundära skärmen + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Ny mapp + + + Page %1 + Sida %1 + + + Add Folder of Images + Lägg till mapp med bilder + + + Add Images + Lägg till bilder + + + Add Pages from File + Lägg till sida från fil + + + Duplicating Document %1 + Duplicera dokument %1 + + + Document %1 copied + Dokument %1 kopierad + + + Remove Page + Ta bort sida + + + Remove Document + Ta bort dokument + + + Are you sure you want to remove the document '%1'? + Är du säker på att du vill ta bort dokument '%1'? + + + Empty Trash + Töm papperskorgen + + + Are you sure you want to empty trash? + Är du säker på att du vill tömma papperskorgen? + + + Emptying trash + Tömmer papperskorgen + + + Emptied trash + Papperskorgen tömd + + + Remove Folder + Tabort mapp + + + Are you sure you want to remove the folder '%1' and all its content? + Är du säker på att du vill ta bort mapp '%1' och all dess innehåll? + + + No document selected! + Inget dokument markerat! + + + Open Supported File + Öppna filer som stödjes + + + Importing file %1... + Imporeterar fil %1... + + + Failed to import file ... + Import av fil misslyckades ... + + + Import all Images from Folder + Importera amm bilder från mapp + + + Delete + Radera + + + Empty + Tömd + + + Trash + Papperskorg + + + Open Document + Öppna dokument + + + Add all Images to Document + Lägg till alla bilder till dokument + + + All Images (%1) + All bilder (%1) + + + Selection does not contain any image files! + Markeringen innehåller inga bildfiler! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Är du säker på att du vill ta bort mapp %n sida/sidor från det makrerade dokumentet '%1'? + + + + + Folder does not contain any image files + Foldern innehåller inga bildfiler + + + Untitled Documents + Namnlösa dokument + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + bilder + + + videos + videos + + + objects + objekt + + + widgets + widgets + + + All supported files (*.%1) + All filer som stödjes (*.%1) + + + File %1 saved + Fil %1 sparad + + + Inserting page %1 of %2 + Infoga sida %1 av %2 + + + Import successful. + Import lyckades. + + + Import of file %1 successful. + Import av fil %1 lyckades. + + + Importing file %1 + Importerar fil %1 + + + + UBDocumentNavigator + + Page %0 + Sida %0 + + + + UBDocumentPublisher + + Export failed. + Export misslyckades. + + + + UBDocumentReplaceDialog + + Accept + Acceptera + + + Cancel + Avsluta + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Papperskorg + + + %1 pages copied + + %1 sidor kopierade + + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 sidor kopierade + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopierar sida %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopiera) + + + Copying page %1/%2 + Kopierar sida %1/%2 + + + %1 pages copied + + %1 sidor kopierade + + + + + + UBDownloadWidget + + Downloading files + Hämtning av filer + + + Cancel + Avsluta + + + + UBDraggableThumbnail + + Page %0 + Sida %0 + + + + UBDraggableThumbnailView + + Page %0 + Sida %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Varningar unde export dök upp + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + + UBExportCFF + + Export to IWB + Exporter till IWB + + + Export as IWB File + Exportera som IWB-fil + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Export failed. + Export misslyckades. + + + + UBExportDocument + + Page + Sida + + + Export as UBZ File + Exportera som ABZ fil + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Exporting %1 %2 of %3 + Exporterar %1 %2 av %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Export failed. + Export misslyckades. + + + Failed to export... + + + + Export as UBX File + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Exportera som PDF fil + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Export to PDF + Exportera till PDF + + + + UBExportPDF + + Export as PDF File + Exportera som PDF fil + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Exporting page %1 of %2 + Exporterar sida %1 av %2 + + + Export to PDF + Exportera till PDF + + + + UBExportWeb + + Page + Sida + + + Export as Web data + Exporter som nätdata + + + Exporting document... + Exporterar dokument... + + + Export successful. + Export lyckades. + + + Export failed. + Export misslyckades. + + + Export to Web Browser + Exportera till Webläsare + + + + UBFeatureProperties + + Add to page + Lägg till sida + + + Set as background + Infoga som bakgrund + + + Add to library + Lägg till bibliotek + + + Object informations + Objektinformation + + + + UBFeaturesActionBar + + Add to favorites + Lägg till favoriter + + + Share + Dela + + + Search + Sök + + + Delete + Radera + + + Back to folder + Tillbaka till mapp + + + Remove from favorites + Ta bort från favoriter + + + Create new folder + Skapa ny mapp + + + Rescan file system + Scanna filsystemet igen + + + + UBFeaturesController + + ImportedImage + ImporteradBild + + + Audios + Ljudspår + + + Movies + Filmer + + + Pictures + Foton + + + Animations + Animationer + + + Interactivities + Interaktiviteter + + + Applications + Applikationer + + + Shapes + Former + + + Favorites + Favoriter + + + Web search + webbsökning + + + Trash + Papperskorg + + + + UBFeaturesNewFolderDialog + + Accept + Acceptera + + + Cancel + Avsluta + + + Enter a new folder name + Ange ett nytt mappnamn + + + + UBFeaturesProgressInfo + + Loading + Laddar + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på utvidgad skärm + + + + UBGraphicsItemDelegate + + Locked + Låst + + + Visible on Extended Screen + Synlig på utvidgad skärm + + + Go to Content Source + Gå till innehållskällan + + + Set as background + Infoga som bakgrund + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <Skriv Text Här> + + + + UBGraphicsTextItemDelegate + + Text Color + Text färg + + + Editable + Redigerbar + + + + UBGraphicsW3CWidgetItem + + Web + Nät + + + + UBGraphicsWidgetItem + + Loading ... + Laddar ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Frusen + + + Transform as Tool + Omforma till verkytg + + + + UBImportCFF + + Common File Format ( + Gemensamt filformat + + + Importing file %1... + Importerar fil %1... + + + Import of file %1 failed. + Import av fil %1 misslyckades. + + + Import successful. + Import lyckades. + + + Import failed. + Import msslyckades. + + + + UBImportDocument + + Importing file %1... + Importerar fil %1... + + + Import successful. + Import lyckades. + + + Import of file %1 failed. + Import av fil %1 misslyckades. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Bild format ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + PDF import misslyckades. + + + Importing page %1 of %2 + Importerar sida %1 av %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Ett fel inträffade när video publicerades på intranet (%1) + + + Publishing to Intranet in progress %1 % + Publicering till Intranet pågår %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Publicera + + + + UBKeyboardPalette + + Enter + Enter + + + + UBMainWindow + + Yes + Ja + + + No + Nej + + + Ok + Ok + + + + UBMessagesDialog + + Close + Stäng + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Ange användarnamn och lösenordför "%1" på %2</qt> + + + Failed to log to Proxy + Inlogg till Proxy misslyckades + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL fel: + +%1 + +%2 + +Vill du ignorera felen för den här värden? + + + Yes + Ja + + + No + Nej + + + + UBOpenSankoreImporterWidget + + Cancel + Avsluta + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopiera) + + + Document Repository Loss + Dokumentarkiv förlust + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Engelska + + + Russian + Ryska + + + German + Tyska + + + French + Franska + + + Swiss French + Schweizisk franska + + + + UBPodcastController + + Failed to start encoder ... + Start av kodomvadlare misslyckades ... + + + No Podcast encoder available ... + Ingen kodomvandlarare för podcast tillgänglig ... + + + Part %1 + Del %1 + + + on your desktop ... + på ditt skrivbord ... + + + in folder %1 + i mapp %1 + + + Podcast created %1 + Podcast skapad %1 + + + Podcast recording error (%1) + Fel vi inspelning av podcast (%1) + + + Default Audio Input + Förvalda ljudingång + + + No Audio Recording + Ingen inspelning av ljud + + + Small + Liten + + + Medium + Medium + + + Full + Stor + + + Publish to Intranet + Publicera på Internet + + + Publish to Youtube + Publicera på YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + version: + + + Marker is pressure sensitive + Markören är tryckkänslig + + + + UBProxyLoginDlg + + Proxy Login + Proxy inloggning + + + Username: + Användarnamn: + + + Password: + Lösenord: + + + + UBPublicationDlg + + Publish document on the web + Publicera dokumentet på nätet + + + Title: + Titel: + + + Description: + Beskrivning: + + + Publish + Publicera + + + + UBSettings + + My Movies + Mina filmer + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Generera förhandsgranskning av miniatyrbilder... + + + %1 thumbnails generated ... + %1 miniatybil genererad ... + + + + UBThumbnailTextItem + + Page %0 + Sida %0 + + + + UBToolsManager + + Mask + Mask + + + Ruler + Linjal + + + Compass + Kompass + + + Protractor + Gradskiva + + + Triangle + Triangel + + + Magnifier + Förstoringsglas + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + Hela sidan + + + Web + Nät + + + + UBUpdateDlg + + Document updater + Dokmentsuppdaterare + + + files require an update. + Filerna kräver en uppdatering. + + + Backup path: + Sökväg till säkerhetskopiering: + + + Browse + Bläddra + + + Update + Uppdatera + + + Select a backup folder + Välj en mapp för säkerhetskopiering + + + Files update successful! +Please reboot the application to access the updated documents. + Uppdateringen av filerna lyckades! +Vänligen starta om programmet för att komma åt uppdaterade dokument. + + + An error occured during the update. The files have not been affected. + Ett fel inträffade vid uppdateringen. Filerna har inte påverkats. + + + Files update results + Resultatet av uppdateringen av filerna + + + Updating file + Uppdaterar fil + + + Please wait the import process will start soon... + Vänligen vänta importprocessen börjar snart ... + + + Remind me later + Påminn mig senare + + + + UBWebPluginWidget + + Loading... + Laddar... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 kallats (metod=%1, status=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube verifiering misslyckades. + + + Error while uploading video to YouTube (%1) + Ett fel inträffade när video laddas upp på YouTube (%1) + + + Upload to YouTube in progress %1 % + Uppladdning till YouTube pågår %1 % + + + + UBYouTubePublishingDialog + + Upload + Ladda upp + + + Autos & Vehicles + Bilar & fordon + + + Music + Musik + + + Pets & Animals + Husdjur & djur + + + Sports + Sport + + + Travel & Events + Resor & evenemang + + + Gaming + Spel + + + Comedy + Komedi + + + People & Blogs + Flk & bloggar + + + News & Politics + Nyheter & politik + + + Entertainment + Underhållning + + + Education + utbildning + + + Howto & Style + Fixa själv & stil + + + Nonprofits & Activism + Ideellt arbete & aktivism + + + Science & Technology + Vetenskap & teknologi + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Rensa + + + + WBDownloadItem + + Save File + Spara fil + + + Download canceled: %1 + Hämtningen avbröts: %1 + + + Error opening saved file: %1 + Ett fel inträffade vid öppna fil: %1 + + + Error saving: %1 + Felmeddelande: %1 + + + Network Error: %1 + Nätverksfel: %1 + + + seconds + sekunder + + + minutes + minuter + + + - %4 %5 remaining + - %4 %5 kvar + + + %1 of %2 (%3/sec) %4 + %1 av %2 (%3/s) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 av %2 - avbröts + + + bytes + bytes + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Hämtning + + + %1 Downloads + always >= 2 + %1 Hämtning + + + + WBHistoryModel + + Title + Titel + + + Address + Adress + + + + WBHistoryTreeModel + + Earlier Today + Tidigre idag + + + %1 items + %1 objekt + + + + WBSearchLineEdit + + Search + Sök + + + + WBTabBar + + New &Tab + Ny &Flik + + + Clone Tab + Kloningsflik + + + &Close Tab + &Stäng flik + + + Close &Other Tabs + Stäng &Andra flikar + + + Reload Tab + Uppdatera flik + + + Reload All Tabs + Uppdatera alla flikar + + + + WBTabWidget + + Recently Closed Tabs + Senaste stängda flikar + + + (Untitled) + (Namnlös) + + + + WBToolbarSearch + + Search + Sök + + + No Recent Searches + Inga senaste sökningar + + + Recent Searches + Senaste sökningar + + + Clear Recent Searches + Rensa senaste sökningar + + + + WBWebPage + + Download + Hämta + + + Add to Current Document + Lägg till aktuellt dokument + + + PDF + PDF + + + Error loading page: %1 + Ett fel inträffade när sidan laddades: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Öppna i ny flik + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Publicera Podcast på YouTube + + + Title + Titel + + + Description + Beskrivning + + + Keywords + Nyckelord + + + Category + Kategori + + + YouTube Username + Användarnamn på YouTube + + + YouTube Password + Lösenord på YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + Öppna Sankoré + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + På ljus bakgrund + + + On Dark Background + På mörk bakgrund + + + Opacity + Genomskinlighet + + + Line Width + Linjebredd + + + Medium + Medium + + + Strong + Stark + + + Fine + Fin + + + Pen is Pressure Sensitive + Pennan är tryckkänslig + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-post + + + Author + Författare + + + Description + Beskrivning + + + + documentPublishingDialog + + Dialog + Dialog + + + Title + Titel + + + E-mail + E-post + + + Author + Författare + + + Description + Beskrivning + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Inställningar + + + version : … + version : … + + + Default Settings + Grundinställningar + + + Close + Stäng + + + Display + Visa + + + Internet + Internet + + + Show Page with External Browser + Visa sida med extern webläsare + + + Home Page: + Startsida: + + + Virtual Keyboard + Virtuellt tangentbord + + + Keyboard button size: + Storlek på tangentbordet knappar: + + + Toolbar + Verktygsfält + + + Positioned at the Top (recommended for tablets) + Placerad högst upp (rekommenderas för läsplattor) + + + Positioned at the Bottom (recommended for white boards) + Placerad längst ner (rekommenderas för whiteboardtavla) + + + Display Text Under Button + Visa text under knapp + + + Stylus Palette + Pekpennans palett + + + Horizontal + Horisontal + + + Vertical + Vertikal + + + Pen + Penna + + + Marker + Markör + + + About + Om + + + Software Update + Uppdatering av mjukvara + + + Check software update at launch + Kontrollera programuppdateringar vid start av programmet + + + Licences + Licenser + + + Network + Nätverk + + + Show internal web page content on secondary screen or projector + Visa innehåll för intern webbsida på den sekundära skärmen eller projektor + + + Multi display + Visa flera + + + Swap control display and view display + Byt kontrollskärm och visa skärm + + + Mode + Läge + + + Mode to start in: + Startläge + + + Board + Tavla + + + Desktop + Skrivbord + + + Proxy User: + Proxy användare: + + + Pass: + Lösenord: + + + Credits + Poäng + + + On Dark Background + På mörk bakgrund + + + Opacity + Genomskinlighet + + + On Light Background + På ljus bakgrund + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Lagra flash + + + Select a flash to trap + Välj en flash att lagra + + + about:blank + om:tom + + + Application name + Applikationens namn + + + Create Application + Skapa applikation + + + diff --git a/resources/i18n/OpenBoard_tr.ts b/resources/i18n/OpenBoard_tr.ts new file mode 100644 index 0000000..efe8bbf --- /dev/null +++ b/resources/i18n/OpenBoard_tr.ts @@ -0,0 +1,2917 @@ + + + + + BlackoutWidget + + Click to Return to Application + Uygylamaya Geri Dönmek için Tıklayın + + + + DownloadDialog + + Downloads + İndirilenler + + + Clean Up + Temizle + + + 0 Items + Kalem + + + + DownloadItem + + Form + Gönderen + + + Filename + Dosya Adı + + + Try Again + Yeniden Dene + + + Stop + Durdur + + + Open + + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Kaydı YouTube'da Yayınla + + + Title + Başlık + + + Description + Açıklama + + + Author + Yazar + + + + MainWindow + + Board + Tahta + + + Web + Web + + + Documents + Dökümanlar + + + Stylus + Kalem + + + Ctrl+T + Ctrl+T + + + Backgrounds + Arkaplanlar + + + Change Background + Arkaplanı Değiştir + + + Undo + Geri Al + + + Ctrl+Z + Ctrl+Z + + + Redo + Yeniden + + + Ctrl+Y + Ctrl+Y + + + Previous + Önceki + + + Previous Page + Önceki Sayfa + + + PgUp + SyYukari + + + Next + Sonraki + + + Next Page + Sonraki Sayfa + + + PgDown + SyAşağı + + + Manage Documents + Dökümanları Yönet + + + Ctrl+D + Ctrl+D + + + Web Browsing + Web Gezintisi + + + Ctrl+W + Ctrl+W + + + Quit + Çık + + + Back + Geri + + + Left + Sol + + + Forward + İleri + + + Right + Sağ + + + Reload + Yeniden Yükle + + + Home + Ana Sayfa + + + Bookmarks + Sık Kullanılanlar + + + Bookmark + Sık Kullanılan + + + Ctrl+B + Ctrl+B + + + Erase + Sil + + + Preferences + Seçenekler + + + Library + Kütüphane + + + Ctrl+L + Ctrl+L + + + Show Desktop + Masaüstünü Göster + + + Bigger + Daha Büyük + + + Ctrl++ + Ctrl++ + + + Smaller + Daha Küçük + + + Ctrl+- + Ctrl+- + + + New Folder + Yeni Klasör + + + New Document + Yeni Döküman + + + Import + İçeri Aktar + + + Export + Dışarı Aktar + + + Open in Board + Tahta da Aç + + + Ctrl+O + Ctrl+O + + + Duplicate + Kopyala + + + Delete + Sil + + + Del + Sil + + + Add to Working Document + Aktif Dökümana Ekle + + + Add Selected Content to Open Document + Seçili İçeriği Aktif Dökümana Ekle + + + Add + Ekle + + + Rename + Yeniden Adlandır + + + Tools + Araçlar + + + Multi Screen + Çoklu Ekran + + + Wide Size (16/9) + Geniş Ekran Boyutu (16/9) + + + Regular Size (4/3) + Nprmal Ekran Boyutu (4/3) + + + Custom Size + Özel Ekran Boyutu + + + Stop Loading + Yüklemeyi Durdur + + + Cut + Kes + + + Copy + Kopyala + + + Paste + Yapıştır + + + Sleep + Uyut + + + Virtual Keyboard + Sanal Klavye + + + Plain Light Background + Sade Açık Arkaplan + + + Light + Açık + + + Grid Light Background + Açık Izgara Arkaplan + + + Plain Dark Background + Sade Kapalı Arkaplan + + + Dark + Kapalı + + + Grid Dark Background + Kapalı Izgara Arkaplan + + + Podcast + Ekran Kaydı + + + Record + Kayıt + + + Start Screen Recording + Ekran Kaydını Başlat + + + Erase Items + Kalemleri Sil + + + Erase Annotations + Açıklamaları Sil + + + Clear Page + Sayfayı Temizle + + + Pen + Dolmakalem + + + Check Update + Güncellemeleri Denetle + + + Ctrl+H + Ctrl+H + + + Eraser + Silgi + + + Marker + Fosforlu Kalem + + + Selector + Seçici + + + Hand + El + + + Zoom In + Yakınlaştır + + + Zoom Out + Uzaklaştır + + + Line + Çizgi + + + Small Line + Ufak Çizgi + + + Medium Line + Normal Çizgi + + + Large Line + Kalın Çizgi + + + Smalle Eraser + Küçük Silgi + + + Medium Eraser + Normal Silgi + + + Large Eraser + Büyük Silgi + + + Color + Renkler + + + Reload Current Page + Mevcut Sayfayı Yeniden Yükle + + + Load Home Page + Ana Sayfayı Yükle + + + Show Bookmarks + Sık Kullanılanları Göster + + + Add Bookmark + Sık Kullanılana Ekle + + + Display Board + Tahtayı Göster + + + Erase Content + İçeriği Sil + + + Display Preferences + Seçenekleri Göster + + + Show Library + Kütüphaneyi Göster + + + Show Computer Desktop + Bilgisayar Masaüstünü Göster + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Create a New Folder + Yeni Klasör Oluştur + + + Create a New Document + Yeni Döküman Oluştur + + + Import a Document + Dökümanı İçeri Aktar + + + Export a Document + Dökümanı Dışa Aktar + + + Open Page in Board + Sayfayı Tahtada Aç + + + Duplicate Selected Content + Seçili İçeriği Çoğalt + + + Delete Selected Content + Seçili İçeriği Sil + + + Add Content to Document + İçeriği Dökümana Ekle + + + Rename Content + İçeriği Yeniden Adlandır + + + Display Tools + Araçları Göster + + + Use Document Wide Size (16/9) + Dökümanı Geniş Boy Olarak Kullan (16/9) + + + Use Document Regular Size (4/3) + Dökümanı Normal Boy Olarak Kullan (4/3) + + + Use Custom Document Size + Özel Döküman Boyutu Kullan + + + Stop Loading Web Page + Web Sayfasını Yüklemeyi Durdur + + + Put Presentation to Sleep + Sunumu Uyku Moduna Al + + + Display Virtual Keyboard + Sanal Klavyeyi Göster + + + Record Presentation to Video + Sunumu Video Olarak Kaydet + + + Erase All Items + Tüm Kalemleri Sil + + + Erase All Annotations + Tüm Açıklamaları Sil + + + Clear All Elements + Tüm Öğeleri Sil + + + Annotate Document + Dökümana Açıklama Gir + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Açıklamayı Sil + + + Ctrl+E + Ctrl+E + + + Highlight + Vurgu + + + Ctrl+M + Ctrl+M + + + Select And Modify Objects + Objeyi Seç ve Değiştir + + + Ctrl+F + Ctrl+F + + + Scroll Page + Sayfayı Kaydır + + + Laser Pointer + Lazer İşaretçi + + + Virtual Laser Pointer + Sanal Lazer İşaretçi + + + Ctrl+G + Ctrl+G + + + Draw Lines + Çizgi Çiz + + + Ctrl+J + Ctrl+J + + + Text + Metin + + + Write Text + Metin Yaz + + + Ctrl+K + Ctrl+K + + + Capture + Yakala + + + Add To Current Page + Mevcut Sayfaya Ekle + + + Add Item To Current Page + Kalemleri Mevut Sayfaya Ekle + + + Add To New Page + Yeni Sayfaya Ekle + + + Add Item To New Page + Kalemleri Yeni Sayfaya Ekle + + + Add To Library + Kütüphaneye Ekle + + + Add Item To Library + Kalemi Kütüphaneye Ekle + + + Pages + Sayfalar + + + Create a New Page + Yeni Sayfa Oluştur + + + New Page + Yeni Sayfa + + + Duplicate Page + Sayfayı Çoğalt + + + Duplicate the Current Page + Mevcut Sayfayı Çoğalt + + + Import Page + Sayfayı İçeri Aktar + + + Import an External Page + Harici Sayfayı İçeri Aktar + + + Pause + Durdur + + + Pause Podcast Recording + Ekran Kaydını Durdur + + + Podcast Config + Ekran Kayıt Ayarları + + + Configure Podcast Recording + Ekran Kaydını Ayarla + + + Flash Trap + Flash Tuzağı + + + Trap Flash Content + Flash İçeriğini Yakala + + + Web Trap + Webi Tuzağı + + + Trap Web Content + Web İçeriğini Yakala + + + Capture Part of the Screen + Ekranın Bir Bölümünü Yakala + + + Custom Capture + Özel Yakala + + + Capture a Window + Bir Pencereyi Yakala + + + Embed Web Content + Web İçeriğini Göm + + + Capture Embeddable Web Content + Gömülü Web İçeriğini Yakala + + + Show Main Screen on Display Screen + Görüntü Ekranında Ana Ekranı Göster + + + Erase all Annotations + Tüm Açıklamaları Sil + + + eduMedia + eduMedya + + + Import eduMedia simulation + eduMedya Simülasyon'u İçeri Aktar + + + Window Capture + Pencere Yakala + + + Show on Display + Ekranda Göster + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Open-Sankpré'den Çık + + + Hide OpenBoard + OpenBoard'i Gizle + + + Hide OpenBoard Application + OpenBoard Uygulamasını Gizle + + + Play + Oynat + + + Interact with items + Parçalar ile etkileşim + + + Erase Background + Arkaplanı Sil + + + Remove the backgound + Arkaplanı Kaldır + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Kimlik Doğrulama Yapınız + + + Username: + Kullanıcı Adı: + + + Password: + Şifre: + + + + ProxyDialog + + Proxy Authentication + Proxy Doğrulama + + + Connect to Proxy + Proxy'e Bağlan + + + Username: + Kullanıcı Adı: + + + Password: + Şifre: + + + Save username and password for future use + Kullanıcı adı ve şifresini kaydet + + + + QObject + + Element ID = + Element ID = + + + Content is not supported in destination format. + İçerik hedef içerik için uygun geğil. + + + Remove Page + Sayfayı Kaldır + + + Are you sure you want to remove 1 page from the selected document '%0'? + Seçili olan '%0' adlı dökümandan 1 sayfayı kaldırmak üzeresiniz. Bu işlemi yapmak istediğinizden eminmisiniz? + + + + UBApplication + + Page Size + Sayfa Boyutu + + + Podcast + Ekran Kaydı + + + + UBApplicationController + + Web + Web + + + New update available, would you go to the web page ? + Yeni güncellemeler var. Web sitesine giderek indirmek istermisiniz? + + + No update available + Yeni güncelleme yok + + + Update available + Güncelleme var + + + Update + Güncelle + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + İçeriğin %1'i indirilemedi + + + Download finished + İndirme tamamlandı + + + Unknown tool type %1 + Bilinmeyen araç türü %1 + + + Unknown content type %1 + Bilinmeyen içerik türü %1 + + + Add Item + Parça Ekle + + + All Supported (%1) + Tümü Desteklenir (%1) + + + Delete page %1 from document + %1 Sayfayı dökümandan sil + + + Page %1 deleted + %1 Sayfa silindi + + + Add file operation failed: file copying error + Dosya ekleme işlemi başarısız oldu: dosya kopyalama hatası + + + Group + Grup + + + Ungroup + Gurubu Ayır + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + Renkler + + + + UBBoardPaletteManager + + Error Adding Image to Library + Kütüphaneye Resim Eklerken Hata Oluştu + + + CapturedImage + YakalananResim + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Gizleme Seçenekleri + + + Color: + Renk: + + + Shape: + Şekil: + + + Size: + Boyut: + + + Close + Kapat + + + + UBDesktopPalette + + Capture Part of the Screen + Ekranın Bir Bölümünü Yakala + + + Capture the Screen + Ekranı Yakala + + + Show the stylus palette + Kalem paletini göster + + + Show Board on Secondary Screen + Tahtayı İkincil Ekranda Göster + + + Show Desktop on Secondary Screen + Masaüstünü İkincil Ekranda Göster + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + Yeni Klasör + + + Page %1 + Sayfa %1 + + + Add Folder of Images + Resim Klasörü Ekle + + + Add Images + Resimleri Ekle + + + Add Pages from File + Dosyadan Sayfa Ekle + + + Duplicating Document %1 + %1 Dökümanı Çoğalt + + + Document %1 copied + %1 Döküman kopyalandı + + + Remove Page + Sayfayı Kaldır + + + Remove Document + Dökümanı Kaldır + + + Are you sure you want to remove the document '%1'? + %1 adlı dökümanı kaldırmak istediğinizden eminmisiniz? + + + Empty Trash + Çöpü Boşalt + + + Are you sure you want to empty trash? + Çöp kutusunu boşaltmak istediğinizden eminmisiniz? + + + Emptying trash + Çöp Kutusu boşaltılıyor + + + Emptied trash + Çöp kutusu boşaltıldı + + + Remove Folder + Klasörü Kaldır + + + Are you sure you want to remove the folder '%1' and all its content? + '%1' adlı klasörü ve içindeki tüm dosyaları kaldırmak istediğinizden eminmisiniz? + + + No document selected! + Seçili döküman yok! + + + Open Supported File + Desteklenen Dosyayı Aç + + + Importing file %1... + %1 adlı dosya içeriye aktarılıyor... + + + Failed to import file ... + Dosya içeriye aktarılamadı ... + + + Import all Images from Folder + Klasördeki Tüm Resimleri İçeri Aktar + + + Delete + Sil + + + Empty + Boşalt + + + Trash + Çöp + + + Open Document + Döküman Aç + + + Add all Images to Document + Tüm Resimleri Dökümana Ekle + + + All Images (%1) + Tüm Resimler (%1) + + + Selection does not contain any image files! + Seçilenlerin arasında hiç resim bulunmamaktadır! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Seçili '%1' adlı dökümandan %n sayfayı kaldırmak istediğinizden eminmisiniz? + + + + Folder does not contain any image files + Klasör hiç resim dosyası içermiyor + + + Untitled Documents + Başlıksız Döküman + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + resimler + + + videos + videolar + + + objects + öğeler + + + widgets + widgetlar + + + All supported files (*.%1) + Desteklenen tüm dosyalar (*.%1) + + + File %1 saved + %1 adlı dosya kaydedildi + + + Inserting page %1 of %2 + %1 / %2 Sayfa ekleniyor + + + Import successful. + İçe aktarım tamamlandı. + + + Import of file %1 successful. + %1 Adlı dosya içeriye aktarıldı. + + + Importing file %1 + İçe aktarılan dosya: %1 + + + + UBDocumentNavigator + + Page %0 + Sayfa %0 + + + + UBDocumentReplaceDialog + + Accept + Kabul Et + + + Cancel + İptal + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + Çöp + + + %1 pages copied + + %1 sayfa kopyalandı + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + %1 sayfa kopyalandı + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + Kopyalanan sayfa %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (kopyala) + + + Copying page %1/%2 + Kopyalanan sayfa %1/%2 + + + %1 pages copied + The translation is correct but it is giving error message. + + %1 sayfa kopyalandı + + + + + UBDownloadWidget + + Downloading files + Dosyalar indiriliyor + + + Cancel + İptal + + + + UBDraggableThumbnail + + Page %0 + Sayfa %0 + + + + UBDraggableThumbnailView + + Page %0 + Sayfa %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Dışa aktarma sırasında bir uyarı mesajı göründü + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + + UBExportCFF + + Export to IWB + IWB'e Aktar + + + Export as IWB File + IWB Dosyası Olarak Aktar + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export successful. + Dışa aktarma tamamlandı. + + + Export failed. + Dışa aktarma başarısız oldu. + + + + UBExportDocument + + Page + Sayfa + + + Export as UBZ File + UBZ Dosyası Olarak Aktar + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export successful. + Dışa aktarım tamamlandı. + + + Exporting %1 %2 of %3 + Dışa Aktarılan %1 %2 / %3 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + Döküman dışa aktarılıyor... + + + Failed to export... + + + + Export as UBX File + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + PDF Dosyası Olarak Dışa Aktar + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export successful. + Dışa aktarım tamamlandı. + + + Export to PDF + PDF Olarak Aktar + + + + UBExportPDF + + Export as PDF File + PDF Dosyası Olarak Dışa Aktar + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export successful. + Dışa aktarım tamamlandı. + + + Exporting page %1 of %2 + Dışa aktarılan sayfa: %1 / %2 + + + Export to PDF + PDF Olark Aktar + + + + UBExportWeb + + Page + Sayfa + + + Export as Web data + Web Verisi Olarak Dışa Aktar + + + Exporting document... + Döküman dışa aktarılıyor... + + + Export successful. + Dışa aktarım tamamlandı. + + + Export failed. + Dışa aktarım başarısız oldu. + + + Export to Web Browser + Web Tarayıcısına Aktar + + + + UBFeatureProperties + + Add to page + Sayfaya ekle + + + Set as background + Arkaplan olarak tanımla + + + Add to library + Kütüphaneye ekle + + + Object informations + Nesne bilgisi + + + + UBFeaturesActionBar + + Add to favorites + Sık kullanılanlara ekle + + + Share + Paylaş + + + Search + Ara + + + Delete + Sil + + + Back to folder + Klasöre geri dön + + + Remove from favorites + Sık kullanılanlardan kaldır + + + Create new folder + Yeni klasör oluştur + + + Rescan file system + Dosya sistemini yeniden tara + + + + UBFeaturesController + + ImportedImage + İçerAktarılanResim + + + Audios + Sesler + + + Movies + Videolar + + + Pictures + Resimler + + + Animations + Animasyonlar + + + Interactivities + İnteraktiviteler + + + Applications + Uygulamalar + + + Shapes + Şekiller + + + Favorites + Sık Kullanılanlar + + + Web search + Web'de Ara + + + Trash + Çöp + + + + UBFeaturesNewFolderDialog + + Accept + Kabul Et + + + Cancel + İptal + + + Enter a new folder name + Yeni klasör adı giriniz + + + + UBFeaturesProgressInfo + + Loading + Yükleniyor + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Kilitli + + + Visible on Extended Screen + Uzatılmış Ekranda Görünsün + + + + UBGraphicsItemDelegate + + Locked + Kilitli + + + Visible on Extended Screen + Uzatılmış Ekranda Görünsün + + + Go to Content Source + İçerik Kaynağına Git + + + Set as background + Arkaplan olarak tanımla + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + + + + + UBGraphicsTextItemDelegate + + Text Color + Metin Rengi + + + Editable + Düzenlenebilir + + + + UBGraphicsW3CWidgetItem + + Web + Web + + + + UBGraphicsWidgetItem + + Loading ... + Yükleniyor ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Donmuş + + + Transform as Tool + Araç Olarak Dönüştür + + + + UBImportCFF + + Common File Format ( + Genel Dosya Biçimi ( + + + Importing file %1... + İçe aktarılan dosya: %1... + + + Import of file %1 failed. + %1 adlı dosya içe aktarılamadı. + + + Import successful. + İçe aktarım tamamlandı. + + + Import failed. + İçe aktarım tamamlanmadı. + + + + UBImportDocument + + Importing file %1... + %1 adlı dosya içe aktarılıyor... + + + Import successful. + İçe aktarım tamamlandı. + + + Import of file %1 failed. + %1 adlı dosyanın içe aktarımı başarısız oldu. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Resim Biçimi ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Taşınabilir Döküman Biçimi (*.pdf) + + + PDF import failed. + PDF dosya aktarımı başarısız oldu. + + + Importing page %1 of %2 + İçe aktarılan sayfa: %1 / %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Videonun intranete yayını sırasında hata oluştu(%1) + + + Publishing to Intranet in progress %1 % + Internete durumu: %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Yayınla + + + + UBKeyboardPalette + + Enter + Giriş + + + + UBMainWindow + + Yes + Evet + + + No + Hayır + + + Ok + Tamam + + + + UBMessagesDialog + + Close + Kapat + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt> %2 kısmında bulunan "%1" için kullanıcı adı ve şifre giriniz</qt> + + + Failed to log to Proxy + Proxy'e giriş yapılamadı + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL Hatası: + +%1 + +%2 +Bu host için yukarıdaki hatalar yok sayılsın mı? + + + Yes + Evet + + + No + Hayır + + + + UBOpenSankoreImporterWidget + + Cancel + İptal + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (kopyala) + + + Document Repository Loss + Döküman Deposu Kaybedildi + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + İngilizce + + + Russian + Rusça + + + German + Almanca + + + French + Fıransızca + + + Swiss French + İsveç Fıransızcası + + + + UBPodcastController + + Failed to start encoder ... + Enkoder başlatılamadı... + + + No Podcast encoder available ... + Geçerli canlı yayın enkoderi bulunamadı ... + + + Part %1 + Bölüm %1 + + + on your desktop ... + masa üstünüzde ... + + + in folder %1 + %1 adlı klasörün içinde + + + Podcast created %1 + Canlı yayın oluşturuldu %1 + + + Podcast recording error (%1) + Canlı yayın kayıt hatası (%1) + + + Default Audio Input + Varsayılan Ses Girişi + + + No Audio Recording + Hiç Ses Kaydı Yok + + + Small + Küçük + + + Medium + Normal + + + Full + Tam + + + Publish to Intranet + İnternette Yayınlar + + + Publish to Youtube + YouTube'da Yayınla + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + versiyon: + + + Marker is pressure sensitive + İşaretçi basınca duyarlıdır + + + + UBProxyLoginDlg + + Proxy Login + Proxy Girişi + + + Username: + Kullanıcı Adı: + + + Password: + Şifre: + + + + UBPublicationDlg + + Publish document on the web + Dökümanı web üzerinde yayınla + + + Title: + Başlık: + + + Description: + Açıklama: + + + Publish + Yayınla + + + + UBSettings + + My Movies + Filimlerim + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Önizleme resimleri oluşturuluyor ... + + + %1 thumbnails generated ... + %1 adet önizleme resmi oluşturuldu ... + + + + UBThumbnailTextItem + + Page %0 + Sayfa %0 + + + + UBToolsManager + + Mask + Maske + + + Ruler + Cetvel + + + Compass + Pusula + + + Protractor + İletki + + + Triangle + Üçgen + + + Magnifier + Büyüteç + + + Cache + Gizli Yer + + + Axes + + + + + UBTrapFlashController + + Whole page + Tüm sayfa + + + Web + Web + + + + UBUpdateDlg + + Document updater + Döküman güncelleyici + + + files require an update. + güncelleme için gerekli dosyalar. + + + Backup path: + Yedek yolu: + + + Browse + Gözat + + + Update + Güncelle + + + Select a backup folder + Yedekleme klasörü seç + + + Files update successful! +Please reboot the application to access the updated documents. + Dosyaların güncellenmesi tamamlandı! +Güncellenen dökümanlara erişmek için uygulamayı yeniden başlatın. + + + An error occured during the update. The files have not been affected. + Güncelleme sırasında bir hata oluştu. Dosyalar değişmedi yada etilenmedi. + + + Files update results + Dosya güncelleme sonucu + + + Updating file + Dosya güncelleniyor + + + Please wait the import process will start soon... + Lütfen bekleyin! İçer aktarım işlemi birazdan başlayacak ... + + + Remind me later + Sonra hatırlat + + + + UBWebPluginWidget + + Loading... + Yükleniyor ... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + %0 cağırıldı (metod=%1, durum=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube kimlik doğrulama başarısız oldu. + + + Error while uploading video to YouTube (%1) + YouTube'a video yüklenirken hata oluştu (%1) + + + Upload to YouTube in progress %1 % + YouTube'a video gönderim işlemi: %1 % + + + + UBYouTubePublishingDialog + + Upload + Yükle + + + Autos & Vehicles + Otomotiv & Arabalar + + + Music + Müzik + + + Pets & Animals + Evcil Hayvanlar & Hayvanlar + + + Sports + Spor + + + Travel & Events + Gezi & Turlar + + + Gaming + Oyun + + + Comedy + Komedi + + + People & Blogs + İnsanlar & Bloglar + + + News & Politics + Haberler & Politika + + + Entertainment + Eğlence + + + Education + Eğitim + + + Howto & Style + Nasıl Yapılır & Stil + + + Nonprofits & Activism + Kar Amacı Gütmeyen & Aktivizm + + + Science & Technology + Bilim & Teknoloji + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Temizle + + + + WBDownloadItem + + Save File + Dosyayı Kaydet + + + Download canceled: %1 + İndirme iptal edildi: %1 + + + Error opening saved file: %1 + Kaydedilen dosya açılırken hata oluştu: %1 + + + Error saving: %1 + Kaydedilirken hata oluştu: %1 + + + Network Error: %1 + Network hatası:%1 + + + seconds + saniye + + + minutes + dakika + + + - %4 %5 remaining + - kalan: %4 / %5 + + + %1 of %2 (%3/sec) %4 + %1 / %2 (%3/saniye) %4 + + + ? + unknown file size + Geçersiz dosya boyutu? + + + %1 of %2 - Stopped + %1 / %2 - Durduruldu + + + bytes + byte + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1 Adet İndirilen + + + %1 Downloads + always >= 2 + %1 Adet İndirilen + + + + WBHistoryModel + + Title + Başlık + + + Address + Adres + + + + WBHistoryTreeModel + + Earlier Today + Gürün Erken Saatleri + + + %1 items + %1 Madde + + + + WBSearchLineEdit + + Search + Ara + + + + WBTabBar + + New &Tab + Yeni &Sekme + + + Clone Tab + Sekmeyi Kolanla + + + &Close Tab + &Sekmeyi Kapat + + + Close &Other Tabs + Diğer &Sekmeleri Kapat + + + Reload Tab + Sekmeyi Yeniden Yükle + + + Reload All Tabs + Tüm Sekmeleri Yeniden Yükle + + + + WBTabWidget + + Recently Closed Tabs + Recently Closed Tabs + + + (Untitled) + (Başlıksız) + + + + WBToolbarSearch + + Search + Ara + + + No Recent Searches + Son Zamanlarda Yapılan Arama Bulunmamakta + + + Recent Searches + Son Yapılan Aramalar + + + Clear Recent Searches + Son Yapılan Aramaları Temizle + + + + WBWebPage + + Download + İndir + + + Add to Current Document + Mevcut Dökümana Ekle + + + PDF + PDF + + + Error loading page: %1 + Sayfa yüklenirken hata oluştu: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + Yeni Sekmede Aç + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Podcasti YouTube'da Yayınla + + + Title + Başlık + + + Description + Açıklama + + + Keywords + Anahtar Kelimeler + + + Category + Kategori + + + YouTube Username + YouTube Kullanıcı Adı + + + YouTube Password + YouTube Şifresi + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + Saydamlık + + + On Light Background + Açık Arkaplan Üzerine + + + On Dark Background + Kapalı Arkaplan Üzerine + + + Line Width + Çizgi Genişliği + + + Medium + Normal + + + Strong + Kalın + + + Fine + Hassas + + + Pen is Pressure Sensitive + Kalem Basınca Duyarlıdır + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + Diyalog + + + Title + Başlık + + + E-mail + E-mail + + + Author + Yazar + + + Description + Açıklama + + + + documentPublishingDialog + + Dialog + Diyalog + + + Title + Başlık + + + E-mail + E-mail + + + Author + Yazar + + + Description + Açıklama + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Tercihler + + + Default Settings + Geçerli Ayarlar + + + Close + Kapat + + + Display + Ekran + + + Show Page with External Browser + Sayfayı Harici Tarayıcıda Göster + + + Virtual Keyboard + Sanal Klavye + + + Keyboard button size: + Klavye tuş boyutu: + + + Positioned at the Top (recommended for tablets) + Üstte konumlandır (tabletler için tavsiye edilir) + + + Positioned at the Bottom (recommended for white boards) + Altta konumlandır (akıllı tahtalar için tavsiye edilir) + + + Display Text Under Button + Yazıyı Tuşun Altında Göster + + + Stylus Palette + Stylus Paleti + + + Horizontal + Yatay + + + Vertical + Dikey + + + About + Hakkında + + + Software Update + Yazılım Güncellemesi + + + Check software update at launch + Başlangıçta yazılım güncellemeleri kontrol et + + + Internet + Internet + + + Home Page: + Ana Sayfa: + + + Toolbar + Araç Çubuğu + + + Pen + Dolma Kalem + + + Marker + Fosforlu Kalem + + + version : … + Versiyon: ... + + + Licences + Lisanslar + + + Network + Network + + + Show internal web page content on secondary screen or projector + Dahili web sayfa içeriğini ikince ekranda yada projektörde göster + + + Multi display + Çoklu ekran + + + Swap control display and view display + Kontrol ekranını ve görütü ekranını yer değiştir + + + Mode + Mod + + + Mode to start in: + Başlangıç modu: + + + Board + Tahta + + + Desktop + Masa Üstü + + + Proxy User: + Proxy Kullanıcısı: + + + Pass: + Şifre: + + + Credits + Künye + + + On Dark Background + Kapalı Arkaplan Üzerine + + + Opacity + Saydamlık + + + On Light Background + Açık Arkaplan Üzerine + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Flash'i tuzakla + + + Select a flash to trap + Tuzağa almak için bir flash öğesi seçin + + + about:blank + hakkında:boş + + + Application name + Uygulama adı + + + Create Application + Uygulama Oluştur + + + diff --git a/resources/i18n/OpenBoard_uk.ts b/resources/i18n/OpenBoard_uk.ts new file mode 100644 index 0000000..8a9513e --- /dev/null +++ b/resources/i18n/OpenBoard_uk.ts @@ -0,0 +1,2915 @@ + + + + + BlackoutWidget + + Click to Return to Application + Натиснути, щоб повернутися в програму + + + + DownloadDialog + + Downloads + Завантаження + + + Clean Up + Очистити + + + 0 Items + 0 елементів + + + + DownloadItem + + Form + Форма + + + Filename + Ім'я файлу + + + Try Again + Спробувати ще + + + Stop + Стоп + + + Open + Відкрити + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + Розмістити подкаст на Youtube + + + Title + Назва + + + Description + Опис + + + Author + Автор + + + + MainWindow + + Board + Дошка + + + Web + Інтернет + + + Documents + Документи + + + Stylus + Інструменти + + + Ctrl+T + Ctrl+T + + + Backgrounds + Фон + + + Change Background + Змінити фон + + + Undo + Скасувати + + + Ctrl+Z + Ctrl+Z + + + Redo + Повернути + + + Ctrl+Y + Ctrl+Y + + + Previous + Назад + + + Previous Page + Попередня сторінка + + + PgUp + PgUp + + + Next + Вперед + + + Next Page + Наступна сторінка + + + PgDown + PgDown + + + Manage Documents + Управління документами + + + Ctrl+D + Ctrl+D + + + Web Browsing + Веб-браузер + + + Ctrl+W + Ctrl+W + + + Line + Лінія + + + Small Line + Тонка лінія + + + Medium Line + Середня лінія + + + Large Line + Товста лінія + + + Quit + Вихід + + + Eraser + Ластик + + + Smalle Eraser + Малий ластик + + + Medium Eraser + Середній ластик + + + Large Eraser + Великий ластик + + + Color + Колір + + + Back + Назад + + + Left + Вліво + + + Forward + Вперед + + + Right + Вправо + + + Reload + Перезавантажити + + + Reload Current Page + Перезавантажити поточну сторінку + + + Home + Головна + + + Load Home Page + Завантажити головну сторінку + + + Bookmarks + Закладки + + + Show Bookmarks + Показати закладки + + + Bookmark + Закладка + + + Add Bookmark + Додати закладку + + + Display Board + Показати дошку + + + Ctrl+B + Ctrl+B + + + Erase + Стерти + + + Erase Content + Стерти вміст + + + Preferences + Налаштування + + + Display Preferences + Показати налаштування + + + Library + Бібліотека + + + Show Library + Відобразити бібліотеку + + + Ctrl+L + Ctrl+L + + + Show Desktop + Робочий стіл + + + Show Computer Desktop + Показати робочий стіл комп'ютера + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + Більше + + + Zoom In + Збільшити + + + Ctrl++ + Ctrl++ + + + Smaller + Менше + + + Zoom Out + Зменшити + + + Ctrl+- + Ctrl+- + + + New Folder + Нова папка + + + Create a New Folder + Створити нову папку + + + New Document + Новий документ + + + Create a New Document + Створити новий документ + + + Import + Імпорт + + + Import a Document + Імпортувати документ + + + Export + Експорт + + + Export a Document + Експортувати документ + + + Open in Board + Відкрити на дошці + + + Open Page in Board + Відкрити сторінку на дошці + + + Ctrl+O + Ctrl+O + + + Duplicate + Дублювати + + + Duplicate Selected Content + Дублювати вибраний вміст + + + Delete + Видалити + + + Delete Selected Content + Видалити вибраний вміст + + + Del + Del + + + Add to Working Document + Додати в робочий документ + + + Add Selected Content to Open Document + Додати вибраний вміст у відкритий документ + + + Add + Додати + + + Add Content to Document + Додати вміст в документ + + + Rename + Перейменувати + + + Rename Content + Перейменувати вміст + + + Tools + Інструменти + + + Display Tools + Показати інструменти + + + Multi Screen + Багатоекранний + + + Wide Size (16/9) + Широкий формат (16:9) + + + Use Document Wide Size (16/9) + Використовувати широкий формат для документа (16:9) + + + Regular Size (4/3) + Звичайний формат (4:3) + + + Use Document Regular Size (4/3) + Використовувати звичайний формат для документа (4:3) + + + Custom Size + Користувальницький формат + + + Use Custom Document Size + Використовувати користувальницький формат для документа + + + Stop Loading + Зупинити завантаження + + + Stop Loading Web Page + Зупинити завантаження веб-сторінки + + + Cut + Вирізати + + + Copy + Копіювати + + + Paste + Вставити + + + Sleep + Режим очікування + + + Put Presentation to Sleep + Перевести презентацію в режим очікування + + + Virtual Keyboard + Віртуальна клавіатура + + + Display Virtual Keyboard + Показати віртуальну клавіатуру + + + Plain Light Background + Однотонний світлий фон + + + Light + Світлий + + + Grid Light Background + Світлий фон з сіткою + + + Plain Dark Background + Однотонний темний фон + + + Dark + Темний + + + Grid Dark Background + Темний фон з сіткою + + + Podcast + Подкаст + + + Record Presentation to Video + Зберегти презентацію як відео + + + Record + Запис + + + Start Screen Recording + Почати запис екрану + + + Erase Items + Стерти елементи + + + Erase All Items + Стерти всі елементи + + + Erase Annotations + Стерти примітки + + + Erase All Annotations + Стерти всі примітки + + + Clear Page + Очистити сторінку + + + Clear All Elements + Очистити всі елементи + + + Pen + Перо + + + Annotate Document + Забезпечити документ примітками + + + Ctrl+I + Ctrl+I + + + Erase Annotation + Видалити примітку + + + Ctrl+E + Ctrl+E + + + Marker + Маркер + + + Highlight + Виділити + + + Ctrl+M + Ctrl+M + + + Selector + Інструмент виділення + + + Select And Modify Objects + Вибрати і змінити об'єкти + + + Ctrl+F + Ctrl+F + + + Hand + Рука + + + Scroll Page + Прокрутка сторінки + + + Laser Pointer + Лазерна вказівка + + + Virtual Laser Pointer + Віртуальна лазерна вказівка + + + Ctrl+G + Ctrl+G + + + Draw Lines + Намалювати лінії + + + Ctrl+J + Ctrl+J + + + Text + Текст + + + Write Text + Зробити напис + + + Ctrl+K + Ctrl+K + + + Capture + Знімок + + + Capture Part of the Screen + Зробити знімок частини екрану + + + Add To Current Page + Додати до поточної сторінки + + + Add Item To Current Page + Додати елемент на поточну сторінку + + + Add To New Page + Додати на нову сторінку + + + Add Item To New Page + Додати елемент на нову сторінку + + + Add To Library + Додати в бібліотеку + + + Add Item To Library + Додати елемент в бібліотеку + + + Pages + Сторінки + + + Create a New Page + Створити нову сторінку + + + New Page + Нова сторінка + + + Duplicate Page + Дублювати сторінку + + + Duplicate the Current Page + Дублювати поточну сторінку + + + Import Page + Імпортувати сторінку + + + Import an External Page + Імпортувати зовнішню сторінку + + + Pause + Пауза + + + Pause Podcast Recording + Пауза під час запису подкасту + + + Podcast Config + Конфігурація подкасту + + + Configure Podcast Recording + Конфігурувати запис подкасту + + + Flash Trap + Захоплення флеш + + + Trap Flash Content + Захоплення флеш-вмісту + + + Web Trap + Захоплення веб + + + Trap Web Content + Захоплення веб-вмісту + + + Custom Capture + Знімок з користувальницькими параметрами + + + Window Capture + Знімок вікна + + + Capture a Window + Зробити знімок вікна + + + Embed Web Content + Вставити веб-вміст + + + Capture Embeddable Web Content + Захопити веб-вмісту з можливістю вставки + + + Show on Display + Показати на моніторі + + + Show Main Screen on Display Screen + Показати на моніторі головний екран + + + Erase all Annotations + Видалити всі примітки + + + eduMedia + eduMedia + + + Import eduMedia simulation + Імпортувати симуляцію eduMedia + + + Check Update + Перевірити оновлення + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + Вийти з OpenBoard + + + Hide OpenBoard + Згорнути OpenBoard + + + Hide OpenBoard Application + Згорнути програму OpenBoard + + + Play + Грати + + + Interact with items + Взаємодіяти з елементами + + + Erase Background + Очистити дошку + + + Remove the backgound + Видалити фон + + + Open Tutorial + Відкрити навчальний посібник + + + Open the tutorial web page + Відкрити веб-сторінку підручника + + + Ruled Light Background + Керований світлий фон + + + Ruled Dark Background + Керований темний фон + + + Reset grid size + Скинути розмір сітки + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + Необхідно ввійти + + + Username: + Ім'я користувача: + + + Password: + Пароль: + + + + ProxyDialog + + Proxy Authentication + Авторизація на проксі-сервері + + + Connect to Proxy + З'єднатися з проксі-сервера + + + Username: + Ім'я користувача: + + + Password: + Пароль: + + + Save username and password for future use + Зберегти ім'я користувача і пароль для майбутнього використання + + + + QObject + + Element ID = + ID елемента = + + + Content is not supported in destination format. + Не підтримується в поточному форматі. + + + Remove Page + Видалити сторінку + + + Are you sure you want to remove 1 page from the selected document '%0'? + Ви впевнені, що хочете видалити 1 сторінку з документа '%0'? + + + + UBApplication + + Page Size + Розміри сторінки + + + Podcast + Подкаст + + + + UBApplicationController + + Web + Інтернет + + + New update available, would you go to the web page ? + Доступні оновлення, перейти на сторінку? + + + No update available + Немає доступних оновлень + + + Update available + Доступні оновлення + + + Update + Оновити + + + + UBBackgroundPalette + + Grid size + Розмір сітки + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + Помилка завантаження вмісту з %1 + + + Download finished + Загрузка завершена + + + Unknown tool type %1 + Невідомий тип інструменту %1 + + + Unknown content type %1 + Невідомий тип вмісту %1 + + + Add Item + Додати елемент + + + All Supported (%1) + Всі підтримувані типи (%1) + + + Delete page %1 from document + Видалити сторінку %1 з документа + + + Page %1 deleted + Сторінка %1 видалена + + + Add file operation failed: file copying error + Операція додавання файлу завершена невдало: помилка копіювання + + + Group + Згрупувати + + + Ungroup + Розгрупувати + + + Saving document... + Збереження документа ... + + + Document has just been saved... + Документ щойно був збережений... + + + Deleting page %1 + Видалення сторінки %1 + + + Color + Колір + + + + UBBoardPaletteManager + + Error Adding Image to Library + Помилка додавання зображення в бібліотеку + + + CapturedImage + Захопити зображення + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + Завантаження сторінки (%1/%2) + + + + UBCachePropertiesWidget + + Cache Properties + Властивості кеша + + + Color: + Колір: + + + Shape: + Форма: + + + Size: + Розміри: + + + Close + Закрити + + + + UBDesktopPalette + + Capture Part of the Screen + Зробити знімок екрана + + + Capture the Screen + Зробити знімок екрана + + + Show the stylus palette + Показати інструменти + + + Show Board on Secondary Screen + Показати дошку на другому екрані + + + Show Desktop on Secondary Screen + Показати роб. стіл на другому екрані + + + Show OpenBoard + Показати OpenBoard + + + + UBDocumentController + + New Folder + Нова папка + + + Page %1 + Сторінка %1 + + + Add Folder of Images + Додати папку з зображеннями + + + Add Images + Додати зображення + + + Add Pages from File + Додати сторінки з файлу + + + Duplicating Document %1 + Дублювання документа %1 + + + Document %1 copied + Документ %1 скопійований + + + Remove Page + Видалити сторінку + + + Remove Document + Видалити документ + + + Are you sure you want to remove the document '%1'? + Ви впевнені, що хочете видалити документ '%1'? + + + Empty Trash + Очистити корзину + + + Are you sure you want to empty trash? + Ви впевнені, що хочете очистити кошик? + + + Emptying trash + Очищення кошика + + + Emptied trash + Кошик порожній + + + Remove Folder + Видалити папку + + + Are you sure you want to remove the folder '%1' and all its content? + Ви впевнені, що хочете видалити папку '%1 і весь її вміст? + + + No document selected! + Нічого не вибрано! + + + Open Supported File + Відкрити файл підтримуваного формату + + + Importing file %1... + Імпорт файлу %1... + + + Failed to import file ... + Помилка імпорту файлу ... + + + Import all Images from Folder + Імпортувати всі зображення з папки + + + Delete + Видалити + + + Empty + Пусто + + + Trash + Кошик + + + Open Document + Відкрити документ + + + Add all Images to Document + Додати всі зображення в документ + + + All Images (%1) + Всі зображення (%1) + + + Selection does not contain any image files! + Не вибрано жодного зображення! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + Ви впевнені, що хочете видалити %n сторінку з обраного документа '%1'? + Ви впевнені, що хочете видалити %n сторінок з обраного документа '%1'? + + + + Folder does not contain any image files + Каталог не містить файлів зображень + + + Untitled Documents + Документи без назви + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + Документ '%1' був створений за допомогою нової версії OpenBoard (%2). Відкривши його, ви можете втратити деяку інформацію. Ви хочете продовжити? + + + Are you sure you want to remove all selected documents? + Ви впевнені, що хочете видалити всі вибрані документи? + + + Remove multiple documents + Видалити кілька документів + + + duplicated %1 page + duplicated %1 pages + + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Title page + + + + + UBDocumentManager + + images + зображення + + + videos + відео + + + objects + об'єкти + + + widgets + віджети + + + All supported files (*.%1) + Всі файли підтримуваних типів (*.%1) + + + File %1 saved + Файл %1 збережений + + + Inserting page %1 of %2 + Додавання сторінки %1 з %2 + + + Import successful. + Імпорт успішно завершений. + + + Import of file %1 successful. + Імпорт файлу %1 успішно завершено. + + + Importing file %1 + Імпорт файлу %1 + + + + UBDocumentNavigator + + Page %0 + Сторінка %0 + + + + UBDocumentReplaceDialog + + Accept + Прийняти + + + Replace + + + + Cancel + Відміна + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + My documents + + + + Trash + Кошик + + + %1 pages copied + + %1 сторінки скопійовано + %1 сторінок скопійовано + + + + + UBDocumentTreeView + + Copying page %1/%2 + Копіювання сторінки %1/%2 + + + %1 pages copied + + %1 сторінки скопійовано + %1 сторінок скопійовано + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (копіювання) + + + Copying page %1/%2 + Копіювання сторінки %1/%2 + + + %1 pages copied + + %1 сторінки скопійовано + %1 сторінок скопійовано + + + + + UBDownloadWidget + + Downloading files + Завантажити файли + + + Cancel + Відміна + + + + UBDraggableThumbnail + + Page %0 + Сторінка %0 + + + + UBDraggableThumbnailView + + Page %0 + Сторінка %0 + + + + UBExportAdaptor + + Warnings during export was appeared + Виявлено попередження під час експорту + + + Exporting document... + Експорт документа ... + + + Export failed + Експорт не вдався + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + Неможливо експортувати вибране місцеположення. У вас немає дозволів, необхідних для збереження файлу. + + + Export failed: location not writable + Не вдалося здійснити експорт: місцезнаходження неможливо записати + + + Export successful. + Експорт успішно завершено. + + + + UBExportCFF + + Export to IWB + Експорт в IWB + + + Export as IWB File + Експортувати як IWB файл + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Export failed. + Помилка експорту. + + + + UBExportDocument + + Page + Сторінка + + + Export as UBZ File + Експортувати як файл UBZ + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Exporting %1 %2 of %3 + Експорт %1 %2 з %3 + + + Export to OpenBoard Format + Експорт у формат OpenBoard + + + + UBExportDocumentSetAdaptor + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Export failed. + Помилка експорту. + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + Експортувати як файл PDF + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Export to PDF + Експорт в PDF + + + + UBExportPDF + + Export as PDF File + Експортувати як файл PDF + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Exporting page %1 of %2 + Експорт сторінки %1 з %2 + + + Export to PDF + Експорт в PDF + + + + UBExportWeb + + Page + Сторінка + + + Export as Web data + Експортувати як веб-дані + + + Exporting document... + Експорт документа ... + + + Export successful. + Експорт успішно завершено. + + + Export failed. + Помилка експорту. + + + Export to Web Browser + Експорт в веб-браузер + + + + UBFeatureProperties + + Add to page + Додати на сторінку + + + Set as background + Зробити фоновим зображенням + + + Add to library + Додати в бібліотеку + + + Object informations + Інформація про об'єкт + + + + UBFeaturesActionBar + + Add to favorites + Додати в обране + + + Share + Спільний доступ + + + Search + Пошук + + + Delete + Видалити + + + Back to folder + Назад в папку + + + Remove from favorites + Зняти позначку вибраного + + + Create new folder + Створити нову папку + + + Rescan file system + Пересканувати бібліотеку + + + + UBFeaturesController + + ImportedImage + Імпортовані зображення + + + Audios + Аудіо + + + Movies + Відео + + + Pictures + Картинки + + + Animations + Мультфільми + + + Interactivities + Інтерактивні елементи + + + Applications + Додатки + + + Shapes + Форми + + + Favorites + Вибране + + + Web search + Веб пошук + + + Trash + Кошик + + + + UBFeaturesNewFolderDialog + + Accept + Прийняти + + + Cancel + Відміна + + + Enter a new folder name + Введіть назву нової папки + + + + UBFeaturesProgressInfo + + Loading + Завантаження + + + + UBGraphicsGroupContainerItemDelegate + + Locked + Заблокований + + + Visible on Extended Screen + Видимий на другому екрані + + + + UBGraphicsItemDelegate + + Locked + Заблокований + + + Visible on Extended Screen + Видимий на другому екрані + + + Go to Content Source + Перейти до джерела вмісту + + + Set as background + Зробити фоновим зображенням + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + Медіа-ресурс ' не може бути дозволений + + + Unsupported media format + Формат носія yt підтримується + + + Media playback service not found + Служба відтворення не знайдена + + + Media error: + Медіа помилка + + + + UBGraphicsTextItem + + <Type Text Here> + <Введіть тут текст> + + + + UBGraphicsTextItemDelegate + + Text Color + Колір тексту + + + Editable + Редагований + + + + UBGraphicsW3CWidgetItem + + Web + Веб + + + + UBGraphicsWidgetItem + + Loading ... + Завантаження ... + + + + UBGraphicsWidgetItemDelegate + + Frozen + Заморожений + + + Transform as Tool + Перетворити в інструмент + + + + UBImportCFF + + Common File Format ( + Стандартний формат файлу ( + + + Importing file %1... + Імпорт файлу %1... + + + Import of file %1 failed. + Помилка імпорту файлу %1. + + + Import successful. + Імпорт успішно завершений. + + + Import failed. + Помилка імпорту. + + + + UBImportDocument + + Importing file %1... + Імпорт файлу %1... + + + Import successful. + Імпорт успішно завершений. + + + Import of file %1 failed. + Помилка імпорту файлу %1. + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + Формат зображення ( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Портативний формат документа (*.pdf) + + + PDF import failed. + Ошибка імпорту PDF. + + + Importing page %1 of %2 + Імпорт сторінки %1 з %2 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + Помилка при розміщенні відео в інтернеті (%1) + + + Publishing to Intranet in progress %1 % + Публікація в Інтранеті здійснюється %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + Опублікувати + + + + UBKeyboardPalette + + Enter + Введення + + + + UBMainWindow + + Yes + Так + + + No + Ні + + + Ok + Ок + + + + UBMessagesDialog + + Close + Закрити + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>Введіть ім'я користувача і пароль для "%1" в %2</qt> + + + Failed to log to Proxy + Помилка входу на проксі-сервер + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + Помилки SSL: + +%1 + +%2 + +Хочете ігнорувати ці помилки для даного хоста? + + + Yes + Так + + + No + Ні + + + + UBOpenSankoreImporterWidget + + Open-Sankore Documents Detected + Виявлено документи Open-Sankore + + + Show this panel next time + Показати цю панель наступного разу + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + Ви завжди можете отримати доступ до імпортера документа OpenBoard через панель "Налаштування" на вкладці "Про". Попередження, якщо ви вже імпортували дані "Open-Sankore", ви можете втратити свої поточні документи OpenBoard. + + + Cancel + Відміна + + + Proceed + Продовжити + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + Документи Open-Sankoré присутні на вашому комп'ютері. Імпортувати їх можна в OpenBoard, натиснувши кнопку «Продовжити», щоб запустити програму для імпорту. + + + + UBPersistenceManager + + (copy) + (копія) + + + Document Repository Loss + Втрата з'єднання з репозиторієм документів + + + has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + втрачено доступ до сховища документів '%1'. На жаль, програма повинна бути закрита, щоб уникнути псування даних. Останні зміни також можуть бути втрачені. + + + Moving page to trash folder... + Переміщення сторінки в папку для сміття ... + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + Англійський + + + Russian + Російський + + + German + Німецький + + + French + Французький + + + Swiss French + Шв. французький + + + + UBPodcastController + + Failed to start encoder ... + Помилка запуску кодувальника ... + + + No Podcast encoder available ... + Немає доступного кодувальника для подкасту ... + + + Part %1 + Частина %1 + + + on your desktop ... + на вашому роб. столі ... + + + in folder %1 + в папці %1 + + + Podcast created %1 + Подкаст створено %1 + + + Podcast recording error (%1) + Не вдалося записати подкаст (%1) + + + Default Audio Input + Аудіовхід за замовчуванням + + + No Audio Recording + Немає запису аудіо + + + Small + Малий + + + Medium + Середній + + + Full + Повний + + + Publish to Intranet + Опублікувати в інтернеті + + + Publish to Youtube + Опублікувати на Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + версія: + + + Marker is pressure sensitive + Маркер чутливий до тиску + + + + UBProxyLoginDlg + + Proxy Login + Вхід на проксі-сервер + + + Username: + Ім'я користувача: + + + Password: + Пароль: + + + + UBPublicationDlg + + Publish document on the web + Опублікувати документ в інтернеті + + + Title: + Назва: + + + Description: + Опис: + + + Publish + Опублікувати + + + + UBSettings + + My Movies + Мої відеофайли + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + Створення перегляду ескізів... + + + %1 thumbnails generated ... + згенеровані ескізи %1... + + + + UBThumbnailTextItem + + Page %0 + Сторінка %0 + + + + UBToolsManager + + Mask + Маска + + + Ruler + Лінійка + + + Compass + Циркуль + + + Protractor + Транспортир + + + Triangle + Трикутник + + + Magnifier + Лупа + + + Cache + Кеш + + + Axes + + + + + UBTrapFlashController + + Whole page + Вся сторінка + + + Web + Веб + + + + UBUpdateDlg + + Document updater + Оновлення документа + + + files require an update. + файли потребують оновлення. + + + Backup path: + Шлях до резервної копії: + + + Browse + Огляд + + + Update + Оновити + + + Select a backup folder + Вибрати папку для резервної копії + + + Files update successful! +Please reboot the application to access the updated documents. + Оновлення файлів завершено успішно! +Перезавантажте програму, щоб отримати доступ до оновлених документів + + + An error occured during the update. The files have not been affected. + Під час оновлення сталася помилка. Файли не змінені. + + + Files update results + Результати оновлення файлів + + + Updating file + Оновлення файлу + + + Please wait the import process will start soon... + Будь ласка, зачекайте, процес імпорту скоро почнеться... + + + Remind me later + Нагадати пізніше + + + + UBWebPluginWidget + + Loading... + Завантаження... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + виклик %0 (метод=%1, статус=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Помилка авторизації на YouTube. + + + Error while uploading video to YouTube (%1) + Помилка під час публікації відео на YouTube (%1) + + + Upload to YouTube in progress %1 % + Завантаження на YouTube %1 % + + + + UBYouTubePublishingDialog + + Upload + Завантажити + + + Autos & Vehicles + Авто і транспорт + + + Music + Музика + + + Pets & Animals + Тварини + + + Sports + Спорт + + + Travel & Events + Подорожі та події + + + Gaming + Комп'ютерні ігри + + + Comedy + Гумор + + + People & Blogs + Люди і блоги + + + News & Politics + Новини та політика + + + Entertainment + Розваги + + + Education + Освіта + + + Howto & Style + Навчання і стиль + + + Nonprofits & Activism + Громадські акції + + + Science & Technology + Наука і техніка + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + Очистити + + + + WBDownloadItem + + Save File + Зберегти файл + + + Download canceled: %1 + Завантаження скасовано: %1 + + + Error opening saved file: %1 + Помилка відкриття збереженого файлу: %1 + + + Error saving: %1 + Помилка збереження: %1 + + + Network Error: %1 + Помилка мережі: %1 + + + seconds + секунди + + + minutes + хвилини + + + - %4 %5 remaining + - %4 %5 залишається + + + %1 of %2 (%3/sec) %4 + %1 з %2 (%3/с) %4 + + + ? + unknown file size + ? + + + %1 of %2 - Stopped + %1 из %2 - зупинено + + + bytes + байт + + + KB + КБ + + + MB + МБ + + + + WBDownloadManager + + 1 Download + 1 завантаження + + + %1 Downloads + always >= 2 + %1 завантажень + + + + WBHistoryModel + + Title + Назва + + + Address + Адреса + + + + WBHistoryTreeModel + + Earlier Today + Раніше сьогодні + + + %1 items + %1 елементів + + + + WBSearchLineEdit + + Search + Пошук + + + + WBTabBar + + New &Tab + Нова &вкладка + + + Clone Tab + Дублювати вкладку + + + &Close Tab + &Закрити вкладку + + + Close &Other Tabs + Закрити всі &інші вкладки + + + Reload Tab + Перезавантажити вкладку + + + Reload All Tabs + Перезавантажити всі вкладки + + + + WBTabWidget + + Recently Closed Tabs + Недавно закриті вкладки + + + (Untitled) + (Без назви) + + + + WBToolbarSearch + + Search + Пошук + + + No Recent Searches + Немає останніх пошуків + + + Recent Searches + Останні пошуки + + + Clear Recent Searches + Очистити останні пошуки + + + + WBWebPage + + Download + Завантажити + + + Add to Current Document + Додати в поточний документ + + + PDF + PDF + + + Error loading page: %1 + Помилка завантаження сторінки: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + Завантаження PDF-документа: чи хотіли б ви завантажити файл PDF або додати його до поточного документа OpenBoard? + + + + WBWebView + + Open in New Tab + Відкрити в новій вкладці + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + Опублікувати подкаст на YouTube + + + Title + Назва + + + Description + Опис + + + Keywords + Ключові слова + + + Category + Категорія + + + YouTube Username + Ім'я користувача YouTube + + + YouTube Password + Пароль YouTube + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">Натиснувши "Завантажити", ви підтверджуєте, що володієте всіма правами на данний вміст, або що ви були уповноважені власником на публікацію даного вмісту на YouTube, або що іншим чином задовольняєте вимогам Умов надання послуг YouTube, розміщених за адресою </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + Restore credentials on reboot + Відновити облікові дані при перезавантаженні + + + OpenBoard + OpenBoard + + + + brushProperties + + On Light Background + На світлому фоні + + + On Dark Background + На темному фоні + + + Opacity + Непрозорість + + + Line Width + Товщина лінії + + + Medium + Середня + + + Strong + Товста + + + Fine + Тонка + + + Pen is Pressure Sensitive + Перо чутливе до натиску + + + Show preview circle from + Показати кола попереднього перегляду з + + + px + + + + + capturePublishingDialog + + Dialog + Діалог + + + Title + Назва + + + E-mail + Електронна пошта + + + Author + Автор + + + Description + Опис + + + + documents + + OpenBoard Documents + Документи OpenBoard + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + Налаштування + + + version : … + версія: … + + + Default Settings + Налаштування за замовчуванням + + + Close + Закрити + + + Display + Показати + + + Internet + Інтернет + + + Show Page with External Browser + Показати сторінку в зовнішньому браузері + + + Home Page: + Головна сторінка: + + + Virtual Keyboard + Віртуальна клавіатура + + + Keyboard button size: + Розмір клавіш клавіатури: + + + Toolbar + Панель інструментів + + + Positioned at the Top (recommended for tablets) + Розташування вгорі (рекомендується для планшетів) + + + Positioned at the Bottom (recommended for white boards) + Розташування внизу (рекомендується для білих дошок) + + + Display Text Under Button + Показувати текст під кнопками + + + Stylus Palette + Інструменти + + + Horizontal + Горизонтально + + + Vertical + Вертикально + + + Pen + Перо + + + Marker + Маркер + + + About + Про програму + + + Software Update + Оновлення програми + + + Check software update at launch + Перевіряти наявність оновлень при запуску + + + Licences + Ліцензії + + + Network + Мережа + + + Show internal web page content on secondary screen or projector + Показати вміст веб сторінки на другому моніторі + + + Multi display + Кілька моніторів + + + Swap control display and view display + Інвертувати перший і другий монітор + + + Mode + Режим + + + Mode to start in: + Режим під час завантаження: + + + Board + Дошка + + + Desktop + Робочий стіл + + + Proxy User: + Проксі користувач: + + + Pass: + Пароль: + + + Credits + Зміст + + + Open-Sankoré Importer + Імпортер Open-Sankoré + + + Check if Open-Sankoré data could be imported at launch + Перевірте, чи можна імпортувати Open-Sankoré дані під час запуску + + + Use system keyboard (recommended) + Використовуйте системну клавіатуру (рекомендовано) + + + Built-in virtual keyboard button size: + Розмір вбудованої віртуальної клавіатури + + + Grid + Сітка + + + On Dark Background + На темному фоні + + + Opacity + Непрозорість + + + On Light Background + На світлому фоні + + + Swap first and second view displays + Поміняйте перший і другий види відображення + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + Захоплення флеш + + + Select a flash to trap + Вибрати флеш-вміст для захоплення + + + about:blank + about:blank + + + Application name + Назва програми + + + Create Application + Створити програму + + + diff --git a/resources/i18n/OpenBoard_zh.ts b/resources/i18n/OpenBoard_zh.ts new file mode 100644 index 0000000..2621530 --- /dev/null +++ b/resources/i18n/OpenBoard_zh.ts @@ -0,0 +1,2917 @@ + + + + + BlackoutWidget + + Click to Return to Application + 点击回到应用程序 + + + + DownloadDialog + + Downloads + 下载 + + + Clean Up + 清空 + + + 0 Items + 0个项目 + + + + DownloadItem + + Form + 形式 + + + Filename + 文件名 + + + Try Again + 再试一次 + + + Stop + 停止 + + + Open + 打开 + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + 发布播客至Youtube + + + Title + 标题 + + + Description + 描述 + + + Author + 作者 + + + + MainWindow + + Board + 演示板 + + + Web + 网页 + + + Documents + 文档 + + + Stylus + 工具面板 + + + Ctrl+T + Ctrl+T + + + Backgrounds + 背景 + + + Change Background + 更换背景 + + + Undo + 撤销 + + + Ctrl+Z + Ctrl+Z + + + Redo + 重复 + + + Ctrl+Y + Ctrl+Y + + + Previous + 上一页 + + + Previous Page + 上一页 + + + PgUp + 向上翻 + + + Next + 下一页 + + + Next Page + 下一页 + + + PgDown + 向下翻 + + + Manage Documents + 管理文档 + + + Ctrl+D + Ctrl+D + + + Web Browsing + 浏览网页 + + + Ctrl+W + Ctrl+W + + + Line + 粗细 + + + Small Line + + + + Medium Line + + + + Large Line + + + + Quit + 退出 + + + Eraser + 橡皮擦 + + + Smalle Eraser + + + + Medium Eraser + + + + Large Eraser + + + + Color + 颜色 + + + Back + 后退 + + + Left + 向左 + + + Forward + 前进 + + + Right + 向右 + + + Reload + 刷新 + + + Reload Current Page + 重新载入最近页 + + + Home + 主页 + + + Load Home Page + 载入主页 + + + Bookmarks + 书签 + + + Show Bookmarks + 显示书签 + + + Bookmark + 书签 + + + Add Bookmark + 添加书签 + + + Display Board + 显示演示板 + + + Ctrl+B + Ctrl+B + + + Erase + 清除页面 + + + Erase Content + 清除内容 + + + Preferences + 自定义 + + + Display Preferences + 显示自定义 + + + Library + 图书馆 + + + Show Library + 显示图书馆 + + + Ctrl+L + Ctrl+L + + + Show Desktop + 显示桌面 + + + Show Computer Desktop + 显示电脑桌面 + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + 放大 + + + Zoom In + 放大 + + + Ctrl++ + Ctrl++ + + + Smaller + 缩小 + + + Zoom Out + 缩小 + + + Ctrl+- + Ctrl+- + + + New Folder + 新建文件夹 + + + Create a New Folder + 新建文件夹 + + + New Document + 新建文档 + + + Create a New Document + 新建文档 + + + Import + 导入 + + + Import a Document + 导入文档 + + + Export + 导出 + + + Export a Document + 导出文件 + + + Open in Board + 在演示板上打开 + + + Open Page in Board + 在演示板上打开页面 + + + Ctrl+O + Ctrl+O + + + Duplicate + 复制 + + + Duplicate Selected Content + 复制所选内容 + + + Delete + 删除 + + + Delete Selected Content + 删除所选内容 + + + Del + Del + + + Add to Working Document + 添加至工作文档 + + + Add Selected Content to Open Document + 添加所选内容至打开文档 + + + Add + 添加 + + + Add Content to Document + 添加内容至文档 + + + Rename + 重命名 + + + Rename Content + 重命名内容 + + + Tools + 工具 + + + Display Tools + 显示工具 + + + Multi Screen + 多屏显示 + + + Wide Size (16/9) + 宽屏尺寸(16/9) + + + Use Document Wide Size (16/9) + 宽屏显示文档(16/9) + + + Regular Size (4/3) + 标屏尺寸(4/3) + + + Use Document Regular Size (4/3) + 标屏显示文档(4/3) + + + Custom Size + 自定义尺寸 + + + Use Custom Document Size + 自定义尺寸显示文档 + + + Stop Loading + 停止载入 + + + Stop Loading Web Page + 停止载入网页 + + + Cut + 剪切 + + + Copy + 复制 + + + Paste + 粘贴 + + + Sleep + 睡眠 + + + Put Presentation to Sleep + 使演示屏进入睡眠状态 + + + Virtual Keyboard + 软键盘 + + + Display Virtual Keyboard + 打开软键盘 + + + Plain Light Background + 白色背景 + + + Light + 白色 + + + Grid Light Background + 白色网格背景 + + + Plain Dark Background + 黑色背景 + + + Dark + 黑色 + + + Grid Dark Background + 黑色网格背景 + + + Podcast + 播客 + + + Record Presentation to Video + 为演讲录制视频 + + + Record + 录制 + + + Start Screen Recording + 开始屏幕录制 + + + Erase Items + 清除项目 + + + Erase All Items + 清除所有项目 + + + Erase Annotations + 清除标注 + + + Erase All Annotations + 清除所有标注 + + + Clear Page + 清空页面 + + + Clear All Elements + 清空所有内容 + + + Pen + + + + Annotate Document + 标注文档 + + + Ctrl+I + Ctrl+I + + + Erase Annotation + 清除批注 + + + Ctrl+E + Ctrl+E + + + Marker + 记号笔 + + + Highlight + 高亮 + + + Ctrl+M + Ctrl+M + + + Selector + 选择工具 + + + Select And Modify Objects + 选中并修改素材 + + + Ctrl+F + Ctrl+F + + + Hand + 手型工具 + + + Scroll Page + 滚动页面 + + + Laser Pointer + 激光笔 + + + Virtual Laser Pointer + 模拟激光笔 + + + Ctrl+G + Ctrl+G + + + Draw Lines + 直线 + + + Ctrl+J + Ctrl+J + + + Text + 文本 + + + Write Text + 输入文本 + + + Ctrl+K + Ctrl+K + + + Capture + 截图 + + + Capture Part of the Screen + 部分截图 + + + Add To Current Page + 添加至最近打开页面 + + + Add Item To Current Page + 添加项目至最近打开页面 + + + Add To New Page + 添加至新页面 + + + Add Item To New Page + 添加项目至新页面 + + + Add To Library + 添加至图书馆 + + + Add Item To Library + 添加项目至图书馆 + + + Pages + 页面 + + + Create a New Page + 新建页面 + + + New Page + 新页面 + + + Duplicate Page + 复制页面 + + + Duplicate the Current Page + 复制最近打开页面 + + + Import Page + 导入页面 + + + Import an External Page + 导入外部页面 + + + Pause + 暂停 + + + Pause Podcast Recording + 暂停录制播客 + + + Podcast Config + 播客设置 + + + Configure Podcast Recording + 播客录制设置 + + + Flash Trap + 截取动画 + + + Trap Flash Content + 截取动画内容 + + + Web Trap + 截取网页 + + + Trap Web Content + 截取网页内容 + + + Custom Capture + 自定义截图 + + + Window Capture + 窗口截图 + + + Capture a Window + 窗口截图 + + + Embed Web Content + 嵌入网页内容 + + + Capture Embeddable Web Content + 截取可嵌入的网页内容 + + + Show on Display + 在屏幕上显示 + + + Show Main Screen on Display Screen + 在显示屏上显示主屏幕 + + + Erase all Annotations + 清除所有标注 + + + eduMedia + eduMedia + + + Import eduMedia simulation + 导入eduMedia模拟程序 + + + Check Update + 检查更新 + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + 关闭OpenBoard + + + Hide OpenBoard + 隐藏OpenBoard + + + Hide OpenBoard Application + 隐藏OpenBoard应用程序 + + + Play + 播放 + + + Interact with items + 与项目互动 + + + Erase Background + 删除背景 + + + Remove the backgound + 移除背景 + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + 需要验证 + + + Username: + 用户名: + + + Password: + 密码: + + + + ProxyDialog + + Proxy Authentication + 代理服务器验证 + + + Connect to Proxy + 连接代理服务器 + + + Username: + 用户名: + + + Password: + 密码: + + + Save username and password for future use + 保存用户名和密码 + + + + QObject + + Element ID = + Element ID = + + + Content is not supported in destination format. + 目标格式不支持该内容。 + + + Remove Page + 删除页面 + + + Are you sure you want to remove 1 page from the selected document '%0'? + 确定要删除选中文件“%0”中的1页? + + + + UBApplication + + Page Size + 页面大小 + + + Podcast + 播客 + + + + UBApplicationController + + Web + 网页 + + + New update available, would you go to the web page ? + 有可用的更新,是否登陆更新页面? + + + No update available + 无可用的更新 + + + Update available + 有可用的更新 + + + Update + 更新 + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + 下载内容%1失败 + + + Download finished + 下载完成 + + + Unknown tool type %1 + 未知工具类型%1 + + + Unknown content type %1 + 未知内容类型%1 + + + Add Item + 添加项目 + + + All Supported (%1) + 所有支持的(%1) + + + Delete page %1 from document + 删除文件的%1页 + + + Page %1 deleted + 已删除%1页 + + + Add file operation failed: file copying error + 增加操作失败文档:文件复制错误 + + + Group + 组合 + + + Ungroup + 取消组合 + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + 颜色 + + + + UBBoardPaletteManager + + Error Adding Image to Library + 添加图片至图书馆出错 + + + CapturedImage + 图像截图 + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + 高级缓存属性 + + + Color: + 颜色: + + + Shape: + 形状: + + + Size: + 大小: + + + Close + 关闭 + + + + UBDesktopPalette + + Capture Part of the Screen + 部分截图 + + + Capture the Screen + 全屏截图 + + + Show the stylus palette + 显示工具面板 + + + Show Board on Secondary Screen + 在第二屏幕显示演示板 + + + Show Desktop on Secondary Screen + 在第二屏幕显示桌面 + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + 新建文件夹 + + + Page %1 + 页面%1 + + + Add Folder of Images + 添加图片文件夹 + + + Add Images + 添加图片 + + + Add Pages from File + 添加页面来自于文件 + + + Duplicating Document %1 + 复制文档%1 + + + Document %1 copied + 已复制文档%1 + + + Remove Page + 删除页面 + + + Remove Document + 删除文档 + + + Are you sure you want to remove the document '%1'? + 确定要删除文档“%1”? + + + Empty Trash + 清空回收站 + + + Are you sure you want to empty trash? + 确定要清空回收站? + + + Emptying trash + 正在清空回收站 + + + Emptied trash + 已清空回收站 + + + Remove Folder + 删除文件夹 + + + Are you sure you want to remove the folder '%1' and all its content? + 确定要删除文件夹“%1”及其所有内容? + + + No document selected! + 未选中任何文档! + + + Open Supported File + 打开支持的文件 + + + Importing file %1... + 导入文件%1…… + + + Failed to import file ... + 导入文件失败…… + + + Import all Images from Folder + 将所有图片导入文件夹 + + + Delete + 删除 + + + Empty + 清空 + + + Trash + 回收站 + + + Open Document + 打开文档 + + + Add all Images to Document + 添加所有图片至文档 + + + All Images (%1) + 所有图片(%1) + + + Selection does not contain any image files! + 选中对象不包含任何图片文件! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + 确定要删除选中文件“%1”中的%n页? + + + + Folder does not contain any image files + 文件夹中无图像文件 + + + Untitled Documents + 未命名文档 + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + 图片 + + + videos + 视频 + + + objects + 素材 + + + widgets + 小工具 + + + All supported files (*.%1) + 所有支持的文件(*.%1) + + + File %1 saved + 文件%1已保存 + + + Inserting page %1 of %2 + 正在插入%2的页面%1 + + + Import successful. + 导入成功。 + + + Import of file %1 successful. + 文件%1导入成功。 + + + Importing file %1 + 正在导入文件 %1 + + + + UBDocumentNavigator + + Page %0 + 页面 %0 + + + + UBDocumentReplaceDialog + + Accept + 接受 + + + Cancel + 取消 + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + 回收站 + + + %1 pages copied + + 已复制页面%1 + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + 已复制页面%1 + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + 正在复制页面 %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (复制) + + + Copying page %1/%2 + 正在复制页面 %1/%2 + + + %1 pages copied + + 已复制页面%1 + + + + + UBDownloadWidget + + Downloading files + 下载文件 + + + Cancel + 取消 + + + + UBDraggableThumbnail + + Page %0 + 页面 %0 + + + + UBDraggableThumbnailView + + Page %0 + 页面 %0 + + + + UBExportAdaptor + + Warnings during export was appeared + 导出过程中出现警告 + + + Exporting document... + 文档导出中…… + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + + UBExportCFF + + Export to IWB + 导出至IWB + + + Export as IWB File + 以 IWB文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功。 + + + Export failed. + 导出失败。 + + + + UBExportDocument + + Page + 页面 + + + Export as UBZ File + 以UBZ文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Exporting %1 %2 of %3 + 正在导出的%3的%1 %2 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + 文档导出中…… + + + Failed to export... + + + + Export as UBX File + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + 以PDF文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Export to PDF + 以PDF文件格式导出 + + + + UBExportPDF + + Export as PDF File + 以PDF文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Exporting page %1 of %2 + 正在导出%2的页面%1 + + + Export to PDF + 以PDF文件格式导出 + + + + UBExportWeb + + Page + 页面 + + + Export as Web data + 以网页数据导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Export failed. + 导出失败 + + + Export to Web Browser + 导出到网页浏览器 + + + + UBFeatureProperties + + Add to page + 添加至页面 + + + Set as background + 设置为背景 + + + Add to library + 添加至图书馆 + + + Object informations + 素材信息 + + + + UBFeaturesActionBar + + Add to favorites + 添加至收藏夹 + + + Share + 分享 + + + Search + 搜索 + + + Delete + 删除 + + + Back to folder + 返回上级文件夹 + + + Remove from favorites + 从收藏夹中移除 + + + Create new folder + 新建文件夹 + + + Rescan file system + 重新扫描文件系统 + + + + UBFeaturesController + + ImportedImage + 已导入图片 + + + Audios + 音频 + + + Movies + 视频 + + + Pictures + 图片 + + + Animations + 动画 + + + Interactivities + 互动 + + + Applications + 应用程序 + + + Shapes + 形状 + + + Favorites + 收藏夹 + + + Web search + 搜索网络 + + + Trash + 回收站 + + + + UBFeaturesNewFolderDialog + + Accept + 接受 + + + Cancel + 取消 + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + 载入中 + + + + UBGraphicsGroupContainerItemDelegate + + Locked + 位置锁定 + + + Visible on Extended Screen + 宽屏上可见 + + + + UBGraphicsItemDelegate + + Locked + 位置锁定 + + + Visible on Extended Screen + 宽屏上可见 + + + Go to Content Source + 访问内容来源 + + + Set as background + 设置为背景 + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <在此键入文本> + + + + UBGraphicsTextItemDelegate + + Text Color + 文本颜色 + + + Editable + 可编辑 + + + + UBGraphicsW3CWidgetItem + + Web + 网页 + + + + UBGraphicsWidgetItem + + Loading ... + 载入中…… + + + + UBGraphicsWidgetItemDelegate + + Frozen + 锁定 + + + Transform as Tool + 转换为工具 + + + + UBImportCFF + + Common File Format ( + 常见文件格式 ( + + + Importing file %1... + 正在导入文件 %1…… + + + Import of file %1 failed. + 文件%1导入失败 + + + Import successful. + 导入成功 + + + Import failed. + 导入失败 + + + + UBImportDocument + + Importing file %1... + 正在导入文件%1…… + + + Import successful. + 导入成功 + + + Import of file %1 failed. + 文件%1导入失败 + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + 图片格式 + + + + UBImportPDF + + Portable Document Format (*.pdf) + 可导入文档格式(*.pdf) + + + PDF import failed. + PDF导入失败 + + + Importing page %1 of %2 + 正在导入%2的页面%1 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + 视频发布至内部网过程中发生错误 (%1) + + + Publishing to Intranet in progress %1 % + 正在发布至内部网 %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + 发布 + + + + UBKeyboardPalette + + Enter + 输入 + + + + UBMainWindow + + Yes + + + + No + + + + Ok + 确定 + + + + UBMessagesDialog + + Close + 关闭 + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>为在%2的%1输入用户名和密码</qt> + + + Failed to log to Proxy + 连接代理服务器失败 + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL错误: + +%1 + +%2 + +是否忽略该服务器的这些问题? + + + Yes + + + + No + + + + + UBOpenSankoreImporterWidget + + Cancel + 取消 + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (复制) + + + Document Repository Loss + 文档库丢失 + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + 英语 + + + Russian + 俄语 + + + German + 德语 + + + French + 法语 + + + Swiss French + 瑞士法语 + + + + UBPodcastController + + Failed to start encoder ... + 编码器启动失败…… + + + No Podcast encoder available ... + 没有可用的播客编码器…… + + + Part %1 + 部分%1 + + + on your desktop ... + 在桌面上…… + + + in folder %1 + 在文件夹%1中 + + + Podcast created %1 + 已创建播客%1 + + + Podcast recording error (%1) + 播客录制错误(%1) + + + Default Audio Input + 默认音频输入 + + + No Audio Recording + 无音频录制 + + + Small + + + + Medium + + + + Full + + + + Publish to Intranet + 发布到内部网 + + + Publish to Youtube + 发布到Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + 版本: + + + Marker is pressure sensitive + 使用压感记号笔 + + + + UBProxyLoginDlg + + Proxy Login + 登录代理服务器 + + + Username: + 用户名: + + + Password: + 密码: + + + + UBPublicationDlg + + Publish document on the web + 发布文档至网上 + + + Title: + 标题: + + + Description: + 描述: + + + Publish + 发布 + + + + UBSettings + + My Movies + 我的视频 + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + 正在生成缩略图预览…… + + + %1 thumbnails generated ... + 已为%1生成缩略图…… + + + + UBThumbnailTextItem + + Page %0 + 页面 %0 + + + + UBToolsManager + + Mask + 幕布 + + + Ruler + 直尺 + + + Compass + 圆规 + + + Protractor + 量角器 + + + Triangle + 三角尺 + + + Magnifier + 放大镜 + + + Cache + 高级缓存 + + + Axes + + + + + UBTrapFlashController + + Whole page + 整个页面 + + + Web + 网页 + + + + UBUpdateDlg + + Document updater + 文档更新器 + + + files require an update. + 文件需要更新 + + + Backup path: + 备份路径: + + + Browse + 浏览 + + + Update + 更新 + + + Select a backup folder + 选择备份文件夹 + + + Files update successful! +Please reboot the application to access the updated documents. + 文件更新成功! +请重新启动程序以打开已更新的文件。 + + + An error occured during the update. The files have not been affected. + 更新过程中发生错误。文件未被改动。 + + + Files update results + 文件更新结果 + + + Updating file + 正在更新文件 + + + Please wait the import process will start soon... + 请等待,导入过程即将开始…… + + + Remind me later + 稍后再提醒我 + + + + UBWebPluginWidget + + Loading... + 载入中…… + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + 被叫%0(方法=%1, 状态=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Youtube验证失败 + + + Error while uploading video to YouTube (%1) + 视频上传至Youtube过程中发生错误(%1) + + + Upload to YouTube in progress %1 % + 正在上传至Youtube %1 % + + + + UBYouTubePublishingDialog + + Upload + 上传 + + + Autos & Vehicles + 汽车 + + + Music + 音乐 + + + Pets & Animals + 宠物和动物 + + + Sports + 体育与运动 + + + Travel & Events + 旅游与活动 + + + Gaming + 游戏 + + + Comedy + 喜剧 + + + People & Blogs + 人物与博客 + + + News & Politics + 新闻与政治 + + + Entertainment + 娱乐 + + + Education + 教育 + + + Howto & Style + HowTo与时尚 + + + Nonprofits & Activism + 非营利与行动主义 + + + Science & Technology + 科学与技术 + + + + UBZoomPalette + + %1 x + %1x + + + + WBClearButton + + Clear + 清空 + + + + WBDownloadItem + + Save File + 保存文件 + + + Download canceled: %1 + 取消下载:%1 + + + Error opening saved file: %1 + 打开已保存文件错误:%1 + + + Error saving: %1 + 保存文件错误:%1 + + + Network Error: %1 + 网络错误:%1 + + + seconds + + + + minutes + + + + - %4 %5 remaining + - 还剩下%4 %5 + + + %1 of %2 (%3/sec) %4 + %2的%1(%3/秒)%4 + + + ? + unknown file size + 未知文件大小 + + + %1 of %2 - Stopped + %2的%1-已停止 + + + bytes + 字节 + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1个下载 + + + %1 Downloads + always >= 2 + %1个下载 + + + + WBHistoryModel + + Title + 标题 + + + Address + 地址 + + + + WBHistoryTreeModel + + Earlier Today + 今日早些时候 + + + %1 items + %1个项目 + + + + WBSearchLineEdit + + Search + 搜索 + + + + WBTabBar + + New &Tab + 新建标签页 + + + Clone Tab + 复制标签页 + + + &Close Tab + 关闭标签页 + + + Close &Other Tabs + 关闭其它标签页 + + + Reload Tab + 刷新标签页 + + + Reload All Tabs + 刷新所有标签页 + + + + WBTabWidget + + Recently Closed Tabs + 最近关闭的标签页 + + + (Untitled) + 空白页 + + + + WBToolbarSearch + + Search + 搜索 + + + No Recent Searches + 无近期搜索 + + + Recent Searches + 近期搜索 + + + Clear Recent Searches + 清除近期搜索历史 + + + + WBWebPage + + Download + 下载 + + + Add to Current Document + 添加至最近打开的文档 + + + PDF + PDF + + + Error loading page: %1 + 载入页面错误:%1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + 在新标签页中打开 + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + 发布播客至Youtube + + + Title + 标题 + + + Description + 描述 + + + Keywords + 关键词 + + + Category + 类别 + + + YouTube Username + Youtube用户名 + + + YouTube Password + Youtube密码 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">点击“上传”表示您对上传内容拥有全部版权或得到版权所有人将上传内容公开发表在YouTube上的授权,否则此举违反YouTube服务条款 </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + 白色背景 + + + On Dark Background + 黑色背景 + + + Opacity + 透明度 + + + Line Width + 线宽 + + + Medium + + + + Strong + + + + Fine + + + + Pen is Pressure Sensitive + 使用压感笔 + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + 对话 + + + Title + 标题 + + + E-mail + 电子邮箱 + + + Author + 作者 + + + Description + 描述 + + + + documentPublishingDialog + + Dialog + 对话 + + + Title + 标题 + + + E-mail + 电子邮箱 + + + Author + 作者 + + + Description + 描述 + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + 自定义 + + + version : … + 版本:…… + + + Default Settings + 默认设置 + + + Close + 关闭 + + + Display + 显示 + + + Internet + 网页浏览 + + + Show Page with External Browser + 使用外部浏览器 + + + Home Page: + 主页: + + + Virtual Keyboard + 软键盘 + + + Keyboard button size: + 键盘钮大小: + + + Toolbar + 工具栏 + + + Positioned at the Top (recommended for tablets) + 总在最前(平板电脑推荐) + + + Positioned at the Bottom (recommended for white boards) + 总在底部(电子白板推荐) + + + Display Text Under Button + 在按钮下显示文字 + + + Stylus Palette + 工具面板 + + + Horizontal + 横向 + + + Vertical + 纵向 + + + Pen + + + + Marker + 记号笔 + + + About + 关于 + + + Software Update + 软件更新 + + + Check software update at launch + 启动时检查更新 + + + Licences + 证书 + + + Network + 网络连接 + + + Show internal web page content on secondary screen or projector + 在第二屏幕或播放器上显示内部网页内容 + + + Multi display + 多重显示 + + + Swap control display and view display + 交换控制显示和查看显示 + + + Mode + 模式 + + + Mode to start in: + 启动模式: + + + Board + 演示板 + + + Desktop + 桌面 + + + Proxy User: + Proxy用户: + + + Pass: + 密码: + + + Credits + 版权 + + + On Dark Background + 黑色背景 + + + Opacity + 透明度 + + + On Light Background + 白色背景 + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + 截取动画 + + + Select a flash to trap + 选择要截取的动画 + + + about:blank + 空白页 + + + Application name + 应用程序名 + + + Create Application + 创建应用程序 + + + diff --git a/resources/i18n/OpenBoard_zh_CN.ts b/resources/i18n/OpenBoard_zh_CN.ts new file mode 100644 index 0000000..2621530 --- /dev/null +++ b/resources/i18n/OpenBoard_zh_CN.ts @@ -0,0 +1,2917 @@ + + + + + BlackoutWidget + + Click to Return to Application + 点击回到应用程序 + + + + DownloadDialog + + Downloads + 下载 + + + Clean Up + 清空 + + + 0 Items + 0个项目 + + + + DownloadItem + + Form + 形式 + + + Filename + 文件名 + + + Try Again + 再试一次 + + + Stop + 停止 + + + Open + 打开 + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + 发布播客至Youtube + + + Title + 标题 + + + Description + 描述 + + + Author + 作者 + + + + MainWindow + + Board + 演示板 + + + Web + 网页 + + + Documents + 文档 + + + Stylus + 工具面板 + + + Ctrl+T + Ctrl+T + + + Backgrounds + 背景 + + + Change Background + 更换背景 + + + Undo + 撤销 + + + Ctrl+Z + Ctrl+Z + + + Redo + 重复 + + + Ctrl+Y + Ctrl+Y + + + Previous + 上一页 + + + Previous Page + 上一页 + + + PgUp + 向上翻 + + + Next + 下一页 + + + Next Page + 下一页 + + + PgDown + 向下翻 + + + Manage Documents + 管理文档 + + + Ctrl+D + Ctrl+D + + + Web Browsing + 浏览网页 + + + Ctrl+W + Ctrl+W + + + Line + 粗细 + + + Small Line + + + + Medium Line + + + + Large Line + + + + Quit + 退出 + + + Eraser + 橡皮擦 + + + Smalle Eraser + + + + Medium Eraser + + + + Large Eraser + + + + Color + 颜色 + + + Back + 后退 + + + Left + 向左 + + + Forward + 前进 + + + Right + 向右 + + + Reload + 刷新 + + + Reload Current Page + 重新载入最近页 + + + Home + 主页 + + + Load Home Page + 载入主页 + + + Bookmarks + 书签 + + + Show Bookmarks + 显示书签 + + + Bookmark + 书签 + + + Add Bookmark + 添加书签 + + + Display Board + 显示演示板 + + + Ctrl+B + Ctrl+B + + + Erase + 清除页面 + + + Erase Content + 清除内容 + + + Preferences + 自定义 + + + Display Preferences + 显示自定义 + + + Library + 图书馆 + + + Show Library + 显示图书馆 + + + Ctrl+L + Ctrl+L + + + Show Desktop + 显示桌面 + + + Show Computer Desktop + 显示电脑桌面 + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Bigger + 放大 + + + Zoom In + 放大 + + + Ctrl++ + Ctrl++ + + + Smaller + 缩小 + + + Zoom Out + 缩小 + + + Ctrl+- + Ctrl+- + + + New Folder + 新建文件夹 + + + Create a New Folder + 新建文件夹 + + + New Document + 新建文档 + + + Create a New Document + 新建文档 + + + Import + 导入 + + + Import a Document + 导入文档 + + + Export + 导出 + + + Export a Document + 导出文件 + + + Open in Board + 在演示板上打开 + + + Open Page in Board + 在演示板上打开页面 + + + Ctrl+O + Ctrl+O + + + Duplicate + 复制 + + + Duplicate Selected Content + 复制所选内容 + + + Delete + 删除 + + + Delete Selected Content + 删除所选内容 + + + Del + Del + + + Add to Working Document + 添加至工作文档 + + + Add Selected Content to Open Document + 添加所选内容至打开文档 + + + Add + 添加 + + + Add Content to Document + 添加内容至文档 + + + Rename + 重命名 + + + Rename Content + 重命名内容 + + + Tools + 工具 + + + Display Tools + 显示工具 + + + Multi Screen + 多屏显示 + + + Wide Size (16/9) + 宽屏尺寸(16/9) + + + Use Document Wide Size (16/9) + 宽屏显示文档(16/9) + + + Regular Size (4/3) + 标屏尺寸(4/3) + + + Use Document Regular Size (4/3) + 标屏显示文档(4/3) + + + Custom Size + 自定义尺寸 + + + Use Custom Document Size + 自定义尺寸显示文档 + + + Stop Loading + 停止载入 + + + Stop Loading Web Page + 停止载入网页 + + + Cut + 剪切 + + + Copy + 复制 + + + Paste + 粘贴 + + + Sleep + 睡眠 + + + Put Presentation to Sleep + 使演示屏进入睡眠状态 + + + Virtual Keyboard + 软键盘 + + + Display Virtual Keyboard + 打开软键盘 + + + Plain Light Background + 白色背景 + + + Light + 白色 + + + Grid Light Background + 白色网格背景 + + + Plain Dark Background + 黑色背景 + + + Dark + 黑色 + + + Grid Dark Background + 黑色网格背景 + + + Podcast + 播客 + + + Record Presentation to Video + 为演讲录制视频 + + + Record + 录制 + + + Start Screen Recording + 开始屏幕录制 + + + Erase Items + 清除项目 + + + Erase All Items + 清除所有项目 + + + Erase Annotations + 清除标注 + + + Erase All Annotations + 清除所有标注 + + + Clear Page + 清空页面 + + + Clear All Elements + 清空所有内容 + + + Pen + + + + Annotate Document + 标注文档 + + + Ctrl+I + Ctrl+I + + + Erase Annotation + 清除批注 + + + Ctrl+E + Ctrl+E + + + Marker + 记号笔 + + + Highlight + 高亮 + + + Ctrl+M + Ctrl+M + + + Selector + 选择工具 + + + Select And Modify Objects + 选中并修改素材 + + + Ctrl+F + Ctrl+F + + + Hand + 手型工具 + + + Scroll Page + 滚动页面 + + + Laser Pointer + 激光笔 + + + Virtual Laser Pointer + 模拟激光笔 + + + Ctrl+G + Ctrl+G + + + Draw Lines + 直线 + + + Ctrl+J + Ctrl+J + + + Text + 文本 + + + Write Text + 输入文本 + + + Ctrl+K + Ctrl+K + + + Capture + 截图 + + + Capture Part of the Screen + 部分截图 + + + Add To Current Page + 添加至最近打开页面 + + + Add Item To Current Page + 添加项目至最近打开页面 + + + Add To New Page + 添加至新页面 + + + Add Item To New Page + 添加项目至新页面 + + + Add To Library + 添加至图书馆 + + + Add Item To Library + 添加项目至图书馆 + + + Pages + 页面 + + + Create a New Page + 新建页面 + + + New Page + 新页面 + + + Duplicate Page + 复制页面 + + + Duplicate the Current Page + 复制最近打开页面 + + + Import Page + 导入页面 + + + Import an External Page + 导入外部页面 + + + Pause + 暂停 + + + Pause Podcast Recording + 暂停录制播客 + + + Podcast Config + 播客设置 + + + Configure Podcast Recording + 播客录制设置 + + + Flash Trap + 截取动画 + + + Trap Flash Content + 截取动画内容 + + + Web Trap + 截取网页 + + + Trap Web Content + 截取网页内容 + + + Custom Capture + 自定义截图 + + + Window Capture + 窗口截图 + + + Capture a Window + 窗口截图 + + + Embed Web Content + 嵌入网页内容 + + + Capture Embeddable Web Content + 截取可嵌入的网页内容 + + + Show on Display + 在屏幕上显示 + + + Show Main Screen on Display Screen + 在显示屏上显示主屏幕 + + + Erase all Annotations + 清除所有标注 + + + eduMedia + eduMedia + + + Import eduMedia simulation + 导入eduMedia模拟程序 + + + Check Update + 检查更新 + + + Ctrl+H + Ctrl+H + + + OpenBoard + OpenBoard + + + Quit OpenBoard + 关闭OpenBoard + + + Hide OpenBoard + 隐藏OpenBoard + + + Hide OpenBoard Application + 隐藏OpenBoard应用程序 + + + Play + 播放 + + + Interact with items + 与项目互动 + + + Erase Background + 删除背景 + + + Remove the backgound + 移除背景 + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + 需要验证 + + + Username: + 用户名: + + + Password: + 密码: + + + + ProxyDialog + + Proxy Authentication + 代理服务器验证 + + + Connect to Proxy + 连接代理服务器 + + + Username: + 用户名: + + + Password: + 密码: + + + Save username and password for future use + 保存用户名和密码 + + + + QObject + + Element ID = + Element ID = + + + Content is not supported in destination format. + 目标格式不支持该内容。 + + + Remove Page + 删除页面 + + + Are you sure you want to remove 1 page from the selected document '%0'? + 确定要删除选中文件“%0”中的1页? + + + + UBApplication + + Page Size + 页面大小 + + + Podcast + 播客 + + + + UBApplicationController + + Web + 网页 + + + New update available, would you go to the web page ? + 有可用的更新,是否登陆更新页面? + + + No update available + 无可用的更新 + + + Update available + 有可用的更新 + + + Update + 更新 + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + 下载内容%1失败 + + + Download finished + 下载完成 + + + Unknown tool type %1 + 未知工具类型%1 + + + Unknown content type %1 + 未知内容类型%1 + + + Add Item + 添加项目 + + + All Supported (%1) + 所有支持的(%1) + + + Delete page %1 from document + 删除文件的%1页 + + + Page %1 deleted + 已删除%1页 + + + Add file operation failed: file copying error + 增加操作失败文档:文件复制错误 + + + Group + 组合 + + + Ungroup + 取消组合 + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + 颜色 + + + + UBBoardPaletteManager + + Error Adding Image to Library + 添加图片至图书馆出错 + + + CapturedImage + 图像截图 + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + 高级缓存属性 + + + Color: + 颜色: + + + Shape: + 形状: + + + Size: + 大小: + + + Close + 关闭 + + + + UBDesktopPalette + + Capture Part of the Screen + 部分截图 + + + Capture the Screen + 全屏截图 + + + Show the stylus palette + 显示工具面板 + + + Show Board on Secondary Screen + 在第二屏幕显示演示板 + + + Show Desktop on Secondary Screen + 在第二屏幕显示桌面 + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + 新建文件夹 + + + Page %1 + 页面%1 + + + Add Folder of Images + 添加图片文件夹 + + + Add Images + 添加图片 + + + Add Pages from File + 添加页面来自于文件 + + + Duplicating Document %1 + 复制文档%1 + + + Document %1 copied + 已复制文档%1 + + + Remove Page + 删除页面 + + + Remove Document + 删除文档 + + + Are you sure you want to remove the document '%1'? + 确定要删除文档“%1”? + + + Empty Trash + 清空回收站 + + + Are you sure you want to empty trash? + 确定要清空回收站? + + + Emptying trash + 正在清空回收站 + + + Emptied trash + 已清空回收站 + + + Remove Folder + 删除文件夹 + + + Are you sure you want to remove the folder '%1' and all its content? + 确定要删除文件夹“%1”及其所有内容? + + + No document selected! + 未选中任何文档! + + + Open Supported File + 打开支持的文件 + + + Importing file %1... + 导入文件%1…… + + + Failed to import file ... + 导入文件失败…… + + + Import all Images from Folder + 将所有图片导入文件夹 + + + Delete + 删除 + + + Empty + 清空 + + + Trash + 回收站 + + + Open Document + 打开文档 + + + Add all Images to Document + 添加所有图片至文档 + + + All Images (%1) + 所有图片(%1) + + + Selection does not contain any image files! + 选中对象不包含任何图片文件! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + 确定要删除选中文件“%1”中的%n页? + + + + Folder does not contain any image files + 文件夹中无图像文件 + + + Untitled Documents + 未命名文档 + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + 图片 + + + videos + 视频 + + + objects + 素材 + + + widgets + 小工具 + + + All supported files (*.%1) + 所有支持的文件(*.%1) + + + File %1 saved + 文件%1已保存 + + + Inserting page %1 of %2 + 正在插入%2的页面%1 + + + Import successful. + 导入成功。 + + + Import of file %1 successful. + 文件%1导入成功。 + + + Importing file %1 + 正在导入文件 %1 + + + + UBDocumentNavigator + + Page %0 + 页面 %0 + + + + UBDocumentReplaceDialog + + Accept + 接受 + + + Cancel + 取消 + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + 回收站 + + + %1 pages copied + + 已复制页面%1 + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + 已复制页面%1 + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + 正在复制页面 %1/%2 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (复制) + + + Copying page %1/%2 + 正在复制页面 %1/%2 + + + %1 pages copied + + 已复制页面%1 + + + + + UBDownloadWidget + + Downloading files + 下载文件 + + + Cancel + 取消 + + + + UBDraggableThumbnail + + Page %0 + 页面 %0 + + + + UBDraggableThumbnailView + + Page %0 + 页面 %0 + + + + UBExportAdaptor + + Warnings during export was appeared + 导出过程中出现警告 + + + Exporting document... + 文档导出中…… + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + + UBExportCFF + + Export to IWB + 导出至IWB + + + Export as IWB File + 以 IWB文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功。 + + + Export failed. + 导出失败。 + + + + UBExportDocument + + Page + 页面 + + + Export as UBZ File + 以UBZ文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Exporting %1 %2 of %3 + 正在导出的%3的%1 %2 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Exporting document... + 文档导出中…… + + + Failed to export... + + + + Export as UBX File + + + + Export successful. + + + + Export failed. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + 以PDF文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Export to PDF + 以PDF文件格式导出 + + + + UBExportPDF + + Export as PDF File + 以PDF文件格式导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Exporting page %1 of %2 + 正在导出%2的页面%1 + + + Export to PDF + 以PDF文件格式导出 + + + + UBExportWeb + + Page + 页面 + + + Export as Web data + 以网页数据导出 + + + Exporting document... + 文档导出中…… + + + Export successful. + 导出成功 + + + Export failed. + 导出失败 + + + Export to Web Browser + 导出到网页浏览器 + + + + UBFeatureProperties + + Add to page + 添加至页面 + + + Set as background + 设置为背景 + + + Add to library + 添加至图书馆 + + + Object informations + 素材信息 + + + + UBFeaturesActionBar + + Add to favorites + 添加至收藏夹 + + + Share + 分享 + + + Search + 搜索 + + + Delete + 删除 + + + Back to folder + 返回上级文件夹 + + + Remove from favorites + 从收藏夹中移除 + + + Create new folder + 新建文件夹 + + + Rescan file system + 重新扫描文件系统 + + + + UBFeaturesController + + ImportedImage + 已导入图片 + + + Audios + 音频 + + + Movies + 视频 + + + Pictures + 图片 + + + Animations + 动画 + + + Interactivities + 互动 + + + Applications + 应用程序 + + + Shapes + 形状 + + + Favorites + 收藏夹 + + + Web search + 搜索网络 + + + Trash + 回收站 + + + + UBFeaturesNewFolderDialog + + Accept + 接受 + + + Cancel + 取消 + + + Enter a new folder name + + + + + UBFeaturesProgressInfo + + Loading + 载入中 + + + + UBGraphicsGroupContainerItemDelegate + + Locked + 位置锁定 + + + Visible on Extended Screen + 宽屏上可见 + + + + UBGraphicsItemDelegate + + Locked + 位置锁定 + + + Visible on Extended Screen + 宽屏上可见 + + + Go to Content Source + 访问内容来源 + + + Set as background + 设置为背景 + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <在此键入文本> + + + + UBGraphicsTextItemDelegate + + Text Color + 文本颜色 + + + Editable + 可编辑 + + + + UBGraphicsW3CWidgetItem + + Web + 网页 + + + + UBGraphicsWidgetItem + + Loading ... + 载入中…… + + + + UBGraphicsWidgetItemDelegate + + Frozen + 锁定 + + + Transform as Tool + 转换为工具 + + + + UBImportCFF + + Common File Format ( + 常见文件格式 ( + + + Importing file %1... + 正在导入文件 %1…… + + + Import of file %1 failed. + 文件%1导入失败 + + + Import successful. + 导入成功 + + + Import failed. + 导入失败 + + + + UBImportDocument + + Importing file %1... + 正在导入文件%1…… + + + Import successful. + 导入成功 + + + Import of file %1 failed. + 文件%1导入失败 + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + 图片格式 + + + + UBImportPDF + + Portable Document Format (*.pdf) + 可导入文档格式(*.pdf) + + + PDF import failed. + PDF导入失败 + + + Importing page %1 of %2 + 正在导入%2的页面%1 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + 视频发布至内部网过程中发生错误 (%1) + + + Publishing to Intranet in progress %1 % + 正在发布至内部网 %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + 发布 + + + + UBKeyboardPalette + + Enter + 输入 + + + + UBMainWindow + + Yes + + + + No + + + + Ok + 确定 + + + + UBMessagesDialog + + Close + 关闭 + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>为在%2的%1输入用户名和密码</qt> + + + Failed to log to Proxy + 连接代理服务器失败 + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + SSL错误: + +%1 + +%2 + +是否忽略该服务器的这些问题? + + + Yes + + + + No + + + + + UBOpenSankoreImporterWidget + + Cancel + 取消 + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (复制) + + + Document Repository Loss + 文档库丢失 + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + 英语 + + + Russian + 俄语 + + + German + 德语 + + + French + 法语 + + + Swiss French + 瑞士法语 + + + + UBPodcastController + + Failed to start encoder ... + 编码器启动失败…… + + + No Podcast encoder available ... + 没有可用的播客编码器…… + + + Part %1 + 部分%1 + + + on your desktop ... + 在桌面上…… + + + in folder %1 + 在文件夹%1中 + + + Podcast created %1 + 已创建播客%1 + + + Podcast recording error (%1) + 播客录制错误(%1) + + + Default Audio Input + 默认音频输入 + + + No Audio Recording + 无音频录制 + + + Small + + + + Medium + + + + Full + + + + Publish to Intranet + 发布到内部网 + + + Publish to Youtube + 发布到Youtube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + 版本: + + + Marker is pressure sensitive + 使用压感记号笔 + + + + UBProxyLoginDlg + + Proxy Login + 登录代理服务器 + + + Username: + 用户名: + + + Password: + 密码: + + + + UBPublicationDlg + + Publish document on the web + 发布文档至网上 + + + Title: + 标题: + + + Description: + 描述: + + + Publish + 发布 + + + + UBSettings + + My Movies + 我的视频 + + + + UBStartupHintsPalette + + Visible next time + + + + + UBTeacherBarWidget + + + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + 正在生成缩略图预览…… + + + %1 thumbnails generated ... + 已为%1生成缩略图…… + + + + UBThumbnailTextItem + + Page %0 + 页面 %0 + + + + UBToolsManager + + Mask + 幕布 + + + Ruler + 直尺 + + + Compass + 圆规 + + + Protractor + 量角器 + + + Triangle + 三角尺 + + + Magnifier + 放大镜 + + + Cache + 高级缓存 + + + Axes + + + + + UBTrapFlashController + + Whole page + 整个页面 + + + Web + 网页 + + + + UBUpdateDlg + + Document updater + 文档更新器 + + + files require an update. + 文件需要更新 + + + Backup path: + 备份路径: + + + Browse + 浏览 + + + Update + 更新 + + + Select a backup folder + 选择备份文件夹 + + + Files update successful! +Please reboot the application to access the updated documents. + 文件更新成功! +请重新启动程序以打开已更新的文件。 + + + An error occured during the update. The files have not been affected. + 更新过程中发生错误。文件未被改动。 + + + Files update results + 文件更新结果 + + + Updating file + 正在更新文件 + + + Please wait the import process will start soon... + 请等待,导入过程即将开始…… + + + Remind me later + 稍后再提醒我 + + + + UBWebPluginWidget + + Loading... + 载入中…… + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + 被叫%0(方法=%1, 状态=%2) + + + + UBYouTubePublisher + + YouTube authentication failed. + Youtube验证失败 + + + Error while uploading video to YouTube (%1) + 视频上传至Youtube过程中发生错误(%1) + + + Upload to YouTube in progress %1 % + 正在上传至Youtube %1 % + + + + UBYouTubePublishingDialog + + Upload + 上传 + + + Autos & Vehicles + 汽车 + + + Music + 音乐 + + + Pets & Animals + 宠物和动物 + + + Sports + 体育与运动 + + + Travel & Events + 旅游与活动 + + + Gaming + 游戏 + + + Comedy + 喜剧 + + + People & Blogs + 人物与博客 + + + News & Politics + 新闻与政治 + + + Entertainment + 娱乐 + + + Education + 教育 + + + Howto & Style + HowTo与时尚 + + + Nonprofits & Activism + 非营利与行动主义 + + + Science & Technology + 科学与技术 + + + + UBZoomPalette + + %1 x + %1x + + + + WBClearButton + + Clear + 清空 + + + + WBDownloadItem + + Save File + 保存文件 + + + Download canceled: %1 + 取消下载:%1 + + + Error opening saved file: %1 + 打开已保存文件错误:%1 + + + Error saving: %1 + 保存文件错误:%1 + + + Network Error: %1 + 网络错误:%1 + + + seconds + + + + minutes + + + + - %4 %5 remaining + - 还剩下%4 %5 + + + %1 of %2 (%3/sec) %4 + %2的%1(%3/秒)%4 + + + ? + unknown file size + 未知文件大小 + + + %1 of %2 - Stopped + %2的%1-已停止 + + + bytes + 字节 + + + KB + KB + + + MB + MB + + + + WBDownloadManager + + 1 Download + 1个下载 + + + %1 Downloads + always >= 2 + %1个下载 + + + + WBHistoryModel + + Title + 标题 + + + Address + 地址 + + + + WBHistoryTreeModel + + Earlier Today + 今日早些时候 + + + %1 items + %1个项目 + + + + WBSearchLineEdit + + Search + 搜索 + + + + WBTabBar + + New &Tab + 新建标签页 + + + Clone Tab + 复制标签页 + + + &Close Tab + 关闭标签页 + + + Close &Other Tabs + 关闭其它标签页 + + + Reload Tab + 刷新标签页 + + + Reload All Tabs + 刷新所有标签页 + + + + WBTabWidget + + Recently Closed Tabs + 最近关闭的标签页 + + + (Untitled) + 空白页 + + + + WBToolbarSearch + + Search + 搜索 + + + No Recent Searches + 无近期搜索 + + + Recent Searches + 近期搜索 + + + Clear Recent Searches + 清除近期搜索历史 + + + + WBWebPage + + Download + 下载 + + + Add to Current Document + 添加至最近打开的文档 + + + PDF + PDF + + + Error loading page: %1 + 载入页面错误:%1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + 在新标签页中打开 + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + 发布播客至Youtube + + + Title + 标题 + + + Description + 描述 + + + Keywords + 关键词 + + + Category + 类别 + + + YouTube Username + Youtube用户名 + + + YouTube Password + Youtube密码 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">点击“上传”表示您对上传内容拥有全部版权或得到版权所有人将上传内容公开发表在YouTube上的授权,否则此举违反YouTube服务条款 </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + On Light Background + 白色背景 + + + On Dark Background + 黑色背景 + + + Opacity + 透明度 + + + Line Width + 线宽 + + + Medium + + + + Strong + + + + Fine + + + + Pen is Pressure Sensitive + 使用压感笔 + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + 对话 + + + Title + 标题 + + + E-mail + 电子邮箱 + + + Author + 作者 + + + Description + 描述 + + + + documentPublishingDialog + + Dialog + 对话 + + + Title + 标题 + + + E-mail + 电子邮箱 + + + Author + 作者 + + + Description + 描述 + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + 自定义 + + + version : … + 版本:…… + + + Default Settings + 默认设置 + + + Close + 关闭 + + + Display + 显示 + + + Internet + 网页浏览 + + + Show Page with External Browser + 使用外部浏览器 + + + Home Page: + 主页: + + + Virtual Keyboard + 软键盘 + + + Keyboard button size: + 键盘钮大小: + + + Toolbar + 工具栏 + + + Positioned at the Top (recommended for tablets) + 总在最前(平板电脑推荐) + + + Positioned at the Bottom (recommended for white boards) + 总在底部(电子白板推荐) + + + Display Text Under Button + 在按钮下显示文字 + + + Stylus Palette + 工具面板 + + + Horizontal + 横向 + + + Vertical + 纵向 + + + Pen + + + + Marker + 记号笔 + + + About + 关于 + + + Software Update + 软件更新 + + + Check software update at launch + 启动时检查更新 + + + Licences + 证书 + + + Network + 网络连接 + + + Show internal web page content on secondary screen or projector + 在第二屏幕或播放器上显示内部网页内容 + + + Multi display + 多重显示 + + + Swap control display and view display + 交换控制显示和查看显示 + + + Mode + 模式 + + + Mode to start in: + 启动模式: + + + Board + 演示板 + + + Desktop + 桌面 + + + Proxy User: + Proxy用户: + + + Pass: + 密码: + + + Credits + 版权 + + + On Dark Background + 黑色背景 + + + Opacity + 透明度 + + + On Light Background + 白色背景 + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + 截取动画 + + + Select a flash to trap + 选择要截取的动画 + + + about:blank + 空白页 + + + Application name + 应用程序名 + + + Create Application + 创建应用程序 + + + diff --git a/resources/i18n/OpenBoard_zh_TW.ts b/resources/i18n/OpenBoard_zh_TW.ts new file mode 100644 index 0000000..859aece --- /dev/null +++ b/resources/i18n/OpenBoard_zh_TW.ts @@ -0,0 +1,2911 @@ + + + + + BlackoutWidget + + Click to Return to Application + 按滑鼠回到應用程式 + + + + DownloadDialog + + Downloads + 下載 + + + Clean Up + 清理乾淨 + + + 0 Items + 零個項目 + + + + DownloadItem + + Form + 表格 + + + Filename + 檔名 + + + Try Again + 再試一次 + + + Stop + 停止 + + + Open + 開啟 + + + + IntranetPodcastPublishingDialog + + Publish Podcast to YouTube + 發佈Podcast至YouTube + + + Title + 標題 + + + Description + 描述 + + + Author + 作者 + + + + MainWindow + + Board + 演示版 + + + Web + 網頁 + + + Documents + 文件 + + + Stylus + 桌面工具 + + + Ctrl+T + Ctrl+T + + + Backgrounds + 背景 + + + Text + 文字 + + + Capture + 擷取 + + + Add To Current Page + 新增至目前頁面 + + + Add To New Page + 新增至新頁面 + + + Add To Library + 新增至圖書館 + + + Pages + 頁面 + + + New Page + 新頁面 + + + Undo + 回復 + + + Change Background + 更換背景 + + + Ctrl+Z + Ctrl+Z + + + Redo + 重做 + + + Ctrl+Y + Ctrl+Y + + + Previous + 上一頁 + + + Previous Page + 上一頁 + + + PgUp + 往上 + + + Next + 下一頁 + + + Next Page + 下一頁 + + + PgDown + 往下 + + + Manage Documents + 文件管理 + + + Ctrl+D + Ctrl+D + + + Web Browsing + 網頁瀏覽 + + + Ctrl+W + Ctrl+W + + + Small Line + + + + Medium Line + + + + Large Line + + + + Smalle Eraser + + + + Medium Eraser + + + + Large Eraser + + + + Reload Current Page + 重新載入目前頁面 + + + Load Home Page + 載入主頁 + + + Show Bookmarks + 顯示書籤 + + + Add Bookmark + 新增書籤 + + + Display Board + 顯示演示板 + + + Erase Content + 清除內容 + + + Display Preferences + 顯示偏好設定 + + + Show Library + 顯示圖書館 + + + Show Computer Desktop + 顯示本機桌面 + + + Ctrl+Shift+H + Ctrl+Shift+H + + + Create a New Folder + 新建檔案夾 + + + Create a New Document + 建立新文件 + + + Import a Document + 匯入文件 + + + Export a Document + 匯出文件 + + + Open Page in Board + 於演示板開啟頁面 + + + Duplicate Selected Content + 複製所選內容 + + + Delete Selected Content + 刪除所選內容 + + + Add Content to Document + 新增內容至文件 + + + Rename Content + 重新命名內容 + + + Display Tools + 顯示工具 + + + Use Document Wide Size (16/9) + 採寬尺寸文件(16/9) + + + Use Document Regular Size (4/3) + 採一般尺寸文件 (4/3) + + + Use Custom Document Size + 自訂文件尺寸 + + + Stop Loading Web Page + 停止載入網頁 + + + Put Presentation to Sleep + 演示進入睡眠狀態 + + + Display Virtual Keyboard + 顯示虛擬鍵盤 + + + Record Presentation to Video + 錄製演示影片 + + + Erase Items + 清除項目 + + + Erase All Items + 清除所有項目 + + + Erase Annotations + 清除桌面標注 + + + Erase All Annotations + 清除所有桌面標注 + + + Clear All Elements + 清空所有元件 + + + Pen + 電子筆 + + + Annotate Document + 標注文件 + + + Ctrl+I + Ctrl+I + + + Erase Annotation + 清除桌面標注 + + + Ctrl+E + Ctrl+E + + + Marker + 提示筆 + + + Highlight + 亮點 + + + Ctrl+M + Ctrl+M + + + Selector + 選擇器 + + + Select And Modify Objects + 選擇並修改物件 + + + Ctrl+F + Ctrl+F + + + Hand + 手型工具 + + + Capture Part of the Screen + 部份截圖 + + + Custom Capture + 自訂截圖範圍 + + + Capture a Window + 擷取視窗 + + + Embed Web Content + 嵌入網頁內容 + + + Capture Embeddable Web Content + 擷取可嵌入的網頁內容 + + + Show Main Screen on Display Screen + 在顯示器上顯示主螢幕 + + + Erase all Annotations + 清除所有桌面標注 + + + eduMedia + eduMedia + + + Import eduMedia simulation + 匯入eduMedia模擬程序 + + + Check Update + 更新檢查 + + + Ctrl+H + Ctrl+H + + + Zoom In + 放大 + + + Zoom Out + 縮小 + + + Line + 線條粗細 + + + Quit + 停止 + + + Eraser + 橡皮擦 + + + Color + 顏色 + + + Back + 退回 + + + Left + 向左 + + + Forward + 前進 + + + Right + 向右 + + + Reload + 重新載入 + + + Home + 主頁 + + + Bookmarks + 書籤 + + + Bookmark + 書籤 + + + Ctrl+B + Ctrl+B + + + Clear Page + 清空頁面 + + + Preferences + 偏好設定 + + + Erase + 清除 + + + Library + 圖書館 + + + Ctrl+L + Ctrl+L + + + Show Desktop + 顯示桌面 + + + Bigger + 放大 + + + Ctrl++ + Ctrl++ + + + Smaller + 縮小 + + + Ctrl+- + Ctrl+- + + + New Folder + 新檔案夾 + + + New Document + 新文件 + + + Import + 匯入 + + + Export + 匯出 + + + Open in Board + 於演示板開啟 + + + Ctrl+O + Ctrl+O + + + Duplicate + 複製 + + + Delete + 刪除 + + + Del + Del + + + Add to Working Document + 新增至運作中文件 + + + Add Selected Content to Open Document + 新增所選內容至開啟的文件 + + + Add + 新增 + + + Rename + 重新命名 + + + Cut + 剪下 + + + Copy + 複製 + + + Paste + 貼上 + + + Grid Light Background + 淡色網格背景 + + + Grid Dark Background + 深色網格背景 + + + Start Screen Recording + 開始螢幕錄影 + + + Scroll Page + 捲動頁面 + + + Laser Pointer + 簡報筆 + + + Virtual Laser Pointer + 虛擬簡報筆 + + + Ctrl+G + Ctrl+G + + + Draw Lines + 繪線 + + + Ctrl+J + Ctrl+J + + + Write Text + 文字書寫 + + + Ctrl+K + Ctrl+K + + + Add Item To Current Page + 新增項目至目前頁面 + + + Add Item To New Page + 新增項目至新頁面 + + + Add Item To Library + 新增項目至圖書館 + + + Create a New Page + 建立新頁面 + + + Duplicate Page + 複製頁面 + + + Duplicate the Current Page + 複製目前頁面 + + + Import Page + 匯入頁面 + + + Import an External Page + 匯入外部頁面 + + + Pause + 暫停 + + + Pause Podcast Recording + 暫停錄製Podcast + + + Podcast Config + Podcast設定 + + + Configure Podcast Recording + Podcast錄製設定 + + + Flash Trap + Flash動畫擷取 + + + Trap Flash Content + 擷取Flash動畫內容 + + + Web Trap + 網頁擷取 + + + Trap Web Content + 擷取網頁內容 + + + Window Capture + 螢幕擷取 + + + Show on Display + 於顯示器上顯示 + + + Sleep + 睡眠狀態 + + + Virtual Keyboard + 虛擬鍵盤 + + + Plain Light Background + 淡色背景 + + + Light + 淡色 + + + Plain Dark Background + 深色背景 + + + Dark + 深色 + + + Podcast + Podcast + + + Record + 錄製 + + + Tools + 工具 + + + Multi Screen + 多螢幕顯示 + + + Wide Size (16/9) + 寬螢幕顯示(16/9) + + + Regular Size (4/3) + 一般螢幕顯示(4/3) + + + Custom Size + 自訂螢幕大小 + + + Stop Loading + 停止載入 + + + OpenBoard + OpenBoard + + + Quit OpenBoard + 退出OpenBoard + + + Hide OpenBoard + 隱藏OpenBoard + + + Hide OpenBoard Application + 隱藏OpenBoard應用程式 + + + Play + 播放 + + + Interact with items + 互動 + + + Erase Background + 清除背景 + + + Remove the backgound + 移除背景 + + + Ruled Light Background + + + + Ruled Dark Background + + + + Open Tutorial + + + + Open the tutorial web page + + + + Reset grid size + + + + Small Eraser + + + + Color 1 + + + + Color 2 + + + + Color 3 + + + + Color 4 + + + + Color 5 + + + + Draw intermediate grid lines + + + + + PasswordDialog + + Authentication Required + 需要驗證 + + + Username: + 帳號: + + + Password: + 密碼: + + + + ProxyDialog + + Proxy Authentication + Proxy驗證 + + + Connect to Proxy + 連接至Proxy + + + Username: + 帳號: + + + Password: + 密碼: + + + Save username and password for future use + 儲存帳號密碼 + + + + QObject + + Element ID = + 元件ID = + + + Content is not supported in destination format. + 內容格式不支援。 + + + Remove Page + 移除頁面 + + + Are you sure you want to remove 1 page from the selected document '%0'? + 確定要移除所選文件 '%0' 的一個頁面 ? + + + + UBApplication + + Page Size + 頁面大小 + + + Podcast + Podcast + + + + UBApplicationController + + Web + 網頁 + + + New update available, would you go to the web page ? + 可更新,要上網頁嗎? + + + No update available + 目前並無更新 + + + Update available + 目前可更新 + + + Update + 更新 + + + + UBBackgroundPalette + + Grid size + + + + Draw intermediate grid lines + + + + + UBBoardController + + Downloading content %1 failed + 目前 %1 下載失敗 + + + Download finished + 下載完成 + + + Unknown tool type %1 + 陌生工具型態 %1 + + + Add Item + 新增項目 + + + All Supported (%1) + 全部已支援(%1) + + + Unknown content type %1 + 陌生內容型態 %1 + + + Delete page %1 from document + 刪除文件的第 %1 頁 + + + Page %1 deleted + 已刪除第 %1 頁 + + + Add file operation failed: file copying error + 新增檔案失敗:檔案複製有錯誤 + + + Group + 群組 + + + Ungroup + 取消群組 + + + Saving document... + + + + Document has just been saved... + + + + Deleting page %1 + + + + Color + 顏色 + + + + UBBoardPaletteManager + + Error Adding Image to Library + 錯誤新增圖像至圖書館 + + + CapturedImage + 圖像擷取 + + + + UBBoardThumbnailsView + + Loading page (%1/%2) + + + + + UBCachePropertiesWidget + + Cache Properties + Cache屬性 + + + Color: + 顏色: + + + Shape: + 形狀: + + + Size: + 大小: + + + Close + 關閉 + + + + UBDesktopPalette + + Capture Part of the Screen + 擷取部份螢幕 + + + Capture the Screen + 擷取螢幕 + + + Show the stylus palette + 顯示桌面工具 + + + Show Board on Secondary Screen + 於第二螢幕顯示演示板 + + + Show Desktop on Secondary Screen + 於第二螢幕顯示桌面 + + + Show OpenBoard + + + + + UBDocumentController + + New Folder + 新檔案夾 + + + Page %1 + 第 %1 頁 + + + Add Folder of Images + 新增圖像檔案夾 + + + Add Images + 新增圖像 + + + Add Pages from File + 從檔案新增頁面 + + + Duplicating Document %1 + 文件 %1 複製中 + + + Document %1 copied + 文件 %1 已複製 + + + Remove Page + 移除頁面 + + + Remove Document + 移除文件 + + + Are you sure you want to remove the document '%1'? + 確定要移除文件 '%1'? + + + Empty Trash + 清空回收桶 + + + Are you sure you want to empty trash? + 確定要清空回收桶? + + + Emptying trash + 回收桶清空中 + + + Emptied trash + 回收桶已清空 + + + Remove Folder + 移除檔案夾 + + + Are you sure you want to remove the folder '%1' and all its content? + 確定要移除檔案夾 '%1' 及其所有內容? + + + No document selected! + 未選擇任何文件! + + + Open Supported File + 開啟支援的檔案 + + + Importing file %1... + 檔案 %1 匯入中... + + + Failed to import file ... + 匯入檔案失敗... + + + Import all Images from Folder + 從檔案夾匯入所有圖像 + + + Delete + 刪除 + + + Empty + 清空 + + + Trash + 回收桶 + + + Open Document + 開啟文件 + + + Add all Images to Document + 新增所有圖像至文件 + + + All Images (%1) + 所有圖像( %1 ) + + + Selection does not contain any image files! + 所選內容並沒有圖像檔! + + + Are you sure you want to remove %n page(s) from the selected document '%1'? + + 確定要從所選文件 '%1' 移除 %n 個頁面? + + + + Folder does not contain any image files + 檔案夾並沒有圖像檔 + + + Untitled Documents + 未命名文件 + + + duplicated %1 page + duplicated %1 pages + + + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + The document '%1' has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed? + + + + Title page + + + + + UBDocumentManager + + images + 圖像 + + + videos + 影片 + + + objects + 物件 + + + widgets + 小工具 + + + All supported files (*.%1) + 所有支援的檔案 (*.%1) + + + File %1 saved + 已儲存檔案 %1 + + + Inserting page %1 of %2 + 頁面 %2 的 %1 插入中 + + + Import successful. + 匯入成功。 + + + Import of file %1 successful. + 檔案 %1 匯入成功。 + + + Importing file %1 + 匯入檔案 %1 + + + + UBDocumentNavigator + + Page %0 + 第 %0 頁 + + + + UBDocumentPublisher + + Export failed. + 匯出失敗。 + + + + UBDocumentReplaceDialog + + Accept + 接受 + + + Cancel + 取消 + + + Replace + + + + The name %1 is allready used. +Keeping this name will replace the document. +Providing a new name will create a new document. + + + + + UBDocumentTreeModel + + Trash + 回收桶 + + + %1 pages copied + + 已複製 %1 個頁面 + + + + My documents + + + + + UBDocumentTreeView + + %1 pages copied + + 已複製 %1 個頁面 + + + + Remove Item + + + + Are you sure you want to remove the selected item(s) ? + + + + Copying page %1/%2 + 頁面 %1/%2 複製中 + + + + UBDocumentTreeWidget + + %1 (copy) + %1 (copy) + + + Copying page %1/%2 + 頁面 %1/%2 複製中 + + + %1 pages copied + + 已複製 %1 個頁面 + + + + + UBDownloadWidget + + Downloading files + 檔案下載中 + + + Cancel + 取消 + + + + UBDraggableThumbnail + + Page %0 + 第 %0 頁 + + + + UBDraggableThumbnailView + + Page %0 + 第 %0 頁 + + + + UBExportAdaptor + + Warnings during export was appeared + 匯出過程出現警告 + + + Exporting document... + + + + Export failed + + + + Unable to export to the selected location. You do not have the permissions necessary to save the file. + + + + Export failed: location not writable + + + + Export successful. + + + + + UBExportCFF + + Export to IWB + 匯出至IWB + + + Export as IWB File + 以IWB格式匯出 + + + Exporting document... + 匯出文件... + + + Export successful. + 成功匯出。 + + + Export failed. + 匯出失敗。 + + + + UBExportDocument + + Page + 頁面 + + + Export as UBZ File + 以UBZ格式匯出 + + + Exporting document... + 文件匯出中... + + + Export successful. + 匯出成功。 + + + Exporting %1 %2 of %3 + %3 的 %1 %2 匯出中 + + + Export to OpenBoard Format + + + + + UBExportDocumentSetAdaptor + + Export failed. + 匯出失敗。 + + + Failed to export... + + + + Export as UBX File + + + + Exporting document... + + + + Export successful. + + + + Export to OpenBoard UBX Format + + + + + UBExportFullPDF + + Export as PDF File + 以PDF格式匯出 + + + Exporting document... + 匯出文件中... + + + Export to PDF + 匯出成PDF + + + Export successful. + 匯出成功。 + + + + UBExportPDF + + Export as PDF File + 以PDF格式匯出 + + + Exporting page %1 of %2 + 頁面 %2 的 %1 匯出中 + + + Export successful. + 匯出成功。 + + + Exporting document... + 匯出文件中... + + + Export to PDF + 匯出成PDF + + + + UBExportWeb + + Page + 頁面 + + + Export as Web data + 以網頁資料格式匯出 + + + Exporting document... + 匯出文件中... + + + Export successful. + 匯出成功。 + + + Export failed. + 匯出失敗。 + + + Export to Web Browser + 匯出成網頁瀏覽 + + + + UBFeatureProperties + + Add to page + 新增至頁面 + + + Set as background + 設定成背景 + + + Add to library + 新增至圖書館 + + + Object informations + 物件資訊 + + + + UBFeaturesActionBar + + Add to favorites + 新增至我的最愛 + + + Share + 分享 + + + Search + 搜尋 + + + Delete + 刪除 + + + Back to folder + 回到檔案夾 + + + Remove from favorites + 從我的最愛移除 + + + Create new folder + 新建檔案夾 + + + Rescan file system + 重新掃描檔案系統 + + + + UBFeaturesController + + ImportedImage + 匯入的圖像 + + + Audios + 音訊 + + + Movies + 影片 + + + Pictures + 圖案 + + + Animations + 動畫 + + + Interactivities + 互動 + + + Applications + 應用程式 + + + Shapes + 形狀 + + + Favorites + 我的最愛 + + + Web search + 網路搜尋 + + + Trash + 回收桶 + + + + UBFeaturesNewFolderDialog + + Accept + 接受 + + + Cancel + 取消 + + + Enter a new folder name + 鍵入檔案名稱 + + + + UBFeaturesProgressInfo + + Loading + 載入中 + + + + UBGraphicsGroupContainerItemDelegate + + Locked + 鎖定 + + + Visible on Extended Screen + 於延伸螢幕可見 + + + + UBGraphicsItemDelegate + + Locked + 鎖定 + + + Visible on Extended Screen + 於延伸螢幕可見 + + + Go to Content Source + 至內容來源 + + + Set as background + 設定成背景 + + + + UBGraphicsMediaItem + + Media resource couldn't be resolved + + + + Unsupported media format + + + + Media playback service not found + + + + Media error: + + + + + UBGraphicsTextItem + + <Type Text Here> + <此處鍵入文字> + + + + UBGraphicsTextItemDelegate + + Text Color + 文字顏色 + + + Editable + 可編輯 + + + + UBGraphicsW3CWidgetItem + + Web + 網路 + + + + UBGraphicsWidgetItem + + Loading ... + 載入中... + + + + UBGraphicsWidgetItemDelegate + + Frozen + 凍結 + + + Transform as Tool + 轉換為工具 + + + + UBImportCFF + + Common File Format ( + 常見檔案格式 ( + + + Importing file %1... + 檔案 %1 匯入中... + + + Import of file %1 failed. + 檔案 %1 匯入失敗。 + + + Import successful. + 匯入成功。 + + + Import failed. + 匯入失敗。 + + + + UBImportDocument + + Importing file %1... + 檔案 %1 匯入中... + + + Import successful. + 匯入成功。 + + + Import of file %1 failed. + 檔案 %1 匯入失敗。 + + + OpenBoard (*.ubz) + + + + + UBImportDocumentSetAdaptor + + Openboard (set of documents) (*.ubx) + + + + + UBImportImage + + Image Format ( + 圖像格式( + + + + UBImportPDF + + Portable Document Format (*.pdf) + Portable Document Format (*.pdf) + + + PDF import failed. + PDF匯入失敗。 + + + Importing page %1 of %2 + 頁面 %2 的 %1 匯入中 + + + + UBIntranetPodcastPublisher + + Error while publishing video to intranet (%1) + 影片發佈到內部網路 (%1) 時有錯誤 + + + Publishing to Intranet in progress %1 % + 發佈到內部網路中 %1 % + + + + UBIntranetPodcastPublishingDialog + + Publish + 發佈 + + + + UBKeyboardPalette + + Enter + 鍵入 + + + + UBMainWindow + + Yes + + + + No + + + + Ok + Ok + + + + UBMessagesDialog + + Close + 關閉 + + + + UBNetworkAccessManager + + <qt>Enter username and password for "%1" at %2</qt> + <qt>輸入 "%1" 在 %2 的帳號密碼</qt> + + + Failed to log to Proxy + 登入Proxy失敗 + + + Yes + + + + No + + + + SSL Errors: + +%1 + +%2 + +Do you want to ignore these errors for this host? + + + + + UBOpenSankoreImporterWidget + + Cancel + 取消 + + + Open-Sankore Documents Detected + + + + Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the “Proceed” button to launch the importer application. + + + + Show this panel next time + + + + You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents. + + + + Proceed + + + + + UBPersistenceManager + + (copy) + (複製) + + + Document Repository Loss + 文件資料庫遺失 + + + OpenBoard has lost access to the document repository '%1'. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well. + + + + + UBPlatformUtils + + English + 英文 + + + Russian + 俄文 + + + German + 德文 + + + French + 法文 + + + Swiss French + 法文(瑞士) + + + + UBPodcastController + + Failed to start encoder ... + 編碼器(encoder)啟動失敗... + + + No Podcast encoder available ... + 沒有可用的Podcast編碼器(encoder)... + + + Part %1 + Part %1 + + + on your desktop ... + 在您的桌面... + + + in folder %1 + 在檔案夾 %1 中 + + + Podcast created %1 + Podcast 已建立 %1 + + + Podcast recording error (%1) + Podcast錄製有錯誤 (%1) + + + Default Audio Input + 預設的音頻輸入 + + + No Audio Recording + 無音頻錄製 + + + Small + + + + Medium + + + + Full + + + + Publish to Intranet + 發佈到內部網路 + + + Publish to Youtube + 發佈至YouTube + + + OpenBoard Cast + + + + + UBPreferencesController + + version: + 版本: + + + Marker is pressure sensitive + 感壓型提示筆 + + + + UBProxyLoginDlg + + Proxy Login + Proxy登入 + + + Username: + 帳號: + + + Password: + 密碼: + + + + UBPublicationDlg + + Publish document on the web + 發佈文件至網路 + + + Title: + 標題: + + + Description: + 描述: + + + Publish + 發佈 + + + + UBSettings + + My Movies + 我的影片 + + + + UBStartupHintsPalette + + Visible next time + + + + + UBThumbnailAdaptor + + Generating preview thumbnails ... + 產生預覽縮圖中... + + + %1 thumbnails generated ... + 已產生縮圖 %1... + + + + UBThumbnailTextItem + + Page %0 + 第 %0 頁 + + + + UBToolsManager + + Compass + 圓規 + + + Ruler + + + + Protractor + 量角器 + + + Mask + 遮罩 + + + Triangle + 三角形 + + + Magnifier + 放大鏡 + + + Cache + Cache + + + Axes + + + + + UBTrapFlashController + + Whole page + 整頁 + + + Web + 網路 + + + + UBUpdateDlg + + Document updater + 文件更新器 + + + files require an update. + 檔案需要更新。 + + + Backup path: + 備份檔案路徑: + + + Browse + 瀏覽 + + + Update + 更新 + + + Select a backup folder + 選擇備份檔案夾 + + + Files update successful! +Please reboot the application to access the updated documents. + 成功更新檔案! +請重新啟動程式使用該檔案。 + + + An error occured during the update. The files have not been affected. + 更新過程出現錯誤,原檔案並未更動。 + + + Files update results + 檔案更新結果 + + + Updating file + 更新檔案中 + + + Please wait the import process will start soon... + 即將開始匯入,請稍待... + + + Remind me later + 稍候題提醒我 + + + + UBWebPluginWidget + + Loading... + 載入中... + + + + UBWidgetUniboardAPI + + %0 called (method=%1, status=%2) + 已呼叫 %0 (方法= %1 , 狀態= %2 ) + + + + UBYouTubePublisher + + YouTube authentication failed. + YouTube驗證失敗。 + + + Error while uploading video to YouTube (%1) + 影片上傳至YouTube (%1)過程中有錯誤 + + + Upload to YouTube in progress %1 % + 上傳至YouTube中 %1 % + + + + UBYouTubePublishingDialog + + Upload + 上傳 + + + Autos & Vehicles + 各類交通工具 + + + Music + 音樂 + + + Pets & Animals + 寵物與動物 + + + Sports + 運動 + + + Travel & Events + 旅遊與活動 + + + Gaming + 遊戲 + + + Comedy + 喜劇 + + + People & Blogs + 人物與網誌 + + + News & Politics + 新聞與政治 + + + Entertainment + 娛樂 + + + Education + 教育 + + + Howto & Style + DIY 教學 + + + Nonprofits & Activism + 非營利組織與行動主義 + + + Science & Technology + 科學與技術 + + + + UBZoomPalette + + %1 x + %1 x + + + + WBClearButton + + Clear + 清空 + + + + WBDownloadItem + + Save File + 儲存檔案 + + + Download canceled: %1 + 取消下載: %1 + + + Error opening saved file: %1 + 已存檔案開啟時有錯誤: %1 + + + Error saving: %1 + 儲存錯誤: %1 + + + Network Error: %1 + 網路錯誤: %1 + + + seconds + + + + minutes + + + + - %4 %5 remaining + - 還剩下 %4 %5 + + + %1 of %2 (%3/sec) %4 + %2 的 %1 (%3/秒) %4 + + + %1 of %2 - Stopped + %2 的 %1 - 已停止 + + + bytes + bytes + + + KB + KB + + + MB + MB + + + ? + unknown file size + ? + + + + WBDownloadManager + + 1 Download + 1 個下載 + + + %1 Downloads + always >= 2 + %1 個下載 + + + + WBHistoryModel + + Title + 標題 + + + Address + 地址 + + + + WBHistoryTreeModel + + Earlier Today + 今日稍早 + + + %1 items + %1 個項目 + + + + WBSearchLineEdit + + Search + 搜尋 + + + + WBTabBar + + New &Tab + 新建分頁(&T) + + + Clone Tab + 複製分頁 + + + &Close Tab + 關閉分頁(&C) + + + Close &Other Tabs + 關閉其他分頁 (&O) + + + Reload Tab + 重新載入分頁 + + + Reload All Tabs + 重新載入所有分頁 + + + + WBTabWidget + + Recently Closed Tabs + 最近關閉的分頁 + + + (Untitled) + 空白頁 + + + + WBToolbarSearch + + Search + 搜尋 + + + No Recent Searches + 無近期搜尋 + + + Recent Searches + 近期搜尋 + + + Clear Recent Searches + 清除近期搜尋 + + + + WBWebPage + + Download + 下載 + + + Add to Current Document + 新增至目前文件 + + + PDF + PDF + + + Error loading page: %1 + 頁面載入錯誤: %1 + + + Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document? + + + + + WBWebView + + Open in New Tab + 於新分頁中開啟 + + + + XPDFRenderer + + Processing... + + + + + YouTubePublishingDialog + + Publish Podcast to YouTube + 發佈Podcast至YouTube + + + Title + 標題 + + + Description + 描述 + + + Keywords + 關鍵字 + + + Category + 類別 + + + YouTube Username + YouTube帳號 + + + YouTube Password + YouTube密碼 + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:10pt;">By clicking 'Upload,' you certify that you own all rights to the content or that you are authorized by the owner to make the content publicly available on YouTube, and that it otherwise complies with the YouTube Terms of Service located at </span><a href="http://www.youtube.com/t/terms"><span style=" font-family:'Lucida Grande'; font-size:10pt; text-decoration: underline; color:#0000ff;">http://www.youtube.com/t/terms</span></a></p></body></html> + + + OpenBoard + OpenBoard + + + Restore credentials on reboot + + + + + brushProperties + + Opacity + 透明度 + + + On Light Background + 淡色背景 + + + On Dark Background + 深色背景 + + + Line Width + 線寬 + + + Medium + + + + Strong + + + + Fine + + + + Pen is Pressure Sensitive + 感壓筆 + + + Show preview circle from + + + + px + + + + + capturePublishingDialog + + Dialog + 對話 + + + Title + 標題 + + + E-mail + E-mail + + + Author + 作者 + + + Description + 描述 + + + + documentPublishingDialog + + Dialog + 對話 + + + Title + 標題 + + + E-mail + E-mail + + + Author + 作者 + + + Description + 描述 + + + + documents + + OpenBoard Documents + + + + Creation date + + + + Update date + + + + Alphabetical order + + + + Sort Order + + + + + preferencesDialog + + Preferences + 偏好設定 + + + Default Settings + 預設 + + + Close + 關閉 + + + Display + 顯示 + + + Show Page with External Browser + 用外部瀏覽器顯示頁面 + + + Virtual Keyboard + 虛擬鍵盤 + + + Keyboard button size: + 按鍵大小: + + + Positioned at the Top (recommended for tablets) + 置放在頂部(平板適用) + + + Positioned at the Bottom (recommended for white boards) + 置放在頂底部(電子白板適用) + + + Display Text Under Button + 在按鈕下顯示文字 + + + Stylus Palette + 桌面工具 + + + Horizontal + 橫向 + + + Vertical + 縱向 + + + About + 關於 + + + Software Update + 軟體更新 + + + Check software update at launch + 啟用時檢查更新 + + + Internet + 網際網路 + + + Home Page: + 主頁: + + + Toolbar + 工具列 + + + Pen + 電子筆 + + + Marker + 提示筆 + + + version : … + 版本: … + + + Licences + 授權條款 + + + Network + 網路 + + + Show internal web page content on secondary screen or projector + 於第二螢幕或投影機顯示內部網頁內容 + + + Multi display + 多重顯示 + + + Swap control display and view display + 控制螢幕與顯示螢幕之間切換 + + + Mode + 模式 + + + Mode to start in: + 啟動模式: + + + Board + 演示板 + + + Desktop + 桌面 + + + Proxy User: + Proxy User: + + + Pass: + 密碼: + + + Credits + 貢獻 + + + On Dark Background + 深色背景 + + + Opacity + 透明度 + + + On Light Background + 淡色背景 + + + Swap first and second view displays + + + + Built-in virtual keyboard button size: + + + + Use system keyboard (recommended) + + + + Grid + + + + Open-Sankoré Importer + + + + Check if Open-Sankoré data could be imported at launch + + + + Documents Mode + + + + Display date column on alphabetical sort + + + + Empty trash for documents older than + + + + days + + + + PDF Rendering + + + + Improve zoom execution time (can slightly affect rendering quality) + + + + + trapFlashDialog + + Trap flash + 擷取flash + + + Select a flash to trap + 選擇要擷取的flash動畫 + + + about:blank + 空白頁 + + + Application name + 應用程式名稱 + + + Create Application + 建立應用程式 + + + diff --git a/resources/images/OpenBoard.png b/resources/images/OpenBoard.png new file mode 100644 index 0000000..3be16fe Binary files /dev/null and b/resources/images/OpenBoard.png differ diff --git a/resources/images/addItemToCurrentPage.svg b/resources/images/addItemToCurrentPage.svg new file mode 100644 index 0000000..c5d6f5f --- /dev/null +++ b/resources/images/addItemToCurrentPage.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/addItemToLibrary.svg b/resources/images/addItemToLibrary.svg new file mode 100644 index 0000000..5095011 --- /dev/null +++ b/resources/images/addItemToLibrary.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/addItemToNewPage.svg b/resources/images/addItemToNewPage.svg new file mode 100644 index 0000000..080542c --- /dev/null +++ b/resources/images/addItemToNewPage.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/angleMarker.svg b/resources/images/angleMarker.svg new file mode 100644 index 0000000..216eac4 --- /dev/null +++ b/resources/images/angleMarker.svg @@ -0,0 +1,59 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/asc.png b/resources/images/asc.png new file mode 100644 index 0000000..1b61cce Binary files /dev/null and b/resources/images/asc.png differ diff --git a/resources/images/backgroundPalette/background1.svg b/resources/images/backgroundPalette/background1.svg new file mode 100644 index 0000000..468c393 --- /dev/null +++ b/resources/images/backgroundPalette/background1.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background1On.svg b/resources/images/backgroundPalette/background1On.svg new file mode 100644 index 0000000..83d52f5 --- /dev/null +++ b/resources/images/backgroundPalette/background1On.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background2.svg b/resources/images/backgroundPalette/background2.svg new file mode 100644 index 0000000..1023164 --- /dev/null +++ b/resources/images/backgroundPalette/background2.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background2On.svg b/resources/images/backgroundPalette/background2On.svg new file mode 100644 index 0000000..75c81a8 --- /dev/null +++ b/resources/images/backgroundPalette/background2On.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background3.svg b/resources/images/backgroundPalette/background3.svg new file mode 100644 index 0000000..7198b41 --- /dev/null +++ b/resources/images/backgroundPalette/background3.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background3On.svg b/resources/images/backgroundPalette/background3On.svg new file mode 100644 index 0000000..26ebcd0 --- /dev/null +++ b/resources/images/backgroundPalette/background3On.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background4.svg b/resources/images/backgroundPalette/background4.svg new file mode 100644 index 0000000..053ebf0 --- /dev/null +++ b/resources/images/backgroundPalette/background4.svg @@ -0,0 +1,133 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/backgroundPalette/background4On.svg b/resources/images/backgroundPalette/background4On.svg new file mode 100644 index 0000000..2513743 --- /dev/null +++ b/resources/images/backgroundPalette/background4On.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/backgroundPalette/background5.svg b/resources/images/backgroundPalette/background5.svg new file mode 100644 index 0000000..ac6e870 --- /dev/null +++ b/resources/images/backgroundPalette/background5.svg @@ -0,0 +1,146 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/backgroundPalette/background5On.svg b/resources/images/backgroundPalette/background5On.svg new file mode 100644 index 0000000..25d0a1c --- /dev/null +++ b/resources/images/backgroundPalette/background5On.svg @@ -0,0 +1,149 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/backgroundPalette/background6.svg b/resources/images/backgroundPalette/background6.svg new file mode 100644 index 0000000..1c38545 --- /dev/null +++ b/resources/images/backgroundPalette/background6.svg @@ -0,0 +1,146 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/backgroundPalette/background6On.svg b/resources/images/backgroundPalette/background6On.svg new file mode 100644 index 0000000..1210a25 --- /dev/null +++ b/resources/images/backgroundPalette/background6On.svg @@ -0,0 +1,150 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/backgroundPalette/resetDefaultGridSize.svg b/resources/images/backgroundPalette/resetDefaultGridSize.svg new file mode 100644 index 0000000..5df55a0 --- /dev/null +++ b/resources/images/backgroundPalette/resetDefaultGridSize.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/resources/images/banner.png b/resources/images/banner.png new file mode 100644 index 0000000..546f5cb Binary files /dev/null and b/resources/images/banner.png differ diff --git a/resources/images/banner.svg b/resources/images/banner.svg new file mode 100644 index 0000000..1feb806 --- /dev/null +++ b/resources/images/banner.svg @@ -0,0 +1,97 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + OpenBoard + + + diff --git a/resources/images/banner_linear.png b/resources/images/banner_linear.png new file mode 100644 index 0000000..f320e66 Binary files /dev/null and b/resources/images/banner_linear.png differ diff --git a/resources/images/banner_linear.svg b/resources/images/banner_linear.svg new file mode 100644 index 0000000..a5a8722 --- /dev/null +++ b/resources/images/banner_linear.svg @@ -0,0 +1,91 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + OpenBoard + + diff --git a/resources/images/bigOpenBoard.png b/resources/images/bigOpenBoard.png new file mode 100644 index 0000000..9e6ccdd Binary files /dev/null and b/resources/images/bigOpenBoard.png differ diff --git a/resources/images/cache_circle.png b/resources/images/cache_circle.png new file mode 100644 index 0000000..58342c5 Binary files /dev/null and b/resources/images/cache_circle.png differ diff --git a/resources/images/cache_close.png b/resources/images/cache_close.png new file mode 100644 index 0000000..b534128 Binary files /dev/null and b/resources/images/cache_close.png differ diff --git a/resources/images/cache_open.png b/resources/images/cache_open.png new file mode 100644 index 0000000..ceef7ed Binary files /dev/null and b/resources/images/cache_open.png differ diff --git a/resources/images/cache_square.png b/resources/images/cache_square.png new file mode 100644 index 0000000..78306b4 Binary files /dev/null and b/resources/images/cache_square.png differ diff --git a/resources/images/centerAligned.svg b/resources/images/centerAligned.svg new file mode 100644 index 0000000..01c9a1e --- /dev/null +++ b/resources/images/centerAligned.svg @@ -0,0 +1,88 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/circle.svg b/resources/images/circle.svg new file mode 100644 index 0000000..33346f1 --- /dev/null +++ b/resources/images/circle.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/resources/images/close.svg b/resources/images/close.svg new file mode 100644 index 0000000..f552d32 --- /dev/null +++ b/resources/images/close.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/resources/images/closeDisabled.svg b/resources/images/closeDisabled.svg new file mode 100644 index 0000000..7a077a7 --- /dev/null +++ b/resources/images/closeDisabled.svg @@ -0,0 +1,62 @@ + + + +image/svg+xml + + + + \ No newline at end of file diff --git a/resources/images/closeTool.svg b/resources/images/closeTool.svg new file mode 100644 index 0000000..ed8e9a9 --- /dev/null +++ b/resources/images/closeTool.svg @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/resources/images/collapse-all.png b/resources/images/collapse-all.png new file mode 100755 index 0000000..9d4df9c Binary files /dev/null and b/resources/images/collapse-all.png differ diff --git a/resources/images/color.svg b/resources/images/color.svg new file mode 100644 index 0000000..c0873bd --- /dev/null +++ b/resources/images/color.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + diff --git a/resources/images/currentDocument.png b/resources/images/currentDocument.png new file mode 100644 index 0000000..336ac73 Binary files /dev/null and b/resources/images/currentDocument.png differ diff --git a/resources/images/cursors/drawCompass.png b/resources/images/cursors/drawCompass.png new file mode 100644 index 0000000..4cf92ba Binary files /dev/null and b/resources/images/cursors/drawCompass.png differ diff --git a/resources/images/cursors/drawRulerLine.png b/resources/images/cursors/drawRulerLine.png new file mode 100644 index 0000000..999f770 Binary files /dev/null and b/resources/images/cursors/drawRulerLine.png differ diff --git a/resources/images/cursors/eraser.png b/resources/images/cursors/eraser.png new file mode 100644 index 0000000..c2f27f7 Binary files /dev/null and b/resources/images/cursors/eraser.png differ diff --git a/resources/images/cursors/laser.png b/resources/images/cursors/laser.png new file mode 100644 index 0000000..50056f8 Binary files /dev/null and b/resources/images/cursors/laser.png differ diff --git a/resources/images/cursors/marker.png b/resources/images/cursors/marker.png new file mode 100644 index 0000000..0de964b Binary files /dev/null and b/resources/images/cursors/marker.png differ diff --git a/resources/images/cursors/play.png b/resources/images/cursors/play.png new file mode 100644 index 0000000..25030dd Binary files /dev/null and b/resources/images/cursors/play.png differ diff --git a/resources/images/cursors/resize.png b/resources/images/cursors/resize.png new file mode 100644 index 0000000..c1dc5d0 Binary files /dev/null and b/resources/images/cursors/resize.png differ diff --git a/resources/images/cursors/rotate.png b/resources/images/cursors/rotate.png new file mode 100644 index 0000000..378bca8 Binary files /dev/null and b/resources/images/cursors/rotate.png differ diff --git a/resources/images/cursors/zoomIn.png b/resources/images/cursors/zoomIn.png new file mode 100644 index 0000000..6b99e01 Binary files /dev/null and b/resources/images/cursors/zoomIn.png differ diff --git a/resources/images/cursors/zoomOut.png b/resources/images/cursors/zoomOut.png new file mode 100644 index 0000000..ceb47f9 Binary files /dev/null and b/resources/images/cursors/zoomOut.png differ diff --git a/resources/images/decrease.svg b/resources/images/decrease.svg new file mode 100644 index 0000000..2f81bf5 --- /dev/null +++ b/resources/images/decrease.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/resources/images/defaultWidgetIcon.png b/resources/images/defaultWidgetIcon.png new file mode 100644 index 0000000..a4f7753 Binary files /dev/null and b/resources/images/defaultWidgetIcon.png differ diff --git a/resources/images/desc.png b/resources/images/desc.png new file mode 100644 index 0000000..622f2f8 Binary files /dev/null and b/resources/images/desc.png differ diff --git a/resources/images/down_arrow.png b/resources/images/down_arrow.png new file mode 100644 index 0000000..a518176 Binary files /dev/null and b/resources/images/down_arrow.png differ diff --git a/resources/images/download_close.png b/resources/images/download_close.png new file mode 100644 index 0000000..5d09e3c Binary files /dev/null and b/resources/images/download_close.png differ diff --git a/resources/images/download_open.png b/resources/images/download_open.png new file mode 100644 index 0000000..5af30ae Binary files /dev/null and b/resources/images/download_open.png differ diff --git a/resources/images/duplicate.svg b/resources/images/duplicate.svg new file mode 100644 index 0000000..6b68e24 --- /dev/null +++ b/resources/images/duplicate.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + diff --git a/resources/images/duplicateDisabled.svg b/resources/images/duplicateDisabled.svg new file mode 100644 index 0000000..be9083f --- /dev/null +++ b/resources/images/duplicateDisabled.svg @@ -0,0 +1,91 @@ + + + +image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/resources/images/edit-mode.png b/resources/images/edit-mode.png new file mode 100644 index 0000000..c71282b Binary files /dev/null and b/resources/images/edit-mode.png differ diff --git a/resources/images/edit-mode.svg b/resources/images/edit-mode.svg new file mode 100644 index 0000000..8d537d8 --- /dev/null +++ b/resources/images/edit-mode.svg @@ -0,0 +1,77 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/images/erasePalette/eraseAll.svg b/resources/images/erasePalette/eraseAll.svg new file mode 100644 index 0000000..58c0a37 --- /dev/null +++ b/resources/images/erasePalette/eraseAll.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/erasePalette/eraseAnnotation.svg b/resources/images/erasePalette/eraseAnnotation.svg new file mode 100644 index 0000000..3cf5d81 --- /dev/null +++ b/resources/images/erasePalette/eraseAnnotation.svg @@ -0,0 +1,167 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/erasePalette/eraseBackground.svg b/resources/images/erasePalette/eraseBackground.svg new file mode 100644 index 0000000..6bae399 --- /dev/null +++ b/resources/images/erasePalette/eraseBackground.svg @@ -0,0 +1,58 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/erasePalette/eraseItem.svg b/resources/images/erasePalette/eraseItem.svg new file mode 100644 index 0000000..5b914be --- /dev/null +++ b/resources/images/erasePalette/eraseItem.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/expand-all.png b/resources/images/expand-all.png new file mode 100755 index 0000000..b404589 Binary files /dev/null and b/resources/images/expand-all.png differ diff --git a/resources/images/extraPalette/blackout.png b/resources/images/extraPalette/blackout.png new file mode 100644 index 0000000..500d4cc Binary files /dev/null and b/resources/images/extraPalette/blackout.png differ diff --git a/resources/images/extraPalette/blackoutOn.png b/resources/images/extraPalette/blackoutOn.png new file mode 100644 index 0000000..a6b9b56 Binary files /dev/null and b/resources/images/extraPalette/blackoutOn.png differ diff --git a/resources/images/extraPalette/compass.png b/resources/images/extraPalette/compass.png new file mode 100644 index 0000000..83d4211 Binary files /dev/null and b/resources/images/extraPalette/compass.png differ diff --git a/resources/images/extraPalette/compassOn.png b/resources/images/extraPalette/compassOn.png new file mode 100644 index 0000000..c6bd5a2 Binary files /dev/null and b/resources/images/extraPalette/compassOn.png differ diff --git a/resources/images/extraPalette/keyboard.png b/resources/images/extraPalette/keyboard.png new file mode 100644 index 0000000..1c21156 Binary files /dev/null and b/resources/images/extraPalette/keyboard.png differ diff --git a/resources/images/extraPalette/keyboardOn.png b/resources/images/extraPalette/keyboardOn.png new file mode 100644 index 0000000..7598ea1 Binary files /dev/null and b/resources/images/extraPalette/keyboardOn.png differ diff --git a/resources/images/extraPalette/mask.png b/resources/images/extraPalette/mask.png new file mode 100644 index 0000000..e0da63a Binary files /dev/null and b/resources/images/extraPalette/mask.png differ diff --git a/resources/images/extraPalette/maskOn.png b/resources/images/extraPalette/maskOn.png new file mode 100644 index 0000000..411f531 Binary files /dev/null and b/resources/images/extraPalette/maskOn.png differ diff --git a/resources/images/extraPalette/oEmbed.png b/resources/images/extraPalette/oEmbed.png new file mode 100644 index 0000000..85f8e05 Binary files /dev/null and b/resources/images/extraPalette/oEmbed.png differ diff --git a/resources/images/extraPalette/podcast.png b/resources/images/extraPalette/podcast.png new file mode 100644 index 0000000..a267be6 Binary files /dev/null and b/resources/images/extraPalette/podcast.png differ diff --git a/resources/images/extraPalette/podcastOn.png b/resources/images/extraPalette/podcastOn.png new file mode 100644 index 0000000..a267be6 Binary files /dev/null and b/resources/images/extraPalette/podcastOn.png differ diff --git a/resources/images/extraPalette/protractor.png b/resources/images/extraPalette/protractor.png new file mode 100644 index 0000000..ca142d3 Binary files /dev/null and b/resources/images/extraPalette/protractor.png differ diff --git a/resources/images/extraPalette/protractorOn.png b/resources/images/extraPalette/protractorOn.png new file mode 100644 index 0000000..642cd7e Binary files /dev/null and b/resources/images/extraPalette/protractorOn.png differ diff --git a/resources/images/extraPalette/ruler.png b/resources/images/extraPalette/ruler.png new file mode 100644 index 0000000..5f3156f Binary files /dev/null and b/resources/images/extraPalette/ruler.png differ diff --git a/resources/images/extraPalette/rulerOn.png b/resources/images/extraPalette/rulerOn.png new file mode 100644 index 0000000..d1655a8 Binary files /dev/null and b/resources/images/extraPalette/rulerOn.png differ diff --git a/resources/images/extraPalette/trapFlash.png b/resources/images/extraPalette/trapFlash.png new file mode 100644 index 0000000..092c6f2 Binary files /dev/null and b/resources/images/extraPalette/trapFlash.png differ diff --git a/resources/images/extraPalette/webTrap.png b/resources/images/extraPalette/webTrap.png new file mode 100644 index 0000000..4161906 Binary files /dev/null and b/resources/images/extraPalette/webTrap.png differ diff --git a/resources/images/extraPalette/webTrapEnabled.png b/resources/images/extraPalette/webTrapEnabled.png new file mode 100644 index 0000000..422ba7f Binary files /dev/null and b/resources/images/extraPalette/webTrapEnabled.png differ diff --git a/resources/images/eyeClosed.svg b/resources/images/eyeClosed.svg new file mode 100644 index 0000000..07c2970 --- /dev/null +++ b/resources/images/eyeClosed.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/resources/images/eyeOpened.svg b/resources/images/eyeOpened.svg new file mode 100644 index 0000000..9f9f86d --- /dev/null +++ b/resources/images/eyeOpened.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/resources/images/favorites.png b/resources/images/favorites.png new file mode 100644 index 0000000..a327565 Binary files /dev/null and b/resources/images/favorites.png differ diff --git a/resources/images/flags/ar.png b/resources/images/flags/ar.png new file mode 100644 index 0000000..3d048ef Binary files /dev/null and b/resources/images/flags/ar.png differ diff --git a/resources/images/flags/bg.png b/resources/images/flags/bg.png new file mode 100644 index 0000000..d7ad543 Binary files /dev/null and b/resources/images/flags/bg.png differ diff --git a/resources/images/flags/ca.png b/resources/images/flags/ca.png new file mode 100644 index 0000000..772361d Binary files /dev/null and b/resources/images/flags/ca.png differ diff --git a/resources/images/flags/cs.png b/resources/images/flags/cs.png new file mode 100644 index 0000000..15bc88d Binary files /dev/null and b/resources/images/flags/cs.png differ diff --git a/resources/images/flags/da.png b/resources/images/flags/da.png new file mode 100644 index 0000000..1504e21 Binary files /dev/null and b/resources/images/flags/da.png differ diff --git a/resources/images/flags/de.png b/resources/images/flags/de.png new file mode 100644 index 0000000..41fea25 Binary files /dev/null and b/resources/images/flags/de.png differ diff --git a/resources/images/flags/el.png b/resources/images/flags/el.png new file mode 100644 index 0000000..64e2ebe Binary files /dev/null and b/resources/images/flags/el.png differ diff --git a/resources/images/flags/en.png b/resources/images/flags/en.png new file mode 100644 index 0000000..84b934a Binary files /dev/null and b/resources/images/flags/en.png differ diff --git a/resources/images/flags/eo.png b/resources/images/flags/eo.png new file mode 100644 index 0000000..fde2954 Binary files /dev/null and b/resources/images/flags/eo.png differ diff --git a/resources/images/flags/es.png b/resources/images/flags/es.png new file mode 100644 index 0000000..bf2b5b8 Binary files /dev/null and b/resources/images/flags/es.png differ diff --git a/resources/images/flags/et.png b/resources/images/flags/et.png new file mode 100644 index 0000000..6f01c6a Binary files /dev/null and b/resources/images/flags/et.png differ diff --git a/resources/images/flags/eu.png b/resources/images/flags/eu.png new file mode 100644 index 0000000..a58d682 Binary files /dev/null and b/resources/images/flags/eu.png differ diff --git a/resources/images/flags/fa.png b/resources/images/flags/fa.png new file mode 100644 index 0000000..69cebb7 Binary files /dev/null and b/resources/images/flags/fa.png differ diff --git a/resources/images/flags/fi.png b/resources/images/flags/fi.png new file mode 100644 index 0000000..253fd47 Binary files /dev/null and b/resources/images/flags/fi.png differ diff --git a/resources/images/flags/fo.png b/resources/images/flags/fo.png new file mode 100644 index 0000000..cc8439c Binary files /dev/null and b/resources/images/flags/fo.png differ diff --git a/resources/images/flags/fr.png b/resources/images/flags/fr.png new file mode 100644 index 0000000..58be00a Binary files /dev/null and b/resources/images/flags/fr.png differ diff --git a/resources/images/flags/ga.png b/resources/images/flags/ga.png new file mode 100644 index 0000000..ab14e96 Binary files /dev/null and b/resources/images/flags/ga.png differ diff --git a/resources/images/flags/gl.png b/resources/images/flags/gl.png new file mode 100644 index 0000000..84a1802 Binary files /dev/null and b/resources/images/flags/gl.png differ diff --git a/resources/images/flags/he.png b/resources/images/flags/he.png new file mode 100644 index 0000000..e32439c Binary files /dev/null and b/resources/images/flags/he.png differ diff --git a/resources/images/flags/hr.png b/resources/images/flags/hr.png new file mode 100644 index 0000000..24fa77a Binary files /dev/null and b/resources/images/flags/hr.png differ diff --git a/resources/images/flags/hu.png b/resources/images/flags/hu.png new file mode 100644 index 0000000..d967480 Binary files /dev/null and b/resources/images/flags/hu.png differ diff --git a/resources/images/flags/id.png b/resources/images/flags/id.png new file mode 100644 index 0000000..6bf9bfe Binary files /dev/null and b/resources/images/flags/id.png differ diff --git a/resources/images/flags/is.png b/resources/images/flags/is.png new file mode 100644 index 0000000..3987457 Binary files /dev/null and b/resources/images/flags/is.png differ diff --git a/resources/images/flags/it.png b/resources/images/flags/it.png new file mode 100644 index 0000000..7131202 Binary files /dev/null and b/resources/images/flags/it.png differ diff --git a/resources/images/flags/ja.png b/resources/images/flags/ja.png new file mode 100644 index 0000000..8eabe66 Binary files /dev/null and b/resources/images/flags/ja.png differ diff --git a/resources/images/flags/km.png b/resources/images/flags/km.png new file mode 100644 index 0000000..af10328 Binary files /dev/null and b/resources/images/flags/km.png differ diff --git a/resources/images/flags/lb.png b/resources/images/flags/lb.png new file mode 100644 index 0000000..6e596bb Binary files /dev/null and b/resources/images/flags/lb.png differ diff --git a/resources/images/flags/lt.png b/resources/images/flags/lt.png new file mode 100644 index 0000000..a1bdc47 Binary files /dev/null and b/resources/images/flags/lt.png differ diff --git a/resources/images/flags/lv.png b/resources/images/flags/lv.png new file mode 100644 index 0000000..f8adb5d Binary files /dev/null and b/resources/images/flags/lv.png differ diff --git a/resources/images/flags/nb.png b/resources/images/flags/nb.png new file mode 100644 index 0000000..9033598 Binary files /dev/null and b/resources/images/flags/nb.png differ diff --git a/resources/images/flags/nl.png b/resources/images/flags/nl.png new file mode 100644 index 0000000..ad752ce Binary files /dev/null and b/resources/images/flags/nl.png differ diff --git a/resources/images/flags/nn.png b/resources/images/flags/nn.png new file mode 100644 index 0000000..9033598 Binary files /dev/null and b/resources/images/flags/nn.png differ diff --git a/resources/images/flags/pl.png b/resources/images/flags/pl.png new file mode 100644 index 0000000..1a0988b Binary files /dev/null and b/resources/images/flags/pl.png differ diff --git a/resources/images/flags/pt-br.png b/resources/images/flags/pt-br.png new file mode 100644 index 0000000..22a8df7 Binary files /dev/null and b/resources/images/flags/pt-br.png differ diff --git a/resources/images/flags/pt-pt.png b/resources/images/flags/pt-pt.png new file mode 100644 index 0000000..66d5bd7 Binary files /dev/null and b/resources/images/flags/pt-pt.png differ diff --git a/resources/images/flags/ro.png b/resources/images/flags/ro.png new file mode 100644 index 0000000..a5be3be Binary files /dev/null and b/resources/images/flags/ro.png differ diff --git a/resources/images/flags/ru.png b/resources/images/flags/ru.png new file mode 100644 index 0000000..97c436d Binary files /dev/null and b/resources/images/flags/ru.png differ diff --git a/resources/images/flags/sco.png b/resources/images/flags/sco.png new file mode 100644 index 0000000..d3bd37a Binary files /dev/null and b/resources/images/flags/sco.png differ diff --git a/resources/images/flags/se.png b/resources/images/flags/se.png new file mode 100644 index 0000000..0d73a70 Binary files /dev/null and b/resources/images/flags/se.png differ diff --git a/resources/images/flags/sk.png b/resources/images/flags/sk.png new file mode 100644 index 0000000..5d303f7 Binary files /dev/null and b/resources/images/flags/sk.png differ diff --git a/resources/images/flags/sl.png b/resources/images/flags/sl.png new file mode 100644 index 0000000..356442f Binary files /dev/null and b/resources/images/flags/sl.png differ diff --git a/resources/images/flags/sq.png b/resources/images/flags/sq.png new file mode 100644 index 0000000..3244bbd Binary files /dev/null and b/resources/images/flags/sq.png differ diff --git a/resources/images/flags/sv.png b/resources/images/flags/sv.png new file mode 100644 index 0000000..bb27ed1 Binary files /dev/null and b/resources/images/flags/sv.png differ diff --git a/resources/images/flags/tg.png b/resources/images/flags/tg.png new file mode 100644 index 0000000..9a377f4 Binary files /dev/null and b/resources/images/flags/tg.png differ diff --git a/resources/images/flags/th.png b/resources/images/flags/th.png new file mode 100644 index 0000000..9e9abd2 Binary files /dev/null and b/resources/images/flags/th.png differ diff --git a/resources/images/flags/tl.png b/resources/images/flags/tl.png new file mode 100644 index 0000000..ffd461d Binary files /dev/null and b/resources/images/flags/tl.png differ diff --git a/resources/images/flags/tr.png b/resources/images/flags/tr.png new file mode 100644 index 0000000..60287a4 Binary files /dev/null and b/resources/images/flags/tr.png differ diff --git a/resources/images/flags/uk.png b/resources/images/flags/uk.png new file mode 100644 index 0000000..485b5d0 Binary files /dev/null and b/resources/images/flags/uk.png differ diff --git a/resources/images/flags/vi.png b/resources/images/flags/vi.png new file mode 100644 index 0000000..2adcc20 Binary files /dev/null and b/resources/images/flags/vi.png differ diff --git a/resources/images/flags/zh-hans.png b/resources/images/flags/zh-hans.png new file mode 100644 index 0000000..3665064 Binary files /dev/null and b/resources/images/flags/zh-hans.png differ diff --git a/resources/images/flags/zh-hant.png b/resources/images/flags/zh-hant.png new file mode 100644 index 0000000..9c75444 Binary files /dev/null and b/resources/images/flags/zh-hant.png differ diff --git a/resources/images/flash.svg b/resources/images/flash.svg new file mode 100644 index 0000000..de22f41 --- /dev/null +++ b/resources/images/flash.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/images/folder.png b/resources/images/folder.png new file mode 100644 index 0000000..cff0b7f Binary files /dev/null and b/resources/images/folder.png differ diff --git a/resources/images/font.svg b/resources/images/font.svg new file mode 100644 index 0000000..2c62000 --- /dev/null +++ b/resources/images/font.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + diff --git a/resources/images/frozen.svg b/resources/images/frozen.svg new file mode 100644 index 0000000..bb6e8d8 --- /dev/null +++ b/resources/images/frozen.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/groupItems.svg b/resources/images/groupItems.svg new file mode 100644 index 0000000..9abf007 --- /dev/null +++ b/resources/images/groupItems.svg @@ -0,0 +1,107 @@ + + + +image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/resources/images/hflipTool.svg b/resources/images/hflipTool.svg new file mode 100644 index 0000000..c465943 --- /dev/null +++ b/resources/images/hflipTool.svg @@ -0,0 +1,69 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/home.svg b/resources/images/home.svg new file mode 100644 index 0000000..80f639d --- /dev/null +++ b/resources/images/home.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/resources/images/increase.svg b/resources/images/increase.svg new file mode 100644 index 0000000..23a4cf4 --- /dev/null +++ b/resources/images/increase.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/resources/images/leftAligned.svg b/resources/images/leftAligned.svg new file mode 100644 index 0000000..6e51332 --- /dev/null +++ b/resources/images/leftAligned.svg @@ -0,0 +1,88 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/left_arrow.png b/resources/images/left_arrow.png new file mode 100644 index 0000000..53e58f2 Binary files /dev/null and b/resources/images/left_arrow.png differ diff --git a/resources/images/libpalette/ApplicationsCategory.svg b/resources/images/libpalette/ApplicationsCategory.svg new file mode 100644 index 0000000..00b1b92 --- /dev/null +++ b/resources/images/libpalette/ApplicationsCategory.svg @@ -0,0 +1,132 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/AudiosCategory.svg b/resources/images/libpalette/AudiosCategory.svg new file mode 100644 index 0000000..5fe5640 --- /dev/null +++ b/resources/images/libpalette/AudiosCategory.svg @@ -0,0 +1,134 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/FavoritesCategory.svg b/resources/images/libpalette/FavoritesCategory.svg new file mode 100644 index 0000000..319b913 --- /dev/null +++ b/resources/images/libpalette/FavoritesCategory.svg @@ -0,0 +1,91 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/FlashCategory.svg b/resources/images/libpalette/FlashCategory.svg new file mode 100644 index 0000000..502fc7b --- /dev/null +++ b/resources/images/libpalette/FlashCategory.svg @@ -0,0 +1,106 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/FlashIcon.svg b/resources/images/libpalette/FlashIcon.svg new file mode 100644 index 0000000..4a07520 --- /dev/null +++ b/resources/images/libpalette/FlashIcon.svg @@ -0,0 +1,89 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/InteractivesCategory.svg b/resources/images/libpalette/InteractivesCategory.svg new file mode 100644 index 0000000..dbf3e83 --- /dev/null +++ b/resources/images/libpalette/InteractivesCategory.svg @@ -0,0 +1,77 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/MoviesCategory.svg b/resources/images/libpalette/MoviesCategory.svg new file mode 100644 index 0000000..e320797 --- /dev/null +++ b/resources/images/libpalette/MoviesCategory.svg @@ -0,0 +1,79 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/PicturesCategory.svg b/resources/images/libpalette/PicturesCategory.svg new file mode 100644 index 0000000..1132cad --- /dev/null +++ b/resources/images/libpalette/PicturesCategory.svg @@ -0,0 +1,424 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/ShapesCategory.svg b/resources/images/libpalette/ShapesCategory.svg new file mode 100644 index 0000000..a3b6b0a --- /dev/null +++ b/resources/images/libpalette/ShapesCategory.svg @@ -0,0 +1,114 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/TrashCategory.svg b/resources/images/libpalette/TrashCategory.svg new file mode 100644 index 0000000..d740f9c --- /dev/null +++ b/resources/images/libpalette/TrashCategory.svg @@ -0,0 +1,712 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/WebSearchCategory.svg b/resources/images/libpalette/WebSearchCategory.svg new file mode 100644 index 0000000..fb68bb9 --- /dev/null +++ b/resources/images/libpalette/WebSearchCategory.svg @@ -0,0 +1,182 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/back.png b/resources/images/libpalette/back.png new file mode 100644 index 0000000..3dd50d5 Binary files /dev/null and b/resources/images/libpalette/back.png differ diff --git a/resources/images/libpalette/folder.svg b/resources/images/libpalette/folder.svg new file mode 100644 index 0000000..8899505 --- /dev/null +++ b/resources/images/libpalette/folder.svg @@ -0,0 +1,60 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/home.png b/resources/images/libpalette/home.png new file mode 100644 index 0000000..9dcf85f Binary files /dev/null and b/resources/images/libpalette/home.png differ diff --git a/resources/images/libpalette/loading.png b/resources/images/libpalette/loading.png new file mode 100644 index 0000000..add1540 Binary files /dev/null and b/resources/images/libpalette/loading.png differ diff --git a/resources/images/libpalette/miniFavorite.png b/resources/images/libpalette/miniFavorite.png new file mode 100644 index 0000000..dc1aead Binary files /dev/null and b/resources/images/libpalette/miniFavorite.png differ diff --git a/resources/images/libpalette/miniNewFolder.png b/resources/images/libpalette/miniNewFolder.png new file mode 100644 index 0000000..a431070 Binary files /dev/null and b/resources/images/libpalette/miniNewFolder.png differ diff --git a/resources/images/libpalette/miniSearch.png b/resources/images/libpalette/miniSearch.png new file mode 100644 index 0000000..cadfebd Binary files /dev/null and b/resources/images/libpalette/miniSearch.png differ diff --git a/resources/images/libpalette/miniTrash.png b/resources/images/libpalette/miniTrash.png new file mode 100644 index 0000000..4e4ce75 Binary files /dev/null and b/resources/images/libpalette/miniTrash.png differ diff --git a/resources/images/libpalette/movieIcon.svg b/resources/images/libpalette/movieIcon.svg new file mode 100644 index 0000000..4f3d334 --- /dev/null +++ b/resources/images/libpalette/movieIcon.svg @@ -0,0 +1,78 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/notFound.png b/resources/images/libpalette/notFound.png new file mode 100644 index 0000000..8b24467 Binary files /dev/null and b/resources/images/libpalette/notFound.png differ diff --git a/resources/images/libpalette/social.png b/resources/images/libpalette/social.png new file mode 100644 index 0000000..9f1c6dc Binary files /dev/null and b/resources/images/libpalette/social.png differ diff --git a/resources/images/libpalette/soundIcon.svg b/resources/images/libpalette/soundIcon.svg new file mode 100644 index 0000000..7018193 --- /dev/null +++ b/resources/images/libpalette/soundIcon.svg @@ -0,0 +1,133 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/libpalette/trash_favorite.svg b/resources/images/libpalette/trash_favorite.svg new file mode 100644 index 0000000..bfdead1 --- /dev/null +++ b/resources/images/libpalette/trash_favorite.svg @@ -0,0 +1,96 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/images/library_close.png b/resources/images/library_close.png new file mode 100644 index 0000000..0e74405 Binary files /dev/null and b/resources/images/library_close.png differ diff --git a/resources/images/library_open.png b/resources/images/library_open.png new file mode 100644 index 0000000..7529ab0 Binary files /dev/null and b/resources/images/library_open.png differ diff --git a/resources/images/line_doshed_style.pbm b/resources/images/line_doshed_style.pbm new file mode 100644 index 0000000..ff3278b Binary files /dev/null and b/resources/images/line_doshed_style.pbm differ diff --git a/resources/images/line_doshed_style.png b/resources/images/line_doshed_style.png new file mode 100644 index 0000000..f90f719 Binary files /dev/null and b/resources/images/line_doshed_style.png differ diff --git a/resources/images/locked.svg b/resources/images/locked.svg new file mode 100644 index 0000000..e39e0cb --- /dev/null +++ b/resources/images/locked.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/resources/images/menu.svg b/resources/images/menu.svg new file mode 100644 index 0000000..16b78e9 --- /dev/null +++ b/resources/images/menu.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/resources/images/menuDisabled.svg b/resources/images/menuDisabled.svg new file mode 100644 index 0000000..4894f3a --- /dev/null +++ b/resources/images/menuDisabled.svg @@ -0,0 +1,64 @@ + + + +image/svg+xml + + + + \ No newline at end of file diff --git a/resources/images/minus.svg b/resources/images/minus.svg new file mode 100644 index 0000000..1808c81 --- /dev/null +++ b/resources/images/minus.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/resources/images/moveDown.svg b/resources/images/moveDown.svg new file mode 100644 index 0000000..16b78e9 --- /dev/null +++ b/resources/images/moveDown.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/resources/images/moveDownDisabled.svg b/resources/images/moveDownDisabled.svg new file mode 100644 index 0000000..4894f3a --- /dev/null +++ b/resources/images/moveDownDisabled.svg @@ -0,0 +1,64 @@ + + + +image/svg+xml + + + + \ No newline at end of file diff --git a/resources/images/moveUp.svg b/resources/images/moveUp.svg new file mode 100644 index 0000000..7c7ca5e --- /dev/null +++ b/resources/images/moveUp.svg @@ -0,0 +1,67 @@ + + + +image/svg+xml + + + + \ No newline at end of file diff --git a/resources/images/moveUpDisabled.svg b/resources/images/moveUpDisabled.svg new file mode 100644 index 0000000..a8e0cbe --- /dev/null +++ b/resources/images/moveUpDisabled.svg @@ -0,0 +1,68 @@ + + + +image/svg+xml + + + + \ No newline at end of file diff --git a/resources/images/myContent.png b/resources/images/myContent.png new file mode 100644 index 0000000..0957a2c Binary files /dev/null and b/resources/images/myContent.png differ diff --git a/resources/images/myFolder.png b/resources/images/myFolder.png new file mode 100644 index 0000000..cd919d8 Binary files /dev/null and b/resources/images/myFolder.png differ diff --git a/resources/images/navig_arrow.png b/resources/images/navig_arrow.png new file mode 100644 index 0000000..1047c79 Binary files /dev/null and b/resources/images/navig_arrow.png differ diff --git a/resources/images/notAligned.svg b/resources/images/notAligned.svg new file mode 100644 index 0000000..339d20b --- /dev/null +++ b/resources/images/notAligned.svg @@ -0,0 +1,88 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/numbersTool.svg b/resources/images/numbersTool.svg new file mode 100644 index 0000000..862270d --- /dev/null +++ b/resources/images/numbersTool.svg @@ -0,0 +1,63 @@ + + + +image/svg+xml1 + \ No newline at end of file diff --git a/resources/images/online.png b/resources/images/online.png new file mode 100644 index 0000000..6d4bea3 Binary files /dev/null and b/resources/images/online.png differ diff --git a/resources/images/pages_close.png b/resources/images/pages_close.png new file mode 100644 index 0000000..482fe03 Binary files /dev/null and b/resources/images/pages_close.png differ diff --git a/resources/images/pages_open.png b/resources/images/pages_open.png new file mode 100644 index 0000000..9fef5b4 Binary files /dev/null and b/resources/images/pages_open.png differ diff --git a/resources/images/paletteLibrary.png b/resources/images/paletteLibrary.png new file mode 100644 index 0000000..f373ab8 Binary files /dev/null and b/resources/images/paletteLibrary.png differ diff --git a/resources/images/paletteNavigator.png b/resources/images/paletteNavigator.png new file mode 100644 index 0000000..b14bcae Binary files /dev/null and b/resources/images/paletteNavigator.png differ diff --git a/resources/images/pause.svg b/resources/images/pause.svg new file mode 100644 index 0000000..48f07b4 --- /dev/null +++ b/resources/images/pause.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/resources/images/pin.svg b/resources/images/pin.svg new file mode 100644 index 0000000..0361c5d --- /dev/null +++ b/resources/images/pin.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/resources/images/play.svg b/resources/images/play.svg new file mode 100644 index 0000000..600d2b5 --- /dev/null +++ b/resources/images/play.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/resources/images/plus.svg b/resources/images/plus.svg new file mode 100644 index 0000000..c6f124b --- /dev/null +++ b/resources/images/plus.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/resources/images/print/onepage.png b/resources/images/print/onepage.png new file mode 100644 index 0000000..a88b8d1 Binary files /dev/null and b/resources/images/print/onepage.png differ diff --git a/resources/images/print/thumbnails.png b/resources/images/print/thumbnails.png new file mode 100644 index 0000000..a51771c Binary files /dev/null and b/resources/images/print/thumbnails.png differ diff --git a/resources/images/print/twopages.png b/resources/images/print/twopages.png new file mode 100644 index 0000000..34c26db Binary files /dev/null and b/resources/images/print/twopages.png differ diff --git a/resources/images/reload.svg b/resources/images/reload.svg new file mode 100644 index 0000000..299514d --- /dev/null +++ b/resources/images/reload.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + diff --git a/resources/images/resetAngle.svg b/resources/images/resetAngle.svg new file mode 100644 index 0000000..6a526bc --- /dev/null +++ b/resources/images/resetAngle.svg @@ -0,0 +1,112 @@ + + + + + + + Part of the Flat Icon Collection (Wed Aug 25 23:29:46 2004) + + + + hash + + action + computer + icons + theme + + + + + Danny Allen + + + + + Danny Allen + + + + + Danny Allen + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + diff --git a/resources/images/resetTool.svg b/resources/images/resetTool.svg new file mode 100644 index 0000000..5df55a0 --- /dev/null +++ b/resources/images/resetTool.svg @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/resources/images/resize.svg b/resources/images/resize.svg new file mode 100644 index 0000000..abc16a2 --- /dev/null +++ b/resources/images/resize.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/images/resizeBottom.svg b/resources/images/resizeBottom.svg new file mode 100644 index 0000000..34e435d --- /dev/null +++ b/resources/images/resizeBottom.svg @@ -0,0 +1,94 @@ + + + + + + image/svg+xml + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/resources/images/resizeButton.svg b/resources/images/resizeButton.svg new file mode 100644 index 0000000..12f1a9e --- /dev/null +++ b/resources/images/resizeButton.svg @@ -0,0 +1,140 @@ + + + + + + + Clipart by Nicu Buculei - arrow08_4 + + + + + shape + arrow + + + + + Nicu Buculei + + + + + Nicu Buculei + + + + + Nicu Buculei + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/resizeCompass.svg b/resources/images/resizeCompass.svg new file mode 100644 index 0000000..91340b6 --- /dev/null +++ b/resources/images/resizeCompass.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/resources/images/resizeLeft.svg b/resources/images/resizeLeft.svg new file mode 100644 index 0000000..7accb6b --- /dev/null +++ b/resources/images/resizeLeft.svg @@ -0,0 +1,94 @@ + + + + + + image/svg+xml + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/resources/images/resizeRight.svg b/resources/images/resizeRight.svg new file mode 100644 index 0000000..f2cefa6 --- /dev/null +++ b/resources/images/resizeRight.svg @@ -0,0 +1,94 @@ + + + + + + image/svg+xml + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/resources/images/resizeRuler.svg b/resources/images/resizeRuler.svg new file mode 100644 index 0000000..1815b35 --- /dev/null +++ b/resources/images/resizeRuler.svg @@ -0,0 +1,74 @@ + + +image/svg+xml + + + + + + + \ No newline at end of file diff --git a/resources/images/resizeTool.svg b/resources/images/resizeTool.svg new file mode 100644 index 0000000..45e134e --- /dev/null +++ b/resources/images/resizeTool.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/resources/images/resizeTop.svg b/resources/images/resizeTop.svg new file mode 100644 index 0000000..67ddfdd --- /dev/null +++ b/resources/images/resizeTop.svg @@ -0,0 +1,94 @@ + + + + + + image/svg+xml + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/resources/images/rightAligned.svg b/resources/images/rightAligned.svg new file mode 100644 index 0000000..334fb07 --- /dev/null +++ b/resources/images/rightAligned.svg @@ -0,0 +1,88 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/right_arrow.png b/resources/images/right_arrow.png new file mode 100644 index 0000000..e9a64d2 Binary files /dev/null and b/resources/images/right_arrow.png differ diff --git a/resources/images/rotate.svg b/resources/images/rotate.svg new file mode 100644 index 0000000..8904cc4 --- /dev/null +++ b/resources/images/rotate.svg @@ -0,0 +1,8 @@ + + + + + + diff --git a/resources/images/rotateProtractor.svg b/resources/images/rotateProtractor.svg new file mode 100644 index 0000000..8c98006 --- /dev/null +++ b/resources/images/rotateProtractor.svg @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/resources/images/rotateTool.svg b/resources/images/rotateTool.svg new file mode 100644 index 0000000..20e02f1 --- /dev/null +++ b/resources/images/rotateTool.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/resources/images/roundeRrectangle.svg b/resources/images/roundeRrectangle.svg new file mode 100644 index 0000000..bea8c42 --- /dev/null +++ b/resources/images/roundeRrectangle.svg @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/resources/images/save.png b/resources/images/save.png new file mode 100644 index 0000000..dbe71fc Binary files /dev/null and b/resources/images/save.png differ diff --git a/resources/images/save.svg b/resources/images/save.svg new file mode 100644 index 0000000..89ee961 --- /dev/null +++ b/resources/images/save.svg @@ -0,0 +1,72 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/images/setAsBackground.svg b/resources/images/setAsBackground.svg new file mode 100644 index 0000000..8c83a08 --- /dev/null +++ b/resources/images/setAsBackground.svg @@ -0,0 +1,375 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/resources/images/shape.png b/resources/images/shape.png new file mode 100644 index 0000000..5ea2cdd Binary files /dev/null and b/resources/images/shape.png differ diff --git a/resources/images/soundOff.svg b/resources/images/soundOff.svg new file mode 100644 index 0000000..5a5f541 --- /dev/null +++ b/resources/images/soundOff.svg @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/resources/images/soundOn.svg b/resources/images/soundOn.svg new file mode 100644 index 0000000..5c29701 --- /dev/null +++ b/resources/images/soundOn.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/resources/images/stop.svg b/resources/images/stop.svg new file mode 100644 index 0000000..86fb971 --- /dev/null +++ b/resources/images/stop.svg @@ -0,0 +1,8 @@ + + + + + + + diff --git a/resources/images/stylusPalette/arrow.png b/resources/images/stylusPalette/arrow.png new file mode 100644 index 0000000..afcec9f Binary files /dev/null and b/resources/images/stylusPalette/arrow.png differ diff --git a/resources/images/stylusPalette/arrowOn.png b/resources/images/stylusPalette/arrowOn.png new file mode 100644 index 0000000..30d8bf9 Binary files /dev/null and b/resources/images/stylusPalette/arrowOn.png differ diff --git a/resources/images/stylusPalette/captureArea.png b/resources/images/stylusPalette/captureArea.png new file mode 100644 index 0000000..8597f5f Binary files /dev/null and b/resources/images/stylusPalette/captureArea.png differ diff --git a/resources/images/stylusPalette/captureAreaOn.png b/resources/images/stylusPalette/captureAreaOn.png new file mode 100644 index 0000000..1df4dcd Binary files /dev/null and b/resources/images/stylusPalette/captureAreaOn.png differ diff --git a/resources/images/stylusPalette/eraser.svg b/resources/images/stylusPalette/eraser.svg new file mode 100644 index 0000000..aba1b8b --- /dev/null +++ b/resources/images/stylusPalette/eraser.svg @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/eraserArrow.svg b/resources/images/stylusPalette/eraserArrow.svg new file mode 100644 index 0000000..21e3545 --- /dev/null +++ b/resources/images/stylusPalette/eraserArrow.svg @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/eraserOn.svg b/resources/images/stylusPalette/eraserOn.svg new file mode 100644 index 0000000..84e1490 --- /dev/null +++ b/resources/images/stylusPalette/eraserOn.svg @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/eraserOnArrow.svg b/resources/images/stylusPalette/eraserOnArrow.svg new file mode 100644 index 0000000..6f3c719 --- /dev/null +++ b/resources/images/stylusPalette/eraserOnArrow.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/hand.png b/resources/images/stylusPalette/hand.png new file mode 100644 index 0000000..1938e95 Binary files /dev/null and b/resources/images/stylusPalette/hand.png differ diff --git a/resources/images/stylusPalette/handOn.png b/resources/images/stylusPalette/handOn.png new file mode 100644 index 0000000..72960d6 Binary files /dev/null and b/resources/images/stylusPalette/handOn.png differ diff --git a/resources/images/stylusPalette/handPlay.png b/resources/images/stylusPalette/handPlay.png new file mode 100644 index 0000000..186c81d Binary files /dev/null and b/resources/images/stylusPalette/handPlay.png differ diff --git a/resources/images/stylusPalette/handPlayOn.png b/resources/images/stylusPalette/handPlayOn.png new file mode 100644 index 0000000..5b86d97 Binary files /dev/null and b/resources/images/stylusPalette/handPlayOn.png differ diff --git a/resources/images/stylusPalette/laser.png b/resources/images/stylusPalette/laser.png new file mode 100644 index 0000000..5b83805 Binary files /dev/null and b/resources/images/stylusPalette/laser.png differ diff --git a/resources/images/stylusPalette/laserOn.png b/resources/images/stylusPalette/laserOn.png new file mode 100644 index 0000000..16e47c2 Binary files /dev/null and b/resources/images/stylusPalette/laserOn.png differ diff --git a/resources/images/stylusPalette/line.png b/resources/images/stylusPalette/line.png new file mode 100644 index 0000000..fe975f5 Binary files /dev/null and b/resources/images/stylusPalette/line.png differ diff --git a/resources/images/stylusPalette/lineOn.png b/resources/images/stylusPalette/lineOn.png new file mode 100644 index 0000000..83fd04e Binary files /dev/null and b/resources/images/stylusPalette/lineOn.png differ diff --git a/resources/images/stylusPalette/marker.svg b/resources/images/stylusPalette/marker.svg new file mode 100644 index 0000000..2d9a2c3 --- /dev/null +++ b/resources/images/stylusPalette/marker.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/markerArrow.svg b/resources/images/stylusPalette/markerArrow.svg new file mode 100644 index 0000000..0e2b9ad --- /dev/null +++ b/resources/images/stylusPalette/markerArrow.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/markerOn.svg b/resources/images/stylusPalette/markerOn.svg new file mode 100644 index 0000000..5e874b3 --- /dev/null +++ b/resources/images/stylusPalette/markerOn.svg @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/markerOnArrow.svg b/resources/images/stylusPalette/markerOnArrow.svg new file mode 100644 index 0000000..80bb821 --- /dev/null +++ b/resources/images/stylusPalette/markerOnArrow.svg @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/pen.svg b/resources/images/stylusPalette/pen.svg new file mode 100644 index 0000000..0b2b317 --- /dev/null +++ b/resources/images/stylusPalette/pen.svg @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/penArrow.svg b/resources/images/stylusPalette/penArrow.svg new file mode 100644 index 0000000..0ef2546 --- /dev/null +++ b/resources/images/stylusPalette/penArrow.svg @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/penOn.svg b/resources/images/stylusPalette/penOn.svg new file mode 100644 index 0000000..8e07f51 --- /dev/null +++ b/resources/images/stylusPalette/penOn.svg @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/penOnArrow.svg b/resources/images/stylusPalette/penOnArrow.svg new file mode 100644 index 0000000..58e6fe2 --- /dev/null +++ b/resources/images/stylusPalette/penOnArrow.svg @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/stylusPalette/restoreZoom.png b/resources/images/stylusPalette/restoreZoom.png new file mode 100644 index 0000000..2690747 Binary files /dev/null and b/resources/images/stylusPalette/restoreZoom.png differ diff --git a/resources/images/stylusPalette/text.png b/resources/images/stylusPalette/text.png new file mode 100644 index 0000000..03e45c0 Binary files /dev/null and b/resources/images/stylusPalette/text.png differ diff --git a/resources/images/stylusPalette/textOn.png b/resources/images/stylusPalette/textOn.png new file mode 100644 index 0000000..d2fc724 Binary files /dev/null and b/resources/images/stylusPalette/textOn.png differ diff --git a/resources/images/stylusPalette/zoomIn.png b/resources/images/stylusPalette/zoomIn.png new file mode 100644 index 0000000..547c7f8 Binary files /dev/null and b/resources/images/stylusPalette/zoomIn.png differ diff --git a/resources/images/stylusPalette/zoomInOn.png b/resources/images/stylusPalette/zoomInOn.png new file mode 100644 index 0000000..0389603 Binary files /dev/null and b/resources/images/stylusPalette/zoomInOn.png differ diff --git a/resources/images/stylusPalette/zoomOut.png b/resources/images/stylusPalette/zoomOut.png new file mode 100644 index 0000000..eef380e Binary files /dev/null and b/resources/images/stylusPalette/zoomOut.png differ diff --git a/resources/images/stylusPalette/zoomOutOn.png b/resources/images/stylusPalette/zoomOutOn.png new file mode 100644 index 0000000..c74a682 Binary files /dev/null and b/resources/images/stylusPalette/zoomOutOn.png differ diff --git a/resources/images/tab_mask.png b/resources/images/tab_mask.png new file mode 100644 index 0000000..035608f Binary files /dev/null and b/resources/images/tab_mask.png differ diff --git a/resources/images/toolPalette/aristoTool.png b/resources/images/toolPalette/aristoTool.png new file mode 100644 index 0000000..225c0b1 Binary files /dev/null and b/resources/images/toolPalette/aristoTool.png differ diff --git a/resources/images/toolPalette/axesTool.png b/resources/images/toolPalette/axesTool.png new file mode 100644 index 0000000..05008c8 Binary files /dev/null and b/resources/images/toolPalette/axesTool.png differ diff --git a/resources/images/toolPalette/cacheTool.png b/resources/images/toolPalette/cacheTool.png new file mode 100644 index 0000000..d83c8d6 Binary files /dev/null and b/resources/images/toolPalette/cacheTool.png differ diff --git a/resources/images/toolPalette/compassTool.png b/resources/images/toolPalette/compassTool.png new file mode 100644 index 0000000..5dd47c1 Binary files /dev/null and b/resources/images/toolPalette/compassTool.png differ diff --git a/resources/images/toolPalette/compassTool.svg b/resources/images/toolPalette/compassTool.svg new file mode 100644 index 0000000..3efb5d3 --- /dev/null +++ b/resources/images/toolPalette/compassTool.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/images/toolPalette/magnifierTool.png b/resources/images/toolPalette/magnifierTool.png new file mode 100644 index 0000000..a0a1920 Binary files /dev/null and b/resources/images/toolPalette/magnifierTool.png differ diff --git a/resources/images/toolPalette/maskTool.png b/resources/images/toolPalette/maskTool.png new file mode 100644 index 0000000..b735f98 Binary files /dev/null and b/resources/images/toolPalette/maskTool.png differ diff --git a/resources/images/toolPalette/podcast.svg b/resources/images/toolPalette/podcast.svg new file mode 100644 index 0000000..88db294 --- /dev/null +++ b/resources/images/toolPalette/podcast.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/resources/images/toolPalette/podcastOn.svg b/resources/images/toolPalette/podcastOn.svg new file mode 100644 index 0000000..cbb4e66 --- /dev/null +++ b/resources/images/toolPalette/podcastOn.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/resources/images/toolPalette/protractorTool.png b/resources/images/toolPalette/protractorTool.png new file mode 100644 index 0000000..225c0b1 Binary files /dev/null and b/resources/images/toolPalette/protractorTool.png differ diff --git a/resources/images/toolPalette/rulerTool.png b/resources/images/toolPalette/rulerTool.png new file mode 100644 index 0000000..c25a06f Binary files /dev/null and b/resources/images/toolPalette/rulerTool.png differ diff --git a/resources/images/toolPalette/triangleTool.png b/resources/images/toolPalette/triangleTool.png new file mode 100644 index 0000000..a9c876c Binary files /dev/null and b/resources/images/toolPalette/triangleTool.png differ diff --git a/resources/images/toolbar/addBookmark.png b/resources/images/toolbar/addBookmark.png new file mode 100644 index 0000000..50d6881 Binary files /dev/null and b/resources/images/toolbar/addBookmark.png differ diff --git a/resources/images/toolbar/addInteractiveToLibrary.png b/resources/images/toolbar/addInteractiveToLibrary.png new file mode 100644 index 0000000..848af38 Binary files /dev/null and b/resources/images/toolbar/addInteractiveToLibrary.png differ diff --git a/resources/images/toolbar/addToDocument.png b/resources/images/toolbar/addToDocument.png new file mode 100644 index 0000000..4223aa8 Binary files /dev/null and b/resources/images/toolbar/addToDocument.png differ diff --git a/resources/images/toolbar/addToLibrary.png b/resources/images/toolbar/addToLibrary.png new file mode 100644 index 0000000..c85136e Binary files /dev/null and b/resources/images/toolbar/addToLibrary.png differ diff --git a/resources/images/toolbar/addToPage.png b/resources/images/toolbar/addToPage.png new file mode 100644 index 0000000..39e10ec Binary files /dev/null and b/resources/images/toolbar/addToPage.png differ diff --git a/resources/images/toolbar/addToWorkingDoc.png b/resources/images/toolbar/addToWorkingDoc.png new file mode 100644 index 0000000..3d22e4e Binary files /dev/null and b/resources/images/toolbar/addToWorkingDoc.png differ diff --git a/resources/images/toolbar/addToolToLibrary.png b/resources/images/toolbar/addToolToLibrary.png new file mode 100644 index 0000000..a74c0c8 Binary files /dev/null and b/resources/images/toolbar/addToolToLibrary.png differ diff --git a/resources/images/toolbar/background.png b/resources/images/toolbar/background.png new file mode 100644 index 0000000..de37820 Binary files /dev/null and b/resources/images/toolbar/background.png differ diff --git a/resources/images/toolbar/board.png b/resources/images/toolbar/board.png new file mode 100644 index 0000000..aca1a03 Binary files /dev/null and b/resources/images/toolbar/board.png differ diff --git a/resources/images/toolbar/bookmarks.png b/resources/images/toolbar/bookmarks.png new file mode 100644 index 0000000..95d2ec9 Binary files /dev/null and b/resources/images/toolbar/bookmarks.png differ diff --git a/resources/images/toolbar/captureArea.png b/resources/images/toolbar/captureArea.png new file mode 100644 index 0000000..079ebad Binary files /dev/null and b/resources/images/toolbar/captureArea.png differ diff --git a/resources/images/toolbar/captureScreen.png b/resources/images/toolbar/captureScreen.png new file mode 100644 index 0000000..b17e8e7 Binary files /dev/null and b/resources/images/toolbar/captureScreen.png differ diff --git a/resources/images/toolbar/captureWindow.png b/resources/images/toolbar/captureWindow.png new file mode 100644 index 0000000..3be95b5 Binary files /dev/null and b/resources/images/toolbar/captureWindow.png differ diff --git a/resources/images/toolbar/clearPage.png b/resources/images/toolbar/clearPage.png new file mode 100644 index 0000000..4ef4a77 Binary files /dev/null and b/resources/images/toolbar/clearPage.png differ diff --git a/resources/images/toolbar/color.png b/resources/images/toolbar/color.png new file mode 100644 index 0000000..24ff8c5 Binary files /dev/null and b/resources/images/toolbar/color.png differ diff --git a/resources/images/toolbar/copy.png b/resources/images/toolbar/copy.png new file mode 100644 index 0000000..70fe183 Binary files /dev/null and b/resources/images/toolbar/copy.png differ diff --git a/resources/images/toolbar/cut.png b/resources/images/toolbar/cut.png new file mode 100644 index 0000000..3279078 Binary files /dev/null and b/resources/images/toolbar/cut.png differ diff --git a/resources/images/toolbar/dashedLine.png b/resources/images/toolbar/dashedLine.png new file mode 100644 index 0000000..7cf46ba Binary files /dev/null and b/resources/images/toolbar/dashedLine.png differ diff --git a/resources/images/toolbar/deleteDocument.png b/resources/images/toolbar/deleteDocument.png new file mode 100644 index 0000000..c2dca87 Binary files /dev/null and b/resources/images/toolbar/deleteDocument.png differ diff --git a/resources/images/toolbar/deleteFolder.png b/resources/images/toolbar/deleteFolder.png new file mode 100644 index 0000000..30a7752 Binary files /dev/null and b/resources/images/toolbar/deleteFolder.png differ diff --git a/resources/images/toolbar/display.png b/resources/images/toolbar/display.png new file mode 100644 index 0000000..9c87bf2 Binary files /dev/null and b/resources/images/toolbar/display.png differ diff --git a/resources/images/toolbar/documents.png b/resources/images/toolbar/documents.png new file mode 100644 index 0000000..82aa7bf Binary files /dev/null and b/resources/images/toolbar/documents.png differ diff --git a/resources/images/toolbar/dottedLine.png b/resources/images/toolbar/dottedLine.png new file mode 100644 index 0000000..16895e9 Binary files /dev/null and b/resources/images/toolbar/dottedLine.png differ diff --git a/resources/images/toolbar/duplicate.png b/resources/images/toolbar/duplicate.png new file mode 100644 index 0000000..f0de6dc Binary files /dev/null and b/resources/images/toolbar/duplicate.png differ diff --git a/resources/images/toolbar/eraserTool.png b/resources/images/toolbar/eraserTool.png new file mode 100644 index 0000000..20079d5 Binary files /dev/null and b/resources/images/toolbar/eraserTool.png differ diff --git a/resources/images/toolbar/export.png b/resources/images/toolbar/export.png new file mode 100644 index 0000000..cd1ec18 Binary files /dev/null and b/resources/images/toolbar/export.png differ diff --git a/resources/images/toolbar/extraTool.png b/resources/images/toolbar/extraTool.png new file mode 100644 index 0000000..9e3b78a Binary files /dev/null and b/resources/images/toolbar/extraTool.png differ diff --git a/resources/images/toolbar/eyeClosed.png b/resources/images/toolbar/eyeClosed.png new file mode 100644 index 0000000..99f7df6 Binary files /dev/null and b/resources/images/toolbar/eyeClosed.png differ diff --git a/resources/images/toolbar/eyeOpened.png b/resources/images/toolbar/eyeOpened.png new file mode 100644 index 0000000..8d1a663 Binary files /dev/null and b/resources/images/toolbar/eyeOpened.png differ diff --git a/resources/images/toolbar/group.png b/resources/images/toolbar/group.png new file mode 100644 index 0000000..bccfa0b Binary files /dev/null and b/resources/images/toolbar/group.png differ diff --git a/resources/images/toolbar/hide.png b/resources/images/toolbar/hide.png new file mode 100644 index 0000000..896347b Binary files /dev/null and b/resources/images/toolbar/hide.png differ diff --git a/resources/images/toolbar/home.png b/resources/images/toolbar/home.png new file mode 100644 index 0000000..4268749 Binary files /dev/null and b/resources/images/toolbar/home.png differ diff --git a/resources/images/toolbar/import.png b/resources/images/toolbar/import.png new file mode 100644 index 0000000..7a76a99 Binary files /dev/null and b/resources/images/toolbar/import.png differ diff --git a/resources/images/toolbar/largeEraser.png b/resources/images/toolbar/largeEraser.png new file mode 100644 index 0000000..7123bdc Binary files /dev/null and b/resources/images/toolbar/largeEraser.png differ diff --git a/resources/images/toolbar/largePen.png b/resources/images/toolbar/largePen.png new file mode 100644 index 0000000..95886f3 Binary files /dev/null and b/resources/images/toolbar/largePen.png differ diff --git a/resources/images/toolbar/library.png b/resources/images/toolbar/library.png new file mode 100644 index 0000000..420d412 Binary files /dev/null and b/resources/images/toolbar/library.png differ diff --git a/resources/images/toolbar/lineTool.png b/resources/images/toolbar/lineTool.png new file mode 100644 index 0000000..7c0e456 Binary files /dev/null and b/resources/images/toolbar/lineTool.png differ diff --git a/resources/images/toolbar/mediumEraser.png b/resources/images/toolbar/mediumEraser.png new file mode 100644 index 0000000..b65f673 Binary files /dev/null and b/resources/images/toolbar/mediumEraser.png differ diff --git a/resources/images/toolbar/mediumPen.png b/resources/images/toolbar/mediumPen.png new file mode 100644 index 0000000..b256d32 Binary files /dev/null and b/resources/images/toolbar/mediumPen.png differ diff --git a/resources/images/toolbar/menu.png b/resources/images/toolbar/menu.png new file mode 100644 index 0000000..3490efe Binary files /dev/null and b/resources/images/toolbar/menu.png differ diff --git a/resources/images/toolbar/mic.png b/resources/images/toolbar/mic.png new file mode 100644 index 0000000..09d3275 Binary files /dev/null and b/resources/images/toolbar/mic.png differ diff --git a/resources/images/toolbar/micOff.png b/resources/images/toolbar/micOff.png new file mode 100644 index 0000000..d7b7ddd Binary files /dev/null and b/resources/images/toolbar/micOff.png differ diff --git a/resources/images/toolbar/newDocument.png b/resources/images/toolbar/newDocument.png new file mode 100644 index 0000000..5099e7a Binary files /dev/null and b/resources/images/toolbar/newDocument.png differ diff --git a/resources/images/toolbar/newFolder.png b/resources/images/toolbar/newFolder.png new file mode 100644 index 0000000..c744a94 Binary files /dev/null and b/resources/images/toolbar/newFolder.png differ diff --git a/resources/images/toolbar/newPage.png b/resources/images/toolbar/newPage.png new file mode 100644 index 0000000..786975c Binary files /dev/null and b/resources/images/toolbar/newPage.png differ diff --git a/resources/images/toolbar/next.png b/resources/images/toolbar/next.png new file mode 100644 index 0000000..0c7989e Binary files /dev/null and b/resources/images/toolbar/next.png differ diff --git a/resources/images/toolbar/nextPageOn.png b/resources/images/toolbar/nextPageOn.png new file mode 100755 index 0000000..89eab51 Binary files /dev/null and b/resources/images/toolbar/nextPageOn.png differ diff --git a/resources/images/toolbar/open.png b/resources/images/toolbar/open.png new file mode 100644 index 0000000..883ebf1 Binary files /dev/null and b/resources/images/toolbar/open.png differ diff --git a/resources/images/toolbar/pageSize.png b/resources/images/toolbar/pageSize.png new file mode 100644 index 0000000..146f51f Binary files /dev/null and b/resources/images/toolbar/pageSize.png differ diff --git a/resources/images/toolbar/paste.png b/resources/images/toolbar/paste.png new file mode 100644 index 0000000..ec2f263 Binary files /dev/null and b/resources/images/toolbar/paste.png differ diff --git a/resources/images/toolbar/pause.png b/resources/images/toolbar/pause.png new file mode 100644 index 0000000..5ae5188 Binary files /dev/null and b/resources/images/toolbar/pause.png differ diff --git a/resources/images/toolbar/pdf.png b/resources/images/toolbar/pdf.png new file mode 100644 index 0000000..d575386 Binary files /dev/null and b/resources/images/toolbar/pdf.png differ diff --git a/resources/images/toolbar/plusBlack.png b/resources/images/toolbar/plusBlack.png new file mode 100644 index 0000000..b6f3d9c Binary files /dev/null and b/resources/images/toolbar/plusBlack.png differ diff --git a/resources/images/toolbar/plusBlackOn.png b/resources/images/toolbar/plusBlackOn.png new file mode 100644 index 0000000..0a1235f Binary files /dev/null and b/resources/images/toolbar/plusBlackOn.png differ diff --git a/resources/images/toolbar/previous.png b/resources/images/toolbar/previous.png new file mode 100644 index 0000000..bbcdc40 Binary files /dev/null and b/resources/images/toolbar/previous.png differ diff --git a/resources/images/toolbar/previousPageOn.png b/resources/images/toolbar/previousPageOn.png new file mode 100755 index 0000000..9c11ddc Binary files /dev/null and b/resources/images/toolbar/previousPageOn.png differ diff --git a/resources/images/toolbar/print.png b/resources/images/toolbar/print.png new file mode 100644 index 0000000..461d225 Binary files /dev/null and b/resources/images/toolbar/print.png differ diff --git a/resources/images/toolbar/profile.png b/resources/images/toolbar/profile.png new file mode 100644 index 0000000..5c77357 Binary files /dev/null and b/resources/images/toolbar/profile.png differ diff --git a/resources/images/toolbar/proto.png b/resources/images/toolbar/proto.png new file mode 100644 index 0000000..7259f66 Binary files /dev/null and b/resources/images/toolbar/proto.png differ diff --git a/resources/images/toolbar/quit.png b/resources/images/toolbar/quit.png new file mode 100644 index 0000000..0499f99 Binary files /dev/null and b/resources/images/toolbar/quit.png differ diff --git a/resources/images/toolbar/quitOn.png b/resources/images/toolbar/quitOn.png new file mode 100644 index 0000000..9228094 Binary files /dev/null and b/resources/images/toolbar/quitOn.png differ diff --git a/resources/images/toolbar/record.png b/resources/images/toolbar/record.png new file mode 100644 index 0000000..f990325 Binary files /dev/null and b/resources/images/toolbar/record.png differ diff --git a/resources/images/toolbar/redo.png b/resources/images/toolbar/redo.png new file mode 100644 index 0000000..b582772 Binary files /dev/null and b/resources/images/toolbar/redo.png differ diff --git a/resources/images/toolbar/redoOn.png b/resources/images/toolbar/redoOn.png new file mode 100644 index 0000000..df13a50 Binary files /dev/null and b/resources/images/toolbar/redoOn.png differ diff --git a/resources/images/toolbar/reload.png b/resources/images/toolbar/reload.png new file mode 100644 index 0000000..add1540 Binary files /dev/null and b/resources/images/toolbar/reload.png differ diff --git a/resources/images/toolbar/remove.png b/resources/images/toolbar/remove.png new file mode 100644 index 0000000..8e4821d Binary files /dev/null and b/resources/images/toolbar/remove.png differ diff --git a/resources/images/toolbar/removeBackground.png b/resources/images/toolbar/removeBackground.png new file mode 100644 index 0000000..e2e3278 Binary files /dev/null and b/resources/images/toolbar/removeBackground.png differ diff --git a/resources/images/toolbar/rename.png b/resources/images/toolbar/rename.png new file mode 100644 index 0000000..908b44e Binary files /dev/null and b/resources/images/toolbar/rename.png differ diff --git a/resources/images/toolbar/setBackground.png b/resources/images/toolbar/setBackground.png new file mode 100644 index 0000000..64835f5 Binary files /dev/null and b/resources/images/toolbar/setBackground.png differ diff --git a/resources/images/toolbar/settings.png b/resources/images/toolbar/settings.png new file mode 100644 index 0000000..4d647d9 Binary files /dev/null and b/resources/images/toolbar/settings.png differ diff --git a/resources/images/toolbar/smallEraser.png b/resources/images/toolbar/smallEraser.png new file mode 100644 index 0000000..7240708 Binary files /dev/null and b/resources/images/toolbar/smallEraser.png differ diff --git a/resources/images/toolbar/smallPen.png b/resources/images/toolbar/smallPen.png new file mode 100644 index 0000000..e37878e Binary files /dev/null and b/resources/images/toolbar/smallPen.png differ diff --git a/resources/images/toolbar/smallerText.png b/resources/images/toolbar/smallerText.png new file mode 100644 index 0000000..ae43d19 Binary files /dev/null and b/resources/images/toolbar/smallerText.png differ diff --git a/resources/images/toolbar/softwareUpdate.png b/resources/images/toolbar/softwareUpdate.png new file mode 100644 index 0000000..451d3ee Binary files /dev/null and b/resources/images/toolbar/softwareUpdate.png differ diff --git a/resources/images/toolbar/solidLine.png b/resources/images/toolbar/solidLine.png new file mode 100644 index 0000000..a31aa91 Binary files /dev/null and b/resources/images/toolbar/solidLine.png differ diff --git a/resources/images/toolbar/stop.png b/resources/images/toolbar/stop.png new file mode 100644 index 0000000..388fbaf Binary files /dev/null and b/resources/images/toolbar/stop.png differ diff --git a/resources/images/toolbar/stylus.png b/resources/images/toolbar/stylus.png new file mode 100644 index 0000000..5e2764f Binary files /dev/null and b/resources/images/toolbar/stylus.png differ diff --git a/resources/images/toolbar/stylusTab.png b/resources/images/toolbar/stylusTab.png new file mode 100644 index 0000000..5e2764f Binary files /dev/null and b/resources/images/toolbar/stylusTab.png differ diff --git a/resources/images/toolbar/tools.png b/resources/images/toolbar/tools.png new file mode 100644 index 0000000..42071aa Binary files /dev/null and b/resources/images/toolbar/tools.png differ diff --git a/resources/images/toolbar/tutorial.png b/resources/images/toolbar/tutorial.png new file mode 100644 index 0000000..8efbe3f Binary files /dev/null and b/resources/images/toolbar/tutorial.png differ diff --git a/resources/images/toolbar/undo.png b/resources/images/toolbar/undo.png new file mode 100644 index 0000000..49aa376 Binary files /dev/null and b/resources/images/toolbar/undo.png differ diff --git a/resources/images/toolbar/undoOn.png b/resources/images/toolbar/undoOn.png new file mode 100644 index 0000000..3dd50d5 Binary files /dev/null and b/resources/images/toolbar/undoOn.png differ diff --git a/resources/images/toolbar/ungroup.png b/resources/images/toolbar/ungroup.png new file mode 100644 index 0000000..2a7b64b Binary files /dev/null and b/resources/images/toolbar/ungroup.png differ diff --git a/resources/images/toolbar/updates.png b/resources/images/toolbar/updates.png new file mode 100644 index 0000000..cb50073 Binary files /dev/null and b/resources/images/toolbar/updates.png differ diff --git a/resources/images/toolbar/web.png b/resources/images/toolbar/web.png new file mode 100644 index 0000000..b22abb5 Binary files /dev/null and b/resources/images/toolbar/web.png differ diff --git a/resources/images/toolbar/webTrap.png b/resources/images/toolbar/webTrap.png new file mode 100644 index 0000000..4161906 Binary files /dev/null and b/resources/images/toolbar/webTrap.png differ diff --git a/resources/images/toolbar/webTrapEnabled.png b/resources/images/toolbar/webTrapEnabled.png new file mode 100644 index 0000000..422ba7f Binary files /dev/null and b/resources/images/toolbar/webTrapEnabled.png differ diff --git a/resources/images/toolbar/webUpload.png b/resources/images/toolbar/webUpload.png new file mode 100644 index 0000000..a47f3f3 Binary files /dev/null and b/resources/images/toolbar/webUpload.png differ diff --git a/resources/images/toolbar/window.png b/resources/images/toolbar/window.png new file mode 100644 index 0000000..e948420 Binary files /dev/null and b/resources/images/toolbar/window.png differ diff --git a/resources/images/tools.png b/resources/images/tools.png new file mode 100644 index 0000000..5f40247 Binary files /dev/null and b/resources/images/tools.png differ diff --git a/resources/images/trash.png b/resources/images/trash.png new file mode 100644 index 0000000..d1f1523 Binary files /dev/null and b/resources/images/trash.png differ diff --git a/resources/images/unfrozen.svg b/resources/images/unfrozen.svg new file mode 100644 index 0000000..e14b824 --- /dev/null +++ b/resources/images/unfrozen.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/resources/images/ungroupItems.svg b/resources/images/ungroupItems.svg new file mode 100644 index 0000000..2c6bb2a --- /dev/null +++ b/resources/images/ungroupItems.svg @@ -0,0 +1,107 @@ + + + +image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/resources/images/unlocked.svg b/resources/images/unlocked.svg new file mode 100644 index 0000000..5472325 --- /dev/null +++ b/resources/images/unlocked.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/resources/images/unpin.svg b/resources/images/unpin.svg new file mode 100644 index 0000000..ae2841c --- /dev/null +++ b/resources/images/unpin.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/resources/images/up_arrow.png b/resources/images/up_arrow.png new file mode 100644 index 0000000..10aa5ab Binary files /dev/null and b/resources/images/up_arrow.png differ diff --git a/resources/images/vflipTool.svg b/resources/images/vflipTool.svg new file mode 100644 index 0000000..316b77b --- /dev/null +++ b/resources/images/vflipTool.svg @@ -0,0 +1,68 @@ + + + +image/svg+xml + + + + + \ No newline at end of file diff --git a/resources/images/virtual.keyboard/29/backspace.png b/resources/images/virtual.keyboard/29/backspace.png new file mode 100644 index 0000000..f35a86e Binary files /dev/null and b/resources/images/virtual.keyboard/29/backspace.png differ diff --git a/resources/images/virtual.keyboard/29/capslock.png b/resources/images/virtual.keyboard/29/capslock.png new file mode 100644 index 0000000..61c1a4b Binary files /dev/null and b/resources/images/virtual.keyboard/29/capslock.png differ diff --git a/resources/images/virtual.keyboard/29/centre-active.png b/resources/images/virtual.keyboard/29/centre-active.png new file mode 100644 index 0000000..45fcfae Binary files /dev/null and b/resources/images/virtual.keyboard/29/centre-active.png differ diff --git a/resources/images/virtual.keyboard/29/centre-passive.png b/resources/images/virtual.keyboard/29/centre-passive.png new file mode 100644 index 0000000..1dbe5de Binary files /dev/null and b/resources/images/virtual.keyboard/29/centre-passive.png differ diff --git a/resources/images/virtual.keyboard/29/left-active.png b/resources/images/virtual.keyboard/29/left-active.png new file mode 100644 index 0000000..268aeee Binary files /dev/null and b/resources/images/virtual.keyboard/29/left-active.png differ diff --git a/resources/images/virtual.keyboard/29/left-passive.png b/resources/images/virtual.keyboard/29/left-passive.png new file mode 100644 index 0000000..1338d92 Binary files /dev/null and b/resources/images/virtual.keyboard/29/left-passive.png differ diff --git a/resources/images/virtual.keyboard/29/right-active.png b/resources/images/virtual.keyboard/29/right-active.png new file mode 100644 index 0000000..a3fae30 Binary files /dev/null and b/resources/images/virtual.keyboard/29/right-active.png differ diff --git a/resources/images/virtual.keyboard/29/right-passive.png b/resources/images/virtual.keyboard/29/right-passive.png new file mode 100644 index 0000000..cedaeb4 Binary files /dev/null and b/resources/images/virtual.keyboard/29/right-passive.png differ diff --git a/resources/images/virtual.keyboard/29/shift.png b/resources/images/virtual.keyboard/29/shift.png new file mode 100644 index 0000000..8390e56 Binary files /dev/null and b/resources/images/virtual.keyboard/29/shift.png differ diff --git a/resources/images/virtual.keyboard/29/tab.png b/resources/images/virtual.keyboard/29/tab.png new file mode 100644 index 0000000..424d84c Binary files /dev/null and b/resources/images/virtual.keyboard/29/tab.png differ diff --git a/resources/images/virtual.keyboard/41/backspace.png b/resources/images/virtual.keyboard/41/backspace.png new file mode 100644 index 0000000..bec4c33 Binary files /dev/null and b/resources/images/virtual.keyboard/41/backspace.png differ diff --git a/resources/images/virtual.keyboard/41/capslock.png b/resources/images/virtual.keyboard/41/capslock.png new file mode 100644 index 0000000..4e1fd58 Binary files /dev/null and b/resources/images/virtual.keyboard/41/capslock.png differ diff --git a/resources/images/virtual.keyboard/41/centre-active.png b/resources/images/virtual.keyboard/41/centre-active.png new file mode 100644 index 0000000..8736254 Binary files /dev/null and b/resources/images/virtual.keyboard/41/centre-active.png differ diff --git a/resources/images/virtual.keyboard/41/centre-passive.png b/resources/images/virtual.keyboard/41/centre-passive.png new file mode 100644 index 0000000..7e73571 Binary files /dev/null and b/resources/images/virtual.keyboard/41/centre-passive.png differ diff --git a/resources/images/virtual.keyboard/41/left-active.png b/resources/images/virtual.keyboard/41/left-active.png new file mode 100644 index 0000000..4cd57dd Binary files /dev/null and b/resources/images/virtual.keyboard/41/left-active.png differ diff --git a/resources/images/virtual.keyboard/41/left-passive.png b/resources/images/virtual.keyboard/41/left-passive.png new file mode 100644 index 0000000..476090a Binary files /dev/null and b/resources/images/virtual.keyboard/41/left-passive.png differ diff --git a/resources/images/virtual.keyboard/41/right-active.png b/resources/images/virtual.keyboard/41/right-active.png new file mode 100644 index 0000000..46c7ff9 Binary files /dev/null and b/resources/images/virtual.keyboard/41/right-active.png differ diff --git a/resources/images/virtual.keyboard/41/right-passive.png b/resources/images/virtual.keyboard/41/right-passive.png new file mode 100644 index 0000000..fb7c9ca Binary files /dev/null and b/resources/images/virtual.keyboard/41/right-passive.png differ diff --git a/resources/images/virtual.keyboard/41/shift.png b/resources/images/virtual.keyboard/41/shift.png new file mode 100644 index 0000000..10b279d Binary files /dev/null and b/resources/images/virtual.keyboard/41/shift.png differ diff --git a/resources/images/virtual.keyboard/41/tab.png b/resources/images/virtual.keyboard/41/tab.png new file mode 100644 index 0000000..9a752fa Binary files /dev/null and b/resources/images/virtual.keyboard/41/tab.png differ diff --git a/resources/images/z_layer_down.svg b/resources/images/z_layer_down.svg new file mode 100644 index 0000000..0290843 --- /dev/null +++ b/resources/images/z_layer_down.svg @@ -0,0 +1,17 @@ + + + +]> + + + + + + + + + + diff --git a/resources/images/z_layer_up.svg b/resources/images/z_layer_up.svg new file mode 100644 index 0000000..746b6c9 --- /dev/null +++ b/resources/images/z_layer_up.svg @@ -0,0 +1,17 @@ + + + +]> + + + + + + + + + + diff --git a/resources/library/applications/AnyEmbed.wgt/config.xml b/resources/library/applications/AnyEmbed.wgt/config.xml new file mode 100644 index 0000000..746a270 --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/config.xml @@ -0,0 +1,11 @@ + + + AnyEmbed + + diff --git a/resources/library/applications/AnyEmbed.wgt/css/ubwidget.css b/resources/library/applications/AnyEmbed.wgt/css/ubwidget.css new file mode 100644 index 0000000..afa58bd --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/css/ubwidget.css @@ -0,0 +1,24 @@ +* { + margin: 0; + padding: 0; +} + +body{ + margin:0px; +} + +.ubw-container{ + position:absolute; + margin:0px; + left:0px; + top:0px; +} + +.ubw-body{ + margin:0px; + +} + +.bordered{ + border: 1px solid red; +} \ No newline at end of file diff --git a/resources/library/applications/AnyEmbed.wgt/icon.png b/resources/library/applications/AnyEmbed.wgt/icon.png new file mode 100644 index 0000000..ebbcd86 Binary files /dev/null and b/resources/library/applications/AnyEmbed.wgt/icon.png differ diff --git a/resources/library/applications/AnyEmbed.wgt/index.html b/resources/library/applications/AnyEmbed.wgt/index.html new file mode 100644 index 0000000..5ae3005 --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/index.html @@ -0,0 +1,28 @@ + + + + + + AnyEmbed + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/resources/library/applications/AnyEmbed.wgt/js/jquery-1.3.2.min.js b/resources/library/applications/AnyEmbed.wgt/js/jquery-1.3.2.min.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/js/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/resources/library/applications/AnyEmbed.wgt/js/jquery.disable.text.select.js b/resources/library/applications/AnyEmbed.wgt/js/jquery.disable.text.select.js new file mode 100644 index 0000000..2e06f67 --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/js/jquery.disable.text.select.js @@ -0,0 +1,62 @@ +/** + * .disableTextSelect - Disable Text Select Plugin + * + * Version: 1.1 + * Updated: 2007-11-28 + * + * Used to stop users from selecting text + * + * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + **/ + +/** + * Requirements: + * - jQuery (John Resig, http://www.jquery.com/) + **/ +(function($) { + if ($.browser.mozilla) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : 'none' + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : '' + }); + }); + }; + } else if ($.browser.msie) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('selectstart.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('selectstart.disableTextSelect'); + }); + }; + } else { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('mousedown.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('mousedown.disableTextSelect'); + }); + }; + } +})(jQuery); \ No newline at end of file diff --git a/resources/library/applications/AnyEmbed.wgt/js/languages.js b/resources/library/applications/AnyEmbed.wgt/js/languages.js new file mode 100644 index 0000000..6eb357c --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/js/languages.js @@ -0,0 +1,14 @@ +var sankoreLang = { + "en":{ + "embed": "Embed" + }, + "ru":{ + "embed": "Вставить" + }, + "fr":{ + "embed": "Intégrer" + }, + "sk":{ + "embed": "Vložiť" + } +}; diff --git a/resources/library/applications/AnyEmbed.wgt/js/ubw-main.js b/resources/library/applications/AnyEmbed.wgt/js/ubw-main.js new file mode 100644 index 0000000..4af601f --- /dev/null +++ b/resources/library/applications/AnyEmbed.wgt/js/ubw-main.js @@ -0,0 +1,124 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +function init(){ + var embed; + var lang = ""; + + if(window.sankore){ + try{ + lang = sankore.locale().substr(0,2); + sankoreLang[lang].embed; + } catch(e){ + lang = "en"; + } + } else + lang = "en"; + + var inputBox = $("") + .css({ + width: "350px", + height: "58px", + marginRight: "5px" + }); + + var submit = $("
" + sankoreLang[lang].embed + "
") + .css({ + float: "right", + width: "auto", + height:"auto", + padding:"4px", + marginTop:"13px", + cursor:"pointer", + backgroundColor:"rgb(45,65,250)", + border:"1px solid", + borderColor:"rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250)", + textTransform:"capitalize", + fontFamily:"Arial", + fontSize:"18px", + fontWeight:"regular", + color:"white" + }); + + var loadWindow = $("
"); + + var searchWrap = $("
") + .css({ + position:"absolute", + padding: "10px", + backgroundColor: "rgb(230,230,233)", + width: "460px", + height: "65px" + }); + + //FIT WIDGET FRAME ON LAUNCH... + if(window.sankore){ + window.sankore.resize($("#ubwidget").width() + 20,85); + } + + searchWrap.append(inputBox) + .append(submit); + + $("#ubwidget").append(searchWrap); + + submit.click(function(){ + embed = inputBox.val(); + if(embed){ + $("#ubwidget").append(loadWindow); + searchWrap.hide(); + + if(/ + + Calculator + + diff --git a/resources/library/applications/Calculator.wgt/css/calculator.css b/resources/library/applications/Calculator.wgt/css/calculator.css new file mode 100644 index 0000000..62a93e3 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/css/calculator.css @@ -0,0 +1,380 @@ +* { + margin: 0; + padding: 0; +} +body { + font-size: 12px; + margin:0; +} +.calculator { + -webkit-user-select: none; + font-family: Verdana; + background: -webkit-linear-gradient(top, #f6f6f6 0%, #f7f7f7 25%, #f4f4f4 25%, #e8e8e8 100%); + background: linear-gradient(to bottom, #f6f6f6 0%, #f7f7f7 25%, #f4f4f4 25%, #e8e8e8 100%); + padding: 1em; + width: auto; + border-radius: 0.66em; + border: 1px solid #bbb; + margin: 0.33em; + box-shadow: 0.16em 0.16em 0.46em rgba(0, 0, 0, 0.35), inset 0 0 0.45em rgba(0, 0, 0, 0.3); +} +.calculator .title { + font-weight:bold; + color:#333; + text-shadow:0 1px 1px rgba(0, 0, 0, 0.2); + display:block; + margin-top: -1.1em; + margin-right:25%; + top: 0.4em; + position:relative; +} +.calculator .controls { + float: right; + margin: -1.3em 0.2em 0.25em 0; +} +.calculator .controls button { + background: -webkit-linear-gradient(top, #666666 0%, #444444 100%); + background: linear-gradient(to bottom, #666666 0%, #444444 100%); + padding: 0.12em 0.5em; + border: none; + color: white; + outline: none; + text-shadow: 0 -1px 0 black; + border-radius: 0 0 0.25em 0.25em; + box-shadow: inset 0 -1px 1px #000000, 0 1px 1px rgba(0, 0, 0, 0.5); +} +.calculator .controls button + button { + margin-left:2px; +} +.calculator .controls button:active { + background: -webkit-linear-gradient(bottom, #666666 0%, #444444 100%); + background: linear-gradient(to top, #666666 0%, #444444 100%); + box-shadow: inset 0 -1px 3px #000000; + color: #cccccc; +} +.calculator table { + table-layout: fixed; + line-height:90%; + width: 100%; + border-collapse: separate; + border-spacing: 1px; +} +.calculator .screen td { + height: 1px; +} +.calculator .screen ul { + height: 100%; + cursor: default; + box-sizing: border-box; + margin-bottom: 0.8rem; + padding: 0.4rem; + font-size: 1.5em; + line-height: normal; + text-shadow: 0 1px 1px #ffffff; + color: #444f53; + background: -webkit-linear-gradient(top, #f6f8f9 0%, #d2edf2 70%, #c9e3e7 70%, #d4eff4 100%); + background: linear-gradient(to bottom, #f6f8f9 0%, #d2edf2 70%, #c9e3e7 70%, #d4eff4 100%); + border: 1px solid #d3d3d3; + border-top-color: #d0d0d0; + border-left-color: #d0d0d0; + border-radius: 0.33rem; + box-shadow: 0 0 0.4rem #ffffff, inset 0.15rem 0.15rem 0.4rem rgba(21, 39, 54, 0.5); +} +.calculator .screen li { + list-style-type: none; +} +.calculator .screen .expression-row .caret { + border-left: 1px solid #444f53; + box-sizing: border-box; + margin-right: -1px; + -webkit-animation-name: blinker; + -webkit-animation-duration: 1.2s; + -webkit-animation-timing-function: linear; + -webkit-animation-iteration-count: infinite; + animation-name: blinker; + animation-duration: 1.2s; + animation-timing-function: linear; + animation-iteration-count: infinite; +} +@-webkit-keyframes blinker { + 0% { + opacity: 1.0; + } + 40% { + opacity: 1.0; + } + 50% { + opacity: 0.0; + } + 90% { + opacity: 0.0; + } +} +@keyframes blinker { + 0% { + opacity: 1.0; + } + 40% { + opacity: 1.0; + } + 50% { + opacity: 0.0; + } + 90% { + opacity: 0.0; + } +} +.calculator .screen .flag-row { + font-size: 0.6em; + min-height: 15px; + overflow: hidden; +} +.calculator .screen .flag-row span { + margin-right:0.3em; + display: inline-block; +} +.calculator .screen .result-row { + min-height: 38px; + font-size: 1.6em; + text-align: right; +} +.calculator .screen .result-row .error { + color: #4b2525; +} +.calculator .screen .euclidean { + font-size: 0.8em; +} +.calculator .screen .euclidean span { + border-bottom: 1px solid #444f53; + position: relative; + margin-bottom: 0.5rem; + display: block; + float: right; +} +.calculator .screen .euclidean .remainder { + margin-left: 0.5em; +} +.calculator .screen .euclidean span:before { + font-size: 0.4em; + display: block; + position: absolute; + bottom: -1em; + width: 100%; + text-align: center; +} +.calculator .screen .euclidean .quotient:before { + content: 'q'; +} +.calculator .screen .euclidean .remainder:before { + content: 'r'; +} +.calculator .screen .front-screen ul { + overflow: hidden; +} +.calculator .screen .front-screen .expression-row { + min-height: 22px; + max-height: 22px; + white-space: nowrap; +} +.calculator .screen .rear-screen { + width: 50%; +} +.calculator .screen .rear-screen ul { + -webkit-user-select: initial; + height: 103.5%; + margin-right: 0.8rem; + margin-bottom: 0; + font-size: 1.3em; + background: -webkit-linear-gradient(top, #3b474f 0%, #131f21 51%, #0d1516 100%); + background: linear-gradient(to bottom, #3b474f 0%, #131f21 51%, #0d1516 100%); + box-shadow: 0 0 0.4rem #ffffff, inset 0.15rem 0.15rem 0.4rem rgba(21, 39, 54, 0.8); + text-shadow: 0 -1px 1px #000000; + color: #cbe7f4; + overflow-y: scroll; +} +.calculator .screen .rear-screen .expression-row { + word-wrap:break-word; +} +.calculator .screen .rear-screen .euclidian span:before { + font-size: 0.6em; +} +.calculator .edit-area { + height: 100%; + margin-right: 0.8rem; + margin-bottom: 0; + font-size: 1em; + position: relative; +} +.calculator .edit-area hr { + margin: 0.7em 0 0.5em 0; + border: none; + border-top: 1px solid #d0d0d0; + border-bottom: 1px solid #fcfcfc; +} +.calculator .edit-area select { + width: 100%; +} +.calculator .edit-area button.small { + float: right; + width: 9.13%; + height:20px; + padding: 0; + font-size:0; + position:relative; +} +.calculator .edit-area button.small:before { + position: absolute; + display: block; + height:100%; + width: 100%; + font-size:16px; + top: 0; + left: 0; + font-weight:bold; +} +.calculator .edit-area button.small.add:before { + content: '+'; +} +.calculator .edit-area button.small.remove:before { + content: '-'; +} +.calculator .edit-area button.small + button.small { + margin-right:0.4rem; +} +.calculator .edit-area select.layout-select { + width: 74.77%; +} +.calculator .edit-area label { + width: 100%; + display: block; + color: #555555; + margin: 0.7em 0 0.5em 0; +} +.calculator .edit-area input[type=text], +.calculator .edit-area textarea { + display: block; + box-sizing: border-box; + width: 100%; + border: 1px solid #d0d0d0; + font-size: 1em; + font-family: Verdana; + border-radius: 3px; + padding: 4px 2px; + box-shadow: inset 0.1em 0.1em 0.2em rgba(0, 0, 0, 0.2); + resize: none; +} +.calculator .edit-area input[type=text][disabled], +.calculator .edit-area textarea[disabled] { + background-color: #eeeeee; + color: #555555; +} +.calculator .edit-area .assignation { + margin-top: 1em; + border: 1px solid #d0d0d0; + padding: 0.5em; + box-shadow: inset 0 0 0.5em rgba(255, 255, 255, 1); + border-radius: 3px; +} +.calculator .edit-area .assignation em { + font-size: 1.1em; + line-height: 1.1em; + color: #555555; + text-align: center; + display: block; +} +.calculator .edit-area .assignation label:first-child { + margin-top: 0; +} +.calculator .edit-area .assignation .help { + display: block; + margin-top: 0.3em; + font-size: 0.9em; + color: #777777; +} +.calculator .edit-area .run { + display: block; + width: 100%; + position: absolute; + padding: 0.5em 0; + bottom: 0; + font-weight: bold; + outline: 0; +} +.calculator .buttons td { + padding: 0; + margin: 0; +} +.calculator .buttons button { + outline: 0; + font-family: Verdana; + font-size: 1.2em; + font-weight: 500; + color: #555555; + background: -webkit-linear-gradient(bottom, #eeeeee 0%, #fdfdfd 100%); + background: linear-gradient(to top, #eeeeee 0%, #fdfdfd 100%); + border: 0.4em solid #ffffff; + border-top-width: 0.3em; + border-bottom-width: 0.5em; + border-bottom-color: #eeeeee; + border-right-color: #eeeeee; + border-radius: 0.33rem; + box-shadow: 0.2em 0.2em 0.2em 0.1em rgba(0, 0, 0, 0.2); + box-sizing: border-box; + display: block; + width: 100%; + height: 2.4rem; + padding: 0; + margin: 0; +} +.calculator .buttons button:hover { + color: #29a0b5; + background: -webkit-linear-gradient(bottom, #d0ecf0 0%, #ffffff 100%); + background: linear-gradient(to top, #d0ecf0 0%, #ffffff 100%); + border-bottom-color: #d0ecf0; + border-right-color: #d0ecf0; +} +.calculator .buttons button:active { + font-size: 1.1em; + color: #29a0b5; + border: 1px solid #cccccc; + background: -webkit-linear-gradient(bottom, #d0ecf0 0%, #ffffff 100%); + background: linear-gradient(to top, #d0ecf0 0%, #ffffff 100%); + box-shadow: inset 0 0 0.5em 0.2em rgba(0, 0, 0, 0.1), 0.1em 0.1em 0.2em #ffffff; +} +.calculator .buttons .alt button { + color: #2b8eac; + font-weight: bold; +} +.calculator .buttons .edit button { + border:1px solid #aac3b2; + box-shadow: inset 0 0 1.5em 0.2em rgba(48, 114, 71, 0.3); + color: #678d74; +} +.calculator .buttons .danger button { + font-weight: bold; +} +.calculator .buttons .danger button:hover { + color: #cc5d54; + background: -webkit-linear-gradient(bottom, #f0dad0 0%, #ffffff 100%); + background: linear-gradient(to top, #f0dad0 0%, #ffffff 100%); + border-bottom-color: #f0dad0; + border-right-color: #f0dad0; +} +.calculator .buttons .danger button:active { + color: #cc5d54; + background: -webkit-linear-gradient(bottom, #f0dad0 0%, #ffffff 100%); + background: linear-gradient(to top, #f0dad0 0%, #ffffff 100%); +} +.calculator .buttons button[disabled] { + background: inherit; + box-shadow: 0.1em 0.1em 0.2em #ffffff; + border: 1px solid #cccccc; + color: #cccccc; +} +.calculator .buttons button[disabled]:hover { + background: inherit; + box-shadow: 0.1em 0.1em 0.2em #ffffff; +} +.calculator .buttons button[disabled]:active { + font-size: 1.2em; +} \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/dist/calculator.js b/resources/library/applications/Calculator.wgt/dist/calculator.js new file mode 100644 index 0000000..10bcb8c --- /dev/null +++ b/resources/library/applications/Calculator.wgt/dist/calculator.js @@ -0,0 +1,2 @@ +!function(){"use strict";Function.prototype.bind||(Function.prototype.bind=function(a){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),window.klass={create:function(){var a=Object.create(this);return"function"==typeof a.constructor&&a.constructor.apply(a,arguments),a},extend:function(a){var b=Object.create(this);return a?(Object.keys(a).forEach(function(c){b[c]=a[c]}),b):b},define:function(a,b,c){var d=function(a,b){var c,e=a.split(".");return e.length>0?(c=e.shift(),"undefined"==typeof b[c]&&(b[c]={}),e.length>0?d(e.join("."),b[c]):b[c]):null},e=d(a,window);e[b]=c}}}(),function(){"use strict";klass.define("Sankore","Button",klass.extend({constructor:function(a,b,c,d){this.text=a,this.command=b,this.useLimit="undefined"==typeof c?-1:c,this.editable="undefined"==typeof d?!0:d},isEditable:function(){return this.editable},isUsable:function(){return-1===this.useLimit},isDisabled:function(){return 0===this.useLimit},clone:function(){return Sankore.Button.create(this.text,this.command,this.useLimit,this.editable)}}))}(),function(){"use strict";klass.define("Sankore","Calculator",klass.extend({constructor:function(a,b){Sankore.Util.i18n.load(b.locale||"en"),this.currentLayout=null,this.lastError=null,this.memory=null,this.op=null,this.output=null,this.history=[],this.buttonUseCount={},this.expressionString="",this.unpredictable=b.unpredictableMode||!1,this.eventDispatcher=Sankore.Util.EventDispatcher.create(),this.commands=Sankore.Util.Hash.create(),this.texts=Sankore.Util.Hash.create(),this.calculusEngine=Sankore.Calculus.Engine.create(),this.keystrokeLine=Sankore.KeystrokeLine.create(this.eventDispatcher),this.ui=Sankore.UI.MainInterface.create(a,this.eventDispatcher,this.texts,this.unpredictable),this.editor=Sankore.Editor.Editor.create(this),"undefined"!=typeof b.ready&&this.eventDispatcher.addEventListener("calculator.create",b.ready.bind(this));var c=Sankore.Text.create.bind(Sankore.Text);this.texts.add("id",[c("0","0","0"),c("1","1","1"),c("2","2","2"),c("3","3","3"),c("4","4","4"),c("5","5","5"),c("6","6","6"),c("7","7","7"),c("8","8","8"),c("9","9","9"),c("+","+","+","alt"),c("-","-","-","alt"),c("*","×","×","alt"),c("/","÷","÷","alt"),c(":","⊢","⊢","alt"),c("=","=","=","alt"),c(".",_("text.comma"),_("text.comma")),c("(","(","("),c(")",")",")"),c("op","OP","OP"),c("mr","MR","MR"),c("mc","MC","MC"),c("m+","M+","M+"),c("m-","M-","M-"),c("s","",_("text.del"),"alt",!1),c("l","","←","alt",!1),c("r","","→","alt",!1),c("c","","C","danger",!1)]),c=Sankore.Command.create.bind(Sankore.Command),this.commands.add("id",[c("0",_("command.zero"),function(){this.expressionString+="0"}),c("1",_("command.one"),function(){this.expressionString+="1"}),c("2",_("command.two"),function(){this.expressionString+="2"}),c("3",_("command.three"),function(){this.expressionString+="3"}),c("4",_("command.four"),function(){this.expressionString+="4"}),c("5",_("command.five"),function(){this.expressionString+="5"}),c("6",_("command.six"),function(){this.expressionString+="6"}),c("7",_("command.seven"),function(){this.expressionString+="7"}),c("8",_("command.eight"),function(){this.expressionString+="8"}),c("9",_("command.nine"),function(){this.expressionString+="9"}),c("+",_("command.plus"),function(){this.expressionString+="+"}),c("-",_("command.minus"),function(){this.expressionString+="-"}),c("*",_("command.times"),function(){this.expressionString+="*"}),c("/",_("command.divide"),function(){this.expressionString+="/"}),c(":",_("command.euclidean_divide"),function(){this.expressionString+=":"}),Sankore.InterruptingCommand.create("=",_("command.equal"),function(){this.evaluateStack()}),c(".",_("command.comma"),function(){this.expressionString+="."}),c("(",_("command.open_parenthesis"),function(){this.expressionString+="("}),c(")",_("command.close_parenthesis"),function(){this.expressionString+=")"}),Sankore.InterruptingCommand.create("op",_("command.op"),function(){if(null===this.op){if(this.expressionString.length>1&&-1!=="+-*/:".indexOf(this.expressionString[0]))try{this.calculusEngine.evaluate("(1)"+this.expressionString).getValue(),this.op=this.expressionString,this.eventDispatcher.notify("calculator.op_changed",this.op)}catch(a){}this.expressionString="",this.output=null}else 0===this.expressionString.length&&null!==this.output&&(this.expressionString="("+this.output.toString()+")"),this.expressionString+=this.op,this.execCommand("=")}),Sankore.InterruptingCommand.create("memoryAdd",_("command.memory_add"),function(){this.execCommand("=");try{null===this.memory&&(this.memory=0),this.memory+=this.output.getValue()}catch(a){this.memory=null}this.eventDispatcher.notify("calculator.memory_changed",this.memory)}),Sankore.InterruptingCommand.create("memorySub",_("command.memory_sub"),function(){this.execCommand("=");try{null===this.memory&&(this.memory=0),this.memory-=this.output.getValue()}catch(a){this.memory=null}this.eventDispatcher.notify("calculator.memory_changed",this.memory)}),c("memoryRecall",_("command.memory_recall"),function(){null!==this.memory&&(this.expressionString+="("+this.memory.toString()+")")}),c("memoryClear",_("command.memory_clear"),function(){this.memory=null,this.eventDispatcher.notify("calculator.memory_changed",this.memory)}),Sankore.InternalCommand.create("clear",_("command.clear"),function(){this.reset(),this.eventDispatcher.notify("calculator.memory_changed",this.memory),this.eventDispatcher.notify("calculator.op_changed",this.op),this.eventDispatcher.notify("calculator.output_changed",{output:this.output,error:this.lastError})}),Sankore.InternalCommand.create("left",_("command.left"),function(){this.keystrokeLine.moveCaretLeft()}),Sankore.InternalCommand.create("right",_("command.right"),function(){this.keystrokeLine.moveCaretRight()}),Sankore.InternalCommand.create("del",_("command.del"),function(){var a=this.keystrokeLine.del();a&&this.getButtonUseCount(a.slot)&&(this.buttonUseCount[a.slot]--,this.getButtonUseCount(a.slot)=c.button.useLimit&&b.notify("calculator.button_disabled",c))}),b.addEventListener("main_interface.reset_click",function(){a.reload()})},reset:function(){this.memory=null,this.op=null,this.output=null,this.lastError=null,this.expressionString=[],this.keystrokeLine.reset()},init:function(a){var b=this;this.ui.render(),this.editor.init(a.editor||{}),null!==this.layout&&this.loadLayout(a.layout||"default"),"buttonUseCount"in a&&(this.buttonUseCount=a.buttonUseCount),"keystrokes"in a&&this.keystrokeLine.loadState(a.keystrokes||{}),"output"in a&&a.output&&(this.expressionString=a.output||"",this.evaluateStack()),"error"in a&&a.error&&(this.lastError=Sankore.Util.Error.create(a.error.name,a.error.message),this.eventDispatcher.notify("calculator.output_changed",{output:this.output,error:this.lastError})),"memory"in a&&(this.memory=a.memory,this.eventDispatcher.notify("calculator.memory_changed",this.memory)),"op"in a&&(this.op=a.op,this.eventDispatcher.notify("calculator.op_changed",this.op)),"history"in a&&a.history.length>0&&(this.history=a.history.map(function(a){return{expression:a.expression,output:b.calculusEngine.evaluate(a.output)}}),this.eventDispatcher.notify("calculator.history_changed",this.history)),this.eventDispatcher.notify("calculator.init")},getState:function(){return{layout:this.currentLayout?this.currentLayout.id:null,error:this.lastError,memory:this.memory,op:this.op,output:this.output?this.output.toString():null,buttonUseCount:this.buttonUseCount,editor:this.editor.getState(),keystrokes:this.keystrokeLine.getState(),history:this.history.map(function(a){return{expression:a.expression,output:a.output.toString()}})}},loadLayout:function(a){this.currentLayout=this.editor.layouts.get(a),this.execCommand("clear"),this.buttonUseCount={},this.history=[],this.eventDispatcher.notify("calculator.layout_loaded",this.currentLayout)},reload:function(){this.loadLayout(this.currentLayout.id)},execCommand:function(a,b){var c=this.commands.get(a);c.exec(this,b),this.eventDispatcher.notify("calculator.command_executed",{command:c,args:b})},evaluateStack:function(){try{this.output=this.expressionString.length>0?this.calculusEngine.evaluate(this.expressionString):null,this.lastError=null}catch(a){this.lastError=a,this.output=null}this.expressionString="",this.eventDispatcher.notify("calculator.output_changed",{output:this.output,error:this.lastError})},keystroke:function(a,b){var c=this.commands.get(b.command),d=this.texts.get(b.text);c.isInternal()?this.execCommand(c.id):(c.isInterrupting()&&this.keystrokeLine.moveCaretToEnd(),this.keystrokeLine.hit({slot:a,text:d.screen,command:b.command})),c.isInterrupting()&&this.execute()},execute:function(){var a,b=this.keystrokeLine.count();for(a=0;b>a;a++)this.execCommand(this.keystrokeLine.at(a).command);if(this.eventDispatcher.notify("calculator.executed"),!this.lastError&&this.output)try{this.backup(this.keystrokeLine.getAsText().join(""),this.output)}catch(c){}this.keystrokeLine.reset()},useButton:function(a){"undefined"==typeof this.buttonUseCount[a]&&(this.buttonUseCount[a]=0),this.buttonUseCount[a]++},getButtonUseCount:function(a){return this.buttonUseCount[a]||0},backup:function(a,b){try{b.getValue(),this.history.push({expression:a,output:b}),this.eventDispatcher.notify("calculator.history_changed",this.history)}catch(c){}}}))}(),function(){"use strict";klass.define("Sankore.Calculus","Engine",klass.extend({constructor:function(){this.expressions=[],this.operators=[]},init:function(){this.expressions=[],this.operators=[]},evaluate:function(a){var b,c,d,e=[];a=a.replace(/\s+/g,"");for(var f in a)d=a[f],b=e.length>0?e[e.length-1]:void 0,c=e.length>1?e[e.length-2]:void 0,-1!=="0123456789.".indexOf(d)?isNaN(Number(b))&&"."!==b&&"-."!==b&&("-"!==b||"("!==c&&void 0!==c)?e.push(d):e[e.length-1]+=d:e.push(d);for(var g in e)if(e[g].length>1&&"."===e[g].charAt(e[g].length-1))throw Sankore.Util.Error.create("InvalidExpression","Trailing comma");return this.computeExpression(e)},computeExpression:function(a){var b=function(a,b){for(var c,d=Sankore.Calculus.BinaryOperation.getOperatorPrecedence;;){if(c=a.operators[a.operators.length-1],0===a.operators.length||"("===c||d(b)>d(c))return a.operators.push(b);a.reduce()}};this.init();for(var c in a)switch(a[c]){case"(":this.operators.push(a[c]);break;case")":if(0===this.operators.length)throw Sankore.Util.Error.create("InvalidExpression","Trailing closing brackets");for(;0!==this.operators.length&&"("!==this.operators[this.operators.length-1];)this.reduce();"("===this.operators[this.operators.length-1]&&this.operators.pop();break;case"+":case"-":case"*":case"/":case":":b(this,a[c]);break;default:this.expressions.push(Sankore.Calculus.Operand.create(a[c]))}for(;0!==this.operators.length;)this.reduce();if(1!==this.expressions.length)throw Sankore.Util.Error.create("InvalidExpression",'"'+a.join(" ")+'" is not a valid expression');return this.expressions.pop()},reduce:function(){var a,b=this.expressions.pop(),c=this.expressions.pop(),d=this.operators.pop();if("undefined"==typeof d||"undefined"==typeof c||"undefined"==typeof b)throw Sankore.Util.Error.create("InvalidExpression","Invalid expression");a=":"===d?Sankore.Calculus.EuclideanDivisionOperation.create(c,b):Sankore.Calculus.BinaryOperation.create(c,d,b),this.expressions.push(a)}}))}(),function(){"use strict";klass.define("Sankore.Calculus","Expression",klass.extend({constructor:function(){},getValue:function(){return null},isInteger:function(){try{var a=this.getValue();return a===Math.floor(a)}catch(b){return 0}},toString:function(){return""},isCompound:function(){return!1}})),klass.define("Sankore.Calculus","Operand",Sankore.Calculus.Expression.extend({constructor:function(a){if(this.value=Number(a),isNaN(this.value))throw Sankore.Util.Error.create("InvalidNumber",'"'+String(a)+'" is a not a number')},getValue:function(){return this.value},toString:function(){return String(this.value)}})),klass.define("Sankore.Calculus","Operation",Sankore.Calculus.Expression.extend({constructor:function(a,b){this.operator=a,Sankore.Calculus.Expression.isPrototypeOf(b)||(b=Sankore.Calculus.Operand.create(b)),this.right=b},getPrecedence:function(){return Sankore.Calculus.Operation.getOperatorPrecedence(this.operator)},isLeftAssociative:function(){return!1},isCompound:function(){return!0},getValue:function(){var a=Number(this.right.getValue());return"-"===this.operator&&(a*=-1),a},toString:function(){var a=this.right.toString();return"-"!==this.operator?a:(this.right.isCompound()&&(a="("+a+")"),"-"+a)}})),Sankore.Calculus.Operation.getOperatorPrecedence=function(a){switch(a){case"+":case"-":return 1;case"*":case"/":case":":return 2}},klass.define("Sankore.Calculus","BinaryOperation",Sankore.Calculus.Operation.extend({constructor:function(a,b,c){Sankore.Calculus.Operation.constructor.call(this,b,c),Sankore.Calculus.Expression.isPrototypeOf(a)||(a=Sankore.Calculus.Operand.create(a)),this.left=a},isLeftAssociative:function(){return!0},getValue:function(){var a=this.left.getValue(),b=this.right.getValue();switch(this.operator){case"+":return a+b;case"-":return a-b;case"*":return a*b;case"/":if(0===b)throw Sankore.Util.Error.create("ZeroDivision","Division by zero");return a/b;default:throw Sankore.Util.Error.create("InvalidOperator","This is not a valid operator : "+this.operator)}},toString:function(){if(this.isInteger())return String(this.getValue());var a=this.left.toString(),b=this.right.toString();return Sankore.Calculus.Operation.isPrototypeOf(this.left)&&this.left.getPrecedence()0&&(a.getCurrentLayout().name=c,b.notify("editor.layout_changed"))}),b.addEventListener("editor_interface.layout_description_change",function(c){a.getCurrentLayout().description!==c&&(a.getCurrentLayout().description=c,b.notify("editor.layout_changed"))}),b.addEventListener("editor_interface.button_command_change",function(c){a.activeButton&&(a.getCurrentLayout().getButton(a.activeButton).command=c,b.notify("editor.layout_changed"))}),b.addEventListener("editor_interface.button_text_change",function(c){if(a.activeButton){var d=a.getCurrentLayout().getButton(a.activeButton);d.text=c,b.notify("editor.button_renamed",{slot:a.activeButton,button:d}),b.notify("editor.layout_changed")}}),b.addEventListener("editor_interface.button_uselimit_change",function(c){a.activeButton&&(isNaN(Number(c))||(a.getCurrentLayout().getButton(a.activeButton).useLimit=0===c.length?-1:Number(c),b.notify("editor.layout_changed")))}),b.addEventListener("main_interface.button_click",function(b){a.enabled&&a.setActiveButton(b.slot)}),b.addEventListener("main_interface.editor_click",function(){a.enabled?a.runCurrentLayout():a.enable()}),b.addEventListener("main_interface.reset_click",function(){a.enabled&&a.resetActiveButton()})},init:function(a){"layouts"in a&&this.loadLayouts(a.layouts),"enabled"in a&&(this.enabled=a.enabled),this.ui.render(this.calculator.ui),this.setCurrentLayout("current"in a&&a.current?a.current:"default"),this.enabled&&this.enable(),"activeButton"in a&&this.enabled&&this.setActiveButton(a.activeButton)},getState:function(){return{current:this.current,activeButton:this.activeButton,enabled:this.enabled,layouts:this.layouts.map(function(a,b){return b.isEditable()?b:void 0})}},loadLayouts:function(a){var b,c={};for(var d in a){for(var e in a[d].buttonMap)a[d].buttonMap.hasOwnProperty(e)&&(c[e]=Sankore.Button.create(a[d].buttonMap[e].text,a[d].buttonMap[e].command,a[d].buttonMap[e].useLimit));b=Sankore.Editor.Layout.create({id:a[d].id,name:a[d].name,description:a[d].description,buttonMap:c}),b.setEditable(!0),this.layouts.add("id",[b])}},getCurrentLayout:function(){return null===this.current?null:this.layouts.get(this.current)},setCurrentLayout:function(a){this.current=a,this.calculator.eventDispatcher.notify("editor.layout_selected",this.getCurrentLayout()),this.resetActiveButton()},createLayout:function(){var a=this.layouts.get("default").clone();return a.id=this.generateId(),a.name=_("layout.new_name"),a.setEditable(!0),this.layouts.set(a.id,a),this.calculator.eventDispatcher.notify("editor.layout_created"),a},generateId:function(){var a,b="",c=new Date,d=0;for(a=0;a0){var a=this.keystrokes.splice(this.caret-1,1)[0];return this.caret--,this.notify(),a}},moveCaretLeft:function(){this.caret>0&&(this.caret--,this.notify())},moveCaretRight:function(){this.careta)throw Sankore.Util.Error.create("OutOfRangeError","Cannot get keystroke before index 0");if(a>this.keystrokes.length)throw Sankore.Util.Error.create("OutOfRangeError","Cannot get keystroke after index "+this.keystrokes.length);for(c=a;b>c;c++)d+=this.at(c).text;return d},getState:function(){return{keystrokes:this.keystrokes,caret:this.caret}},loadState:function(a){this.keystrokes=a.keystrokes||{},this.caret=a.caret||0,this.notify()}}))}(),function(){"use strict";klass.define("Sankore","Text",klass.extend({constructor:function(a,b,c,d,e){this.id=a,this.screen=b,this.button=c,this.type="undefined"!=typeof d?d:"normal",this.editable="undefined"!=typeof e?!!e:!0},isEditable:function(){return this.editable},setEditable:function(a){this.editable=!!a}}))}(),function(){"use strict";klass.define("Sankore.UI","EditorInterface",klass.extend({constructor:function(a,b){this.editor=a,this.dispatcher=b,this.hidden=!0,this.editArea=null,this.layoutSelect=null,this.layoutNameInput=null,this.layoutDescriptionInput=null,this.assignationDiv=null,this.runButton=null,this.addButton=null,this.removeButton=null,this.attachEventListeners(),this.rendered=!1},attachEventListeners:function(){var a=this;this.dispatcher.addEventListener("editor.show",this.show.bind(this)),this.dispatcher.addEventListener("editor.hide",this.hide.bind(this)),this.dispatcher.addEventSubscriber({events:["editor.layout_changed","editor.layout_created","editor.layout_removed"],listener:this.updateLayoutSelectElement.bind(this)}),this.dispatcher.addEventListener("editor.layout_selected",function(b){a.loadLayout(b),a.selectLayout(b.id)}),this.dispatcher.addEventListener("editor.button_selected",function(b){var c=b.button;null===c&&a.editor.getCurrentLayout()&&(c=a.editor.getCurrentLayout().isEditable()),a.renderAssignation(c)})},_clearElement:function(a){for(;a.firstChild;)a.removeChild(a.firstChild)},_map:function(a,b){var c,d=[];for(c in a)a.hasOwnProperty(c)&&d.push(b.call(a,a[c],c));return d},render:function(a){var b,c,d=this;this.editArea=document.createElement("div"),this.editArea.classList.add("edit-area"),this.layoutSelect=this.createLayoutSelectElement(),this.editArea.appendChild(this.layoutSelect),this.addButton=document.createElement("button"),this.addButton.className="small",this.addButton.setAttribute("type","button"),this.addButton.addEventListener("click",function(){d.dispatcher.notify("editor_interface.add_click")}),this.removeButton=this.addButton.cloneNode(),this.removeButton.classList.add("remove"),this.removeButton.addEventListener("click",function(){d.dispatcher.notify("editor_interface.remove_click")}),this.addButton.classList.add("add"),this.editArea.appendChild(this.addButton),this.editArea.appendChild(this.removeButton),this.editArea.appendChild(document.createElement("hr")),b=document.createElement("label"),b.appendChild(document.createTextNode(_("editor.layout_name.label"))),this.editArea.appendChild(b),this.layoutNameInput=document.createElement("input"),this.layoutNameInput.setAttribute("name","layout_name"),this.layoutNameInput.setAttribute("type","text"),this.layoutNameInput.setAttribute("maxlength",32),this.layoutNameInput.addEventListener("keyup",function(){d.dispatcher.notify("editor_interface.layout_name_change",this.value)}),this.layoutNameInput.addEventListener("change",function(){0===this.value.trim().length&&(this.value=d.editor.getCurrentLayout().name,d.dispatcher.notify("editor_interface.layout_name_change",this.value))}),this.editArea.appendChild(this.layoutNameInput),c=document.createElement("label"),c.appendChild(document.createTextNode(_("editor.layout_description.label"))),this.editArea.appendChild(c),this.layoutDescriptionInput=document.createElement("textarea"),this.layoutDescriptionInput.setAttribute("name","layout_description"),this.layoutDescriptionInput.setAttribute("maxlength",140),this.layoutDescriptionInput.addEventListener("keyup",function(){d.dispatcher.notify("editor_interface.layout_description_change",this.value)}),this.editArea.appendChild(this.layoutDescriptionInput),this.assignationDiv=document.createElement("div"),this.assignationDiv.classList.add("assignation"),this.editArea.appendChild(this.assignationDiv),this.runButton=document.createElement("button"),this.runButton.classList.add("run"),this.runButton.setAttribute("type","button"),this.runButton.appendChild(document.createTextNode(_("editor.run_button"))),this.runButton.addEventListener("click",function(){d.dispatcher.notify("editor_interface.run_click")}),this.editArea.appendChild(this.runButton),a.rearScreen.parentElement.appendChild(this.editArea),this.rendered=!0,this.hide()},createSelectElement:function(a,b,c,d){var e,f=document.createElement("select");f.setAttribute("name",b),c&&(f.className=c);for(var g in a)e=document.createElement("option"),e.setAttribute("value",a[g].value),"undefined"!=typeof d&&d===a[g].value&&(e.selected=!0),e.appendChild(document.createTextNode(a[g].text)),f.appendChild(e);return f},createLayoutSelectElement:function(){var a=this.createSelectElement(this.editor.layouts.map(function(a,b){return{text:b.name,value:b.id}}),"layouts","layout-select",this.editor.current),b=this;return a.addEventListener("change",function(){b.dispatcher.notify("editor_interface.layout_select",this.value)}),a},updateLayoutSelectElement:function(){var a=this.createLayoutSelectElement();this.editArea.replaceChild(a,this.layoutSelect),this.layoutSelect=a},selectLayout:function(a){this.layoutSelect.value=a},show:function(){this.rendered&&(this.editArea.style.display="block",this.hidden=!1)},hide:function(){this.rendered&&(this.editArea.style.display="none",this.hidden=!0)},loadLayout:function(a){this.layoutNameInput.value=a.name,this.layoutNameInput.disabled=!a.isEditable(),this.layoutDescriptionInput.value=a.description,this.layoutDescriptionInput.disabled=!a.isEditable(),this.removeButton.disabled=!a.isEditable(),this.renderAssignation(a.isEditable())},renderAssignation:function(a){var b,c,d,e,f,g,h,i,j,k=this;!1===a?(b=document.createElement("em"),b.appendChild(document.createTextNode(_("editor.assignation.disabled")))):Sankore.Button.isPrototypeOf(a)?(b=document.createDocumentFragment(),c=document.createElement("label"),c.appendChild(document.createTextNode(_("editor.assignation.text.label"))),b.appendChild(c),j=this.editor.calculator.texts.get(a.text),d=this.createSelectElement(this._map(this.editor.getAssignableTexts(),function(a){return{text:a.button,value:a.id}}),"button_text","",j.id),d.addEventListener("change",function(a){k.dispatcher.notify("editor_interface.button_text_change",a.target.value)}),b.appendChild(d),e=document.createElement("label"),e.appendChild(document.createTextNode(_("editor.assignation.command.label"))),b.appendChild(e),f=this.createSelectElement(this._map(this.editor.getAssignableCommands(),function(a){return{text:a.name,value:a.id}}),"button_command","",a.command),f.addEventListener("change",function(a){k.dispatcher.notify("editor_interface.button_command_change",a.target.value)}),b.appendChild(f),g=document.createElement("label"),g.appendChild(document.createTextNode(_("editor.assignation.use_limit.label"))),b.appendChild(g),h=document.createElement("input"),h.setAttribute("type","text"),h.setAttribute("name","button_count"),h.value=-1===a.useLimit?"":a.useLimit,h.addEventListener("change",function(a){k.dispatcher.notify("editor_interface.button_uselimit_change",a.target.value)}),b.appendChild(h),i=document.createElement("span"),i.className="help",i.appendChild(document.createTextNode(_("editor.assignation.use_limit.help"))),b.appendChild(i)):(b=document.createElement("em"),b.appendChild(document.createTextNode(_("editor.assignation.enabled")))),this._clearElement(this.assignationDiv),this.assignationDiv.appendChild(b)}}))}(),function(){"use strict";klass.define("Sankore.UI","MainInterface",klass.extend({constructor:function(a,b,c,d){this.id=a,this.dispatcher=b,this.texts=c,this.withEditor=d,this.title=null,this.caret=document.createElement("i"),this.caret.className="caret",this.frontScreen=null,this.expressionRow=null,this.resultRow=null,this.flagRow=null,this.flags=[],this.rearScreen=null,this.buttons=Sankore.Util.Hash.create(),this.rendered=!1,this.attachEventListeners()},attachEventListeners:function(){var a=this;this.dispatcher.addEventListener("keystroke_line.changed",function(b){a.updateExpressionRow(b.getAsText())}),this.dispatcher.addEventListener("calculator.memory_changed",function(b){null!==b?a.addFlag("M"):a.removeFlag("M"),a.updateFlagRow() +}),this.dispatcher.addEventListener("calculator.op_changed",function(b){null!==b?a.addFlag("OP"):a.removeFlag("OP"),a.updateFlagRow()}),this.dispatcher.addEventListener("calculator.output_changed",function(b){a.updateResultRow(null!==b.output?b.output:null!==b.error?b.error:"")}),this.dispatcher.addEventListener("calculator.history_changed",this.updateRearScreen.bind(this)),this.dispatcher.addEventListener("calculator.layout_loaded",function(b){a.renderButtons(b.buttonMap),a.changeTitle(b.name),a.clearRearScreen()}),this.dispatcher.addEventListener("calculator.button_disabled",function(b){var c=a.buttons.get(b.slot);c&&(c.disabled=!0)}),this.dispatcher.addEventListener("calculator.button_enabled",function(b){var c=a.buttons.get(b);c&&(c.disabled=!1)}),this.dispatcher.addEventListener("editor.show",this.hideRearScreen.bind(this)),this.dispatcher.addEventListener("editor.hide",this.showRearScreen.bind(this)),this.dispatcher.addEventListener("editor.button_selected",function(b){var c=a.buttons.get(b.slot),d=a.buttons.get(b.previousSlot);d&&d.parentElement.classList.remove("edit"),c&&c.parentElement.classList.add("edit")}),this.dispatcher.addEventListener("editor.button_renamed",function(b){var c,d=a.buttons.get(b.slot),e=a.texts.get(b.button.text);d&&(d.innerText=e.button,c=d.parentElement.classList.contains("edit"),d.parentElement.className=e.type,c&&d.parentElement.classList.add("edit"))})},_clearElement:function(a){for(;a.firstChild;)a.removeChild(a.firstChild)},getRootElement:function(){return document.getElementById(this.id)},render:function(){var a=this.getRootElement();this._clearElement(a),a.classList.contains("calculator")||a.classList.add("calculator"),this.createBaseMarkup(a),this.rearScreen=document.createElement("ul"),a.getElementsByClassName("rear-screen").item(0).appendChild(this.rearScreen),this.frontScreen=document.createElement("ul"),a.getElementsByClassName("front-screen").item(0).appendChild(this.frontScreen),this.expressionRow=document.createElement("li"),this.expressionRow.classList.add("expression-row"),this.frontScreen.appendChild(this.expressionRow),this.flagRow=document.createElement("li"),this.flagRow.classList.add("flag-row"),this.frontScreen.appendChild(this.flagRow),this.resultRow=document.createElement("li"),this.resultRow.classList.add("result-row"),this.frontScreen.appendChild(this.resultRow),this.rendered=!0},renderButtons:function(a){var b,c={},d=document.createDocumentFragment(),e=this.getRootElement().getElementsByClassName("screen").item(0).parentElement;for(var f in a)c[f]=a[f];for(c.a0=Sankore.Button.create("s","del",-1,!1),c.b0=Sankore.Button.create("l","left",-1,!1),c.c0=Sankore.Button.create("r","right",-1,!1),c.d0=Sankore.Button.create("c","clear",-1,!1),b=e.getElementsByClassName("buttons");b.length>0;)e.removeChild(b[0]);b=this.createButtons(c);for(var g in b)d.appendChild(b[g]);e.appendChild(d)},createBaseMarkup:function(a){var b=document.createElement("table"),c=document.createElement("tr"),d=document.createElement("td"),e=document.createElement("td");d.className="rear-screen",d.setAttribute("rowspan","8"),c.appendChild(d),e.className="front-screen",e.setAttribute("colspan","4"),c.appendChild(e),c.className="screen",b.appendChild(c),a.appendChild(this.createTitle()),a.appendChild(this.createControls()),a.appendChild(b)},createTitle:function(){return this.title=document.createElement("span"),this.title.appendChild(document.createTextNode("Chargement...")),this.title.className="title",this.title},createControls:function(){var a=document.createElement("div"),b=document.createElement("button"),c=document.createElement("button"),d=this;return this.withEditor&&(b.setAttribute("type","button"),b.appendChild(document.createTextNode(_("controls.editor"))),b.addEventListener("click",function(){d.dispatcher.notify("main_interface.editor_click")}),a.appendChild(b)),c.setAttribute("type","button"),c.appendChild(document.createTextNode(_("controls.reset"))),c.addEventListener("click",function(){d.dispatcher.notify("main_interface.reset_click")}),a.appendChild(c),a.className="controls",a},createButtons:function(a){var b,c=[];for(b=0;7>b;b++)c.push(this.createButtonRow(b,a));return c},createButtonRow:function(a,b){var c,d=document.createElement("tr");for(d.className="buttons",c="a";"d">=c;c=String.fromCharCode(c.charCodeAt(0)+1))d.appendChild(this.createButton(c+a,b));return d},createButton:function(a,b){var c,d,e=document.createElement("td"),f=this,g=b[a];return e.setAttribute("data-slot",a),e.setAttribute("data-editable",g.isEditable()),"undefined"!=typeof g&&(d=document.createElement("button"),c=this.texts.get(g.text),d.innerText=c.button,"normal"!==c.type&&e.classList.add(c.type),d.addEventListener("mousedown",function(b){f.handleButtonClick(this,b,g,a)}),this.buttons.set(a,d),this.dispatcher.notify("main_interface.button_created",{button:g,slot:a}),e.appendChild(d)),e},handleButtonClick:function(a,b,c,d){this.dispatcher.notify("main_interface.button_click",{button:c,slot:d})},updateFlagRow:function(){var a;this._clearElement(this.flagRow);for(var b in this.flags)a=document.createElement("span"),a.appendChild(document.createTextNode(this.flags[b])),this.flagRow.appendChild(a)},updateExpressionRow:function(a){this._clearElement(this.expressionRow),this.expressionRow.appendChild(document.createTextNode(a[0])),this.expressionRow.appendChild(this.caret),this.expressionRow.appendChild(document.createTextNode(a[1]))},updateResultRow:function(a){this._clearElement(this.resultRow),this.resultRow.appendChild(this.createResultRow(a))},createResultRow:function(a){try{return Sankore.Calculus.EuclideanDivisionOperation.isPrototypeOf(a)?this.createResultRowEuclidean(a.getValue(),a.getRemainder()):Sankore.Calculus.Expression.isPrototypeOf(a)?this.createResultRowExpression(a.getValue()):Sankore.Util.Error.isPrototypeOf(a)?this.createResultRowError(a):this.createResultRowText(String(a))}catch(b){return this.createResultRowError(b)}return null},createResultRowEuclidean:function(a,b){var c=document.createElement("p"),d=document.createElement("span"),e=document.createElement("span");return c.classList.add("euclidean"),e.classList.add("remainder"),e.textContent=this.formatResultValue(b),c.appendChild(e),d.classList.add("quotient"),d.textContent=this.formatResultValue(a),c.appendChild(d),c},createResultRowExpression:function(a){return document.createTextNode(this.formatResultValue(a))},createResultRowText:function(a){return document.createTextNode(a)},createResultRowError:function(a){var b=document.createElement("div"),c=_("error.common");return"ZeroDivision"===a.name&&(c=_("error.zero_division")),b.classList.add("error"),b.appendChild(document.createTextNode(c)),b},formatResultValue:function(a){var b,c=a.toFixed(Math.max(0,10-a.toFixed().length));if(-1!==c.indexOf("."))for(;;){b=c.charAt(c.length-1);{if("0"!==b){"."===b&&(c=c.slice(0,-1));break}c=c.slice(0,-1)}}return Number(c)>1e10-1&&(c=Number(c.substring(0,11)/10).toFixed()),-1!==c.indexOf(".")&&(c=c.replace(".",_("text.comma"))),c},updateRearScreen:function(a){var b,c,d=document.createDocumentFragment();for(var e in a)b=document.createElement("li"),b.className="expression-row",b.appendChild(document.createTextNode(a[e].expression)),d.appendChild(b),c=document.createElement("li"),c.className="result-row",c.appendChild(this.createResultRow(a[e].output)),d.appendChild(c);this.clearRearScreen(),this.rearScreen.appendChild(d),this.rearScreen.lastChild.scrollIntoView()},clearRearScreen:function(){this._clearElement(this.rearScreen)},showRearScreen:function(){this.rearScreen.style.display="block",this.showTitle()},hideRearScreen:function(){this.rearScreen.style.display="none",this.hideTitle()},addFlag:function(a){-1===this.flags.indexOf(a)&&(this.flags.push(a),this.flags.sort())},removeFlag:function(a){var b=this.flags.indexOf(a);-1!==b&&(this.flags.splice(b,1),this.flags.sort())},changeTitle:function(a){this._clearElement(this.title),this.title.appendChild(document.createTextNode(a))},showTitle:function(){this.title.style.visibility="visible"},hideTitle:function(){this.title.style.visibility="hidden"}}))}(),function(){"use strict";klass.define("Sankore.Util","Error",klass.extend({constructor:function(a,b){this.name=a,this.message=b},toString:function(){return this.name+": "+this.message}}))}(),function(){"use strict";klass.define("Sankore.Util","EventDispatcher",klass.extend({constructor:function(){this.eventListeners={}},addEventSubscriber:function(a){for(var b in a.events)this.addEventListener(a.events[b],a.listener);return this},addEventListener:function(a,b,c){return"undefined"==typeof this.eventListeners[a]&&(this.eventListeners[a]=[]),"undefined"==typeof c?this.eventListeners[a].push(b):this.eventListeners[a][c]=b,this},removeEventListener:function(a,b){delete this.eventListeners[a][b]},removeAllEventListeners:function(a){this.eventListeners[a]=[]},notify:function(a,b){var c;for(c in this.eventListeners[a])this.eventListeners[a][c](b)}}))}(),function(){"use strict";klass.define("Sankore.Util","Hash",klass.extend({constructor:function(a){this.elements=a||{}},length:function(){return this.keys().length},keys:function(){return Object.keys(this.elements)},set:function(a,b){this.elements[a]=b},add:function(a,b){for(var c in b)this.set(b[c][a],b[c])},has:function(a){return-1!==this.keys().indexOf(a)},get:function(a,b){return"undefined"!=typeof this.elements[a]?this.elements[a]:"undefined"!=typeof b?b:null},pos:function(a){var b=0;for(var c in this.elements){if(this.elements.hasOwnProperty(c)&&c===a)return b;b++}return null},remove:function(a){return delete this.elements[a]},map:function(a){var b,c=[];for(var d in this.elements)this.elements.hasOwnProperty(d)&&(b=a.call(this,d,this.elements[d]),b&&c.push(b));return c}}))}(),function(){"use strict";klass.define("Sankore.Util","I18N",klass.extend({catalogs:Sankore.Util.Hash.create(),constructor:function(){this.catalog={}},load:function(a){var b=a.split(/-|_/)[0].toLowerCase();Sankore.Util.I18N.catalogs.has(b)||(b="en"),this.catalog=Sankore.Util.I18N.catalogs.get(b,{})},translate:function(a){return a.split(".").reduce(function(a,b){return a&&b in a?a[b]:null},this.catalog)||a}})),Sankore.Util.i18n=Sankore.Util.I18N.create(),window._=function(a){return Sankore.Util.i18n.translate(a)}}(),function(){Sankore.Util.I18N.catalogs.set("en",{layout:{classic_name:"Basic calculator",new_name:"New calculator"},text:{del:"DEL",comma:"."},command:{zero:"0 digit",one:"1 digit",two:"2 digit",three:"3 digit",four:"4 digit",five:"5 digit",six:"6 digit",seven:"7 digit",eight:"8 digit",nine:"9 digit",plus:"Addition",minus:"Subtraction",times:"Multiplication",divide:"Division",euclidean_divide:"Euclidean division",equal:"Equal",comma:"Comma",open_parenthesis:"Open parenthesis",close_parenthesis:"Close parenthesis",op:"Constant operator",memory_add:"Memory addition",memory_sub:"Memory substraction",memory_recall:"Memory recall",memory_clear:"Memory clear",clear:"Clear",left:"Move left",right:"Move right",del:"Delete"},controls:{editor:"Editor",reset:"RST"},editor:{run_button:"Run",remove_alert:"Delete this calculator?",layout_name:{label:"Name"},layout_description:{label:"Description"},assignation:{enabled:"Click on a button to edit it",disabled:"This calculator is not editable",text:{label:"Display text"},command:{label:"Command"},use_limit:{label:"Use limit",help:"0 for disabled, empty for unlimited"}}},error:{common:"Error",zero_division:"Div/0 error"}})}(),function(){Sankore.Util.I18N.catalogs.set("fr",{layout:{classic_name:"Calculatrice standard",new_name:"Nouvelle calculatrice"},text:{del:"EFF",comma:","},command:{zero:"Chiffre 0",one:"Chiffre 1",two:"Chiffre 2",three:"Chiffre 3",four:"Chiffre 4",five:"Chiffre 5",six:"Chiffre 6",seven:"Chiffre 7",eight:"Chiffre 8",nine:"Chiffre 9",plus:"Addition",minus:"Soustraction",times:"Multiplication",divide:"Division",euclidean_divide:"Division euclidienne",equal:"Egalité",comma:"Virgule",open_parenthesis:"Parenthèse ouvrante",close_parenthesis:"Parenthèse fermante",op:"Opérateur constant",memory_add:"Addition mémoire",memory_sub:"Soustraction mémoire",memory_recall:"Rappel mémoire",memory_clear:"R.A.Z. mémoire",clear:"R.A.Z.",left:"Déplacement à gauche",right:"Déplacement à droite",del:"Suppression"},controls:{editor:"Editeur",reset:"RAZ"},editor:{run_button:"Utiliser",remove_alert:"Supprimer cette calculatrice ?",layout_name:{label:"Nom"},layout_description:{label:"Description"},assignation:{enabled:"Cliquez sur une touche pour la modifier",disabled:"Cette calculatrice n'est pas modifiable",text:{label:"Texte à afficher"},command:{label:"Commande"},use_limit:{label:"Nb d'utilisation",help:"0 pour désactiver, vide pour illimité"}}},error:{common:"Erreur",zero_division:"Erreur div/0"}})}(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/icon.png b/resources/library/applications/Calculator.wgt/icon.png new file mode 100644 index 0000000..ad76036 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/icon.png differ diff --git a/resources/library/applications/Calculator.wgt/index.html b/resources/library/applications/Calculator.wgt/index.html new file mode 100644 index 0000000..df9e83c --- /dev/null +++ b/resources/library/applications/Calculator.wgt/index.html @@ -0,0 +1,55 @@ + + + + + + Unpredictable Calculator + + + + + + + +
+ + + + + diff --git a/resources/library/applications/Calculator.wgt/js/sankore.js b/resources/library/applications/Calculator.wgt/js/sankore.js new file mode 100644 index 0000000..3d226e2 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/sankore.js @@ -0,0 +1,22 @@ +/*jshint browser:true, devel:true*/ +if (!('sankore' in window)) { + window.sankore = { + preferences: { + state: '' + }, + + setPreference: function (name, value) { + console.log('Preference "' + name + '" set to : ' + value); + this.preferences[name] = value; + }, + + preference: function (name) { + console.log('Accessing "' + name + '"'); + return this.preferences[name] || ''; + }, + + locale: function () { + return window.navigator.language; + } + }; +} \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Button.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Button.js new file mode 100644 index 0000000..02d8d5b --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Button.js @@ -0,0 +1,35 @@ +/*global klass:true, Sankore:true*/ +(function() { + "use strict"; + + klass.define('Sankore', 'Button', klass.extend({ + constructor: function (text, command, useLimit, editable) { + this.text = text; + this.command = command; + + this.useLimit = typeof useLimit === 'undefined' ? -1 : useLimit; + this.editable = typeof editable === 'undefined' ? true : editable; + }, + + isEditable: function () { + return this.editable; + }, + + isUsable: function () { + return this.useLimit === -1; + }, + + isDisabled: function () { + return this.useLimit === 0; + }, + + clone: function () { + return Sankore.Button.create( + this.text, + this.command, + this.useLimit, + this.editable + ); + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculator.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculator.js new file mode 100644 index 0000000..f625384 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculator.js @@ -0,0 +1,528 @@ +/*jshint devel:true, browser:true*/ +/*globals klass:true, Sankore:true, _:true */ +(function () { + "use strict"; + + klass.define('Sankore', 'Calculator', klass.extend({ + constructor: function (id, options) { + Sankore.Util.i18n.load(options.locale || 'en'); + + // state attributes + this.currentLayout = null; + this.lastError = null; // last raised error + this.memory = null; // internal memory + this.op = null; // op memory + this.output = null; // last evaluated resut + this.history = []; // operation history + this.buttonUseCount = {}; // button use count + + // local attributes + this.expressionString = ''; // current expressionString + this.unpredictable = options.unpredictableMode || false; + + // components + this.eventDispatcher = Sankore.Util.EventDispatcher.create(); + this.commands = Sankore.Util.Hash.create(); // command hash + this.texts = Sankore.Util.Hash.create(); // text hash + this.calculusEngine = Sankore.Calculus.Engine.create(); + this.keystrokeLine = Sankore.KeystrokeLine.create(this.eventDispatcher); + this.ui = Sankore.UI.MainInterface.create(id, this.eventDispatcher, this.texts, this.unpredictable); + this.editor = Sankore.Editor.Editor.create(this); + + if (typeof options.ready !== 'undefined') { + this.eventDispatcher.addEventListener('calculator.create', options.ready.bind(this)); + } + + var c = Sankore.Text.create.bind(Sankore.Text); + this.texts.add('id', [ + c('0', '0', '0'), + c('1', '1', '1'), + c('2', '2', '2'), + c('3', '3', '3'), + c('4', '4', '4'), + c('5', '5', '5'), + c('6', '6', '6'), + c('7', '7', '7'), + c('8', '8', '8'), + c('9', '9', '9'), + c('+', '+', '+', 'alt'), + c('-', '-', '-', 'alt'), + c('*', '\u00D7', '\u00D7', 'alt'), + c('/', '\u00F7', '\u00F7', 'alt'), + c(':', '\u22A2', '\u22A2', 'alt'), + c('=', '=', '=', 'alt'), + c('.', _('text.comma'), _('text.comma')), + c('(', '(', '('), + c(')', ')', ')'), + c('op', 'OP', 'OP'), + c('mr', 'MR', 'MR'), + c('mc', 'MC', 'MC'), + c('m+', 'M+', 'M+'), + c('m-', 'M-', 'M-'), + c('s', '', _('text.del'), 'alt', false), + c('l', '', '\u2190', 'alt', false), + c('r', '', '\u2192', 'alt', false), + c('c', '', 'C', 'danger', false) + ]); + + c = Sankore.Command.create.bind(Sankore.Command); + this.commands.add('id', [ + // add 0 to the expression string + c('0', _('command.zero'), function (args) { + this.expressionString += '0'; + }), + + // add 1 to the expression string + c('1', _('command.one'), function (args) { + this.expressionString += '1'; + }), + + // add 2 to the expression string + c('2', _('command.two'), function (args) { + this.expressionString += '2'; + }), + + // add 3 to the expression string + c('3', _('command.three'), function (args) { + this.expressionString += '3'; + }), + + // add 4 to the expression string + c('4', _('command.four'), function (args) { + this.expressionString += '4'; + }), + + // add 5 to the expression string + c('5', _('command.five'), function (args) { + this.expressionString += '5'; + }), + + // add 6 to the expression string + c('6', _('command.six'), function (args) { + this.expressionString += '6'; + }), + + // add 7 to the expression string + c('7', _('command.seven'), function (args) { + this.expressionString += '7'; + }), + + // add 8 to the expression string + c('8', _('command.eight'), function (args) { + this.expressionString += '8'; + }), + + // add 9 to the expression string + c('9', _('command.nine'), function (args) { + this.expressionString += '9'; + }), + + // add + to the expression string + c('+', _('command.plus'), function (args) { + this.expressionString += '+'; + }), + + // add - to the expression string + c('-', _('command.minus'), function (args) { + this.expressionString += '-'; + }), + + // add * to the expression string + c('*', _('command.times'), function (args) { + this.expressionString += '*'; + }), + + // add / to the expression string + c('/', _('command.divide'), function (args) { + this.expressionString += '/'; + }), + + // add : to the expression string + c(':', _('command.euclidean_divide'), function (args) { + this.expressionString += ':'; + }), + + // evaluate the current expression + Sankore.InterruptingCommand.create('=', _('command.equal'), function (args) { + this.evaluateStack(); + }), + + // add . to the expression string + c('.', _('command.comma'), function (args) { + this.expressionString += '.'; + }), + + // add ( to the expression string + c('(', _('command.open_parenthesis'), function (args) { + this.expressionString += '('; + }), + + // add ) to the expression string + c(')', _('command.close_parenthesis'), function (args) { + this.expressionString += ')'; + }), + + // store the current (incomplete) expression if not already, else + // call the incomplete expression, append it to the expression string then evaluate + Sankore.InterruptingCommand.create('op', _('command.op'), function (args) { + if (null === this.op) { + if (this.expressionString.length > 1 && + -1 !== '+-*/:'.indexOf(this.expressionString[0]) + ) { + try { + // we parse the OP expression with a fake left operand (1) + // if it raised exceptions during parsing or evaluating, + // the expression is not good for an OP operation + this.calculusEngine.evaluate('(1)' + this.expressionString).getValue(); + + this.op = this.expressionString; + this.eventDispatcher.notify('calculator.op_changed', this.op); + } catch (e) { + } + } + + this.expressionString = ''; + this.output = null; + } else { + // case : the OP command is called immediately. The previous results is used + // as the left operand + if (0 === this.expressionString.length && null !== this.output) { + this.expressionString = '(' + this.output.toString() + ')'; + } + + this.expressionString += this.op; + this.execCommand('='); + } + }), + + // evaluate the expression string and add it to the memory + Sankore.InterruptingCommand.create('memoryAdd', _('command.memory_add'), function (args) { + this.execCommand('='); + + try { + if (null === this.memory) { + this.memory = 0; + } + + this.memory += this.output.getValue(); + } catch (e) { + this.memory = null; + } + + this.eventDispatcher.notify('calculator.memory_changed', this.memory); + }), + + // evaluate the expression string and substract it from the memory + Sankore.InterruptingCommand.create('memorySub', _('command.memory_sub'), function (args) { + this.execCommand('='); + + try { + if (null === this.memory) { + this.memory = 0; + } + + this.memory -= this.output.getValue(); + } catch (e) { + this.memory = null; + } + + this.eventDispatcher.notify('calculator.memory_changed', this.memory); + }), + + // add the current memory value to the expression string + c('memoryRecall', _('command.memory_recall'), function (args) { + if (null !== this.memory) { + this.expressionString += '(' + this.memory.toString() + ')'; + } + }), + + // clear the memory + c('memoryClear', _('command.memory_clear'), function (args) { + this.memory = null; + + this.eventDispatcher.notify('calculator.memory_changed', this.memory); + }), + + // clear the output, memory, op and expression string + Sankore.InternalCommand.create('clear', _('command.clear'), function (args) { + this.reset(); + + this.eventDispatcher.notify('calculator.memory_changed', this.memory); + this.eventDispatcher.notify('calculator.op_changed', this.op); + this.eventDispatcher.notify('calculator.output_changed', { + output: this.output, + error: this.lastError + }); + }), + + // move the caret left + Sankore.InternalCommand.create('left', _('command.left'), function (args) { + this.keystrokeLine.moveCaretLeft(); + }), + + // move the caret right + Sankore.InternalCommand.create('right', _('command.right'), function (args) { + this.keystrokeLine.moveCaretRight(); + }), + + // delete the keystroke before the caret + Sankore.InternalCommand.create('del', _('command.del'), function (args) { + var keystroke = this.keystrokeLine.del(); + + if (keystroke && this.getButtonUseCount(keystroke.slot)) { + this.buttonUseCount[keystroke.slot]--; + if (this.getButtonUseCount(keystroke.slot) < this.currentLayout.getButton(keystroke.slot).useLimit) { + this.eventDispatcher.notify('calculator.button_enabled', keystroke.slot); + } + } + }) + ]); + + this.attachEventHandlers(); + + this.eventDispatcher.notify('calculator.create'); + }, + + attachEventHandlers: function () { + var self = this, ed = this.eventDispatcher; + + if (this.unpredictable) { + ed.addEventListener('editor.show', this.reload.bind(this)); + ed.addEventListener('editor.hide', this.reload.bind(this)); + } + + ed.addEventListener('editor.layout_selected', function (layout) { + self.loadLayout(layout.id); + }); + + ed.addEventListener('main_interface.button_created', function (event) { + if (!self.editor.enabled && event.button.isDisabled()) { + ed.notify('calculator.button_disabled', event); + } + }); + + ed.addEventListener('main_interface.button_click', function (event) { + if (!self.editor.enabled) { + self.useButton(event.slot); + + self.keystroke(event.slot, event.button); + + if (!event.button.isUsable() && self.getButtonUseCount(event.slot) >= event.button.useLimit) { + ed.notify('calculator.button_disabled', event); + } + } + }); + + ed.addEventListener('main_interface.reset_click', function () { + self.reload(); + }); + }, + + reset: function () { + this.memory = null; + this.op = null; + this.output = null; + this.lastError = null; + this.expressionString = []; + this.keystrokeLine.reset(); + }, + + init: function (state) { + var self = this; + + this.ui.render(); + + this.editor.init(state.editor ||  {}); + + if (null !== this.layout) { + this.loadLayout(state.layout || 'default'); + } + + if ('buttonUseCount' in state) { + this.buttonUseCount = state.buttonUseCount; + } + + if ('keystrokes' in state) { + this.keystrokeLine.loadState(state.keystrokes || {}); + } + + if ('output' in state && state.output) { + this.expressionString = state.output || ''; + + this.evaluateStack(); + } + + if ('error' in state && state.error) { + this.lastError = Sankore.Util.Error.create(state.error.name, state.error.message); + + this.eventDispatcher.notify('calculator.output_changed', { + output: this.output, + error: this.lastError + }); + } + + if ('memory' in state) { + this.memory = state.memory; + + this.eventDispatcher.notify('calculator.memory_changed', this.memory); + } + + if ('op' in state) { + this.op = state.op; + + this.eventDispatcher.notify('calculator.op_changed', this.op); + } + + if ('history' in state && state.history.length > 0) { + this.history = state.history.map(function (log) { + return { + expression: log.expression, + output: self.calculusEngine.evaluate(log.output) + }; + }); + + this.eventDispatcher.notify('calculator.history_changed', this.history); + } + + this.eventDispatcher.notify('calculator.init'); + }, + + getState: function () { + return { + layout: this.currentLayout ? this.currentLayout.id : null, + error: this.lastError, + memory: this.memory, + op: this.op, + output: this.output ? this.output.toString() : null, + buttonUseCount: this.buttonUseCount, + editor: this.editor.getState(), + keystrokes: this.keystrokeLine.getState(), + history: this.history.map(function (log) { + return { + expression: log.expression, + output: log.output.toString() + }; + }) + }; + }, + + loadLayout: function (layoutId) { + this.currentLayout = this.editor.layouts.get(layoutId); + + this.execCommand('clear'); + this.buttonUseCount = {}; + this.history = []; + + this.eventDispatcher.notify('calculator.layout_loaded', this.currentLayout); + }, + + reload: function () { + this.loadLayout(this.currentLayout.id); + }, + + execCommand: function (name, args) { + var command = this.commands.get(name); + + command.exec(this, args); + + this.eventDispatcher.notify('calculator.command_executed', { + command: command, + args: args + }); + }, + + evaluateStack: function () { + try { + if (this.expressionString.length > 0) { + this.output = this.calculusEngine.evaluate(this.expressionString); + } else { + this.output = null; + } + + this.lastError = null; + } catch (e) { + this.lastError = e; + this.output = null; + } + + this.expressionString = ''; + + this.eventDispatcher.notify('calculator.output_changed', { + output: this.output, + error: this.lastError + }); + }, + + keystroke: function (slot, button) { + var command = this.commands.get(button.command), + text = this.texts.get(button.text); + + if (!command.isInternal()) { + if (command.isInterrupting()) { + this.keystrokeLine.moveCaretToEnd(); + } + + this.keystrokeLine.hit({ + slot: slot, + text: text.screen, + command: button.command + }); + } else { + this.execCommand(command.id); + } + + if (command.isInterrupting()) { + this.execute(); + } + }, + + execute: function () { + var length = this.keystrokeLine.count(), + i; + + for (i = 0; i < length; i++) { + this.execCommand(this.keystrokeLine.at(i).command); + } + + this.eventDispatcher.notify('calculator.executed'); + + if (!this.lastError && this.output) { + try { + this.backup( + this.keystrokeLine.getAsText().join(''), + this.output + ); + } catch (e) {} + } + + this.keystrokeLine.reset(); + }, + + useButton: function (slot) { + if (typeof this.buttonUseCount[slot] === 'undefined') { + this.buttonUseCount[slot] = 0; + } + + this.buttonUseCount[slot]++; + }, + + getButtonUseCount: function (slot) { + return this.buttonUseCount[slot] || 0; + }, + + backup: function (expression, output) { + try { + // precompute output value for raising potentials exceptions, ugly hack though + output.getValue(); + + this.history.push({ + expression: expression, + output: output + }); + + this.eventDispatcher.notify('calculator.history_changed', this.history); + } catch (e) {} + } + + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Engine.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Engine.js new file mode 100644 index 0000000..dbecb9b --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Engine.js @@ -0,0 +1,155 @@ +/*jshint plusplus: true*/ +/*global klass: true, Sankore: true*/ +(function () { + "use strict"; + + klass.define('Sankore.Calculus', 'Engine', klass.extend({ + constructor: function () { + this.expressions = []; + this.operators = []; + }, + + init: function () { + this.expressions = []; + this.operators = []; + }, + + evaluate: function (expressionString) { + var tokens = [], + lastToken, + penultimateToken, + item; + + expressionString = expressionString.replace(/\s+/g, ''); + + for (var i in expressionString) { + item = expressionString[i]; + + if (tokens.length > 0) { + lastToken = tokens[tokens.length - 1]; + } else { + lastToken = undefined; + } + + if (tokens.length > 1) { + penultimateToken = tokens[tokens.length - 2]; + } else { + penultimateToken = undefined; + } + + if ('0123456789.'.indexOf(item) !== -1) { + if ( + !isNaN(Number(lastToken)) || + lastToken === '.' || + lastToken === '-.' || + ( + lastToken === '-' && + ( + penultimateToken === '(' || + penultimateToken === undefined + ) + ) + ) { + tokens[tokens.length - 1] += item; + } else { + tokens.push(item); + } + } else { + tokens.push(item); + } + } + + for (var j in tokens) { + if (tokens[j].length > 1 && tokens[j].charAt(tokens[j].length - 1) === '.') { + throw Sankore.Util.Error.create('InvalidExpression', 'Trailing comma'); + } + } + + return this.computeExpression(tokens); + }, + + computeExpression: function (tokens) { + var operatorCheck = function (stack, token) { + var prec = Sankore.Calculus.BinaryOperation.getOperatorPrecedence, + top; + + while (true) { + top = stack.operators[stack.operators.length - 1]; + + if (stack.operators.length === 0 || top === '(' || prec(token) > prec(top)) { + return stack.operators.push(token); + } + + stack.reduce(); + } + }; + + this.init(); + + for (var i in tokens) { + switch (tokens[i]) { + case '(': + this.operators.push(tokens[i]); + break; + + case ')': + if (this.operators.length === 0) { + throw Sankore.Util.Error.create('InvalidExpression', 'Trailing closing brackets'); + } + + while (this.operators.length !== 0 && this.operators[this.operators.length - 1] !== '(') { + this.reduce(); + } + + if (this.operators[this.operators.length - 1] === '(') { + this.operators.pop(); // get rid of the extra paren '(' + } + + break; + + case '+': + case '-': + case '*': + case '/': + case ':': + operatorCheck(this, tokens[i]); + break; + + default: + this.expressions.push(Sankore.Calculus.Operand.create(tokens[i])); + } + } + + while (this.operators.length !== 0) { + this.reduce(); + } + + // if there's not one and only one expression in the stack, the expression is invalid + if (this.expressions.length !== 1) { + throw Sankore.Util.Error.create('InvalidExpression', '"' + tokens.join(' ') + '" is not a valid expression'); + } + + return this.expressions.pop(); + }, + + reduce: function () { + var right = this.expressions.pop(), + left = this.expressions.pop(), + operator = this.operators.pop(), + operation; + + if (typeof operator === 'undefined' || typeof left === 'undefined' || typeof right === 'undefined') { + throw Sankore.Util.Error.create('InvalidExpression', 'Invalid expression'); + } + + if (operator === ':') { + operation = Sankore.Calculus.EuclideanDivisionOperation.create(left, right); + } else { + operation = Sankore.Calculus.BinaryOperation.create(left, operator, right); + } + + this.expressions.push(operation); + } + + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Expression.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Expression.js new file mode 100644 index 0000000..427820a --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Calculus/Expression.js @@ -0,0 +1,217 @@ +/*global klass:true, Sankore:true */ +(function () { + "use strict"; + + /** + * Base class for expression + */ + klass.define('Sankore.Calculus', 'Expression', klass.extend({ + constructor: function () { + + }, + + getValue: function () { + return null; + }, + + isInteger: function () { + try { + var value = this.getValue(); + + return value === Math.floor(value); + } catch (e) { + return 0; + } + }, + + toString: function () { + return ''; + }, + + isCompound: function () { + return false; + } + })); + + /** + * Calculus operand + */ + klass.define('Sankore.Calculus', 'Operand', Sankore.Calculus.Expression.extend({ + constructor: function (value) { + this.value = Number(value); + + if (isNaN(this.value)) { + throw Sankore.Util.Error.create('InvalidNumber', '"' + String(value) + '" is a not a number'); + } + }, + + getValue: function () { + return this.value; + }, + + toString: function () { + return String(this.value); + } + })); + + /** + * Unary operator (+, -) + */ + klass.define('Sankore.Calculus', 'Operation', Sankore.Calculus.Expression.extend({ + constructor: function (operator, right) { + this.operator = operator; + + if (!Sankore.Calculus.Expression.isPrototypeOf(right)) { + right = Sankore.Calculus.Operand.create(right); + } + + this.right = right; + }, + + getPrecedence: function () { + return Sankore.Calculus.Operation.getOperatorPrecedence(this.operator); + }, + + isLeftAssociative: function () { + return false; + }, + + isCompound: function () { + return true; + }, + + getValue: function () { + var value = Number(this.right.getValue()); + + if (this.operator === '-') { + value *= -1; + } + + return value; + }, + + toString: function () { + var string = this.right.toString(); + + if (this.operator !== '-') { + return string; + } + + if (this.right.isCompound()) { + string = '(' + string + ')'; + } + + return '-' + string; + } + })); + + Sankore.Calculus.Operation.getOperatorPrecedence = function (operator) { + switch (operator) { + case '+': + case '-': + return 1; + case '*': + case '/': + case ':': + return 2; + } + }; + + /** + * Binary operator (+, -, *, /) + */ + klass.define('Sankore.Calculus', 'BinaryOperation', Sankore.Calculus.Operation.extend({ + constructor: function (left, operator, right) { + Sankore.Calculus.Operation.constructor.call(this, operator, right); + + if (!Sankore.Calculus.Expression.isPrototypeOf(left)) { + left = Sankore.Calculus.Operand.create(left); + } + + this.left = left; + }, + + isLeftAssociative: function () { + return true; + }, + + getValue: function () { + var leftValue = this.left.getValue(), + rightValue = this.right.getValue(); + + switch (this.operator) { + case '+': + return leftValue + rightValue; + + case '-': + return leftValue - rightValue; + + case '*': + return leftValue * rightValue; + + case '/': + if (0 === rightValue) { + throw Sankore.Util.Error.create('ZeroDivision', 'Division by zero'); + } + + return leftValue / rightValue; + + default: + throw Sankore.Util.Error.create('InvalidOperator', 'This is not a valid operator : ' + this.operator); + } + }, + + toString: function () { + if (this.isInteger()) { + return String(this.getValue()); + } + + var leftString = this.left.toString(), + rightString = this.right.toString(), + string = ''; + + if (Sankore.Calculus.Operation.isPrototypeOf(this.left)) { + if (this.left.getPrecedence() < this.getPrecedence()) { + leftString = '(' + leftString + ')'; + } + } + + if (Sankore.Calculus.Operation.isPrototypeOf(this.right)) { + if (this.right.getPrecedence() < this.getPrecedence()) { + rightString = '(' + rightString + ')'; + } + } + + return leftString + String(this.operator) + rightString; + } + })); + + /** + * Euclidean division operator + */ + klass.define('Sankore.Calculus', 'EuclideanDivisionOperation', Sankore.Calculus.BinaryOperation.extend({ + constructor: function (left, right) { + Sankore.Calculus.BinaryOperation.constructor.call(this, left, ':', right); + }, + + getValue: function () { + var rightValue = this.right.getValue(); + + if (0 === rightValue) { + throw Sankore.Util.Error.create('ZeroDivision', 'Division by zero'); + } + + return Math.floor(this.left.getValue() / rightValue); + }, + + getRemainder: function () { + var rightValue = this.right.getValue(); + + if (0 === rightValue) { + throw Sankore.Util.Error.create('ZeroDivision', 'Division by zero'); + } + + return this.left.getValue() % rightValue; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Command.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Command.js new file mode 100644 index 0000000..cda111c --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Command.js @@ -0,0 +1,52 @@ +/*global klass:true, Sankore:true*/ +(function () { + "use strict"; + + klass.define('Sankore', 'Command', klass.extend({ + constructor: function (id, name, closure) { + this.id = id; + this.name = name; + this.closure = closure; + }, + + getId: function () { + return this.id; + }, + + getName: function () { + return this.name; + }, + + exec: function (scope, args) { + this.closure.call(scope, args); + }, + + isInterrupting: function () { + return false; + }, + + isInternal: function () { + return false; + } + })); + + klass.define('Sankore', 'InterruptingCommand', Sankore.Command.extend({ + constructor: function (id, name, closure) { + Sankore.Command.constructor.call(this, id, name, closure); + }, + + isInterrupting: function () { + return true; + } + })); + + klass.define('Sankore', 'InternalCommand', Sankore.Command.extend({ + constructor: function (id, name, closure) { + Sankore.Command.constructor.call(this, id, name, closure); + }, + + isInternal: function () { + return true; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Editor.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Editor.js new file mode 100644 index 0000000..ae9dd50 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Editor.js @@ -0,0 +1,341 @@ +/*jshint browser:true, devel:true */ +/*global klass:true, Sankore:true, _:true*/ +(function () { + "use strict"; + + klass.define('Sankore.Editor', 'Editor', klass.extend({ + constructor: function (calculator) { + + // state attributes + this.current = null; + this.activeButton = null; + this.enabled = false; + this.layouts = Sankore.Util.Hash.create({ + 'default': Sankore.Editor.Layout.create({ + id: 'default', + name: _('layout.classic_name'), + buttonMap: { + a1: Sankore.Button.create('mr', 'memoryRecall'), + b1: Sankore.Button.create('mc', 'memoryClear'), + c1: Sankore.Button.create('m+', 'memoryAdd'), + d1: Sankore.Button.create('m-', 'memorySub'), + + a2: Sankore.Button.create('op', 'op'), + b2: Sankore.Button.create('(', '('), + c2: Sankore.Button.create(')', ')'), + d2: Sankore.Button.create(':', ':'), + + a3: Sankore.Button.create('7', '7'), + b3: Sankore.Button.create('8', '8'), + c3: Sankore.Button.create('9', '9'), + d3: Sankore.Button.create('/', '/'), + + a4: Sankore.Button.create('4', '4'), + b4: Sankore.Button.create('5', '5'), + c4: Sankore.Button.create('6', '6'), + d4: Sankore.Button.create('*', '*'), + + a5: Sankore.Button.create('1', '1'), + b5: Sankore.Button.create('2', '2'), + c5: Sankore.Button.create('3', '3'), + d5: Sankore.Button.create('-', '-'), + + a6: Sankore.Button.create('0', '0'), + b6: Sankore.Button.create('.', '.'), + c6: Sankore.Button.create('=', '='), + d6: Sankore.Button.create('+', '+') + } + }) + }); + + // components + this.calculator = calculator; + this.ui = Sankore.UI.EditorInterface.create(this, this.calculator.eventDispatcher); + + this.attachEventHandlers(); + }, + + attachEventHandlers: function () { + var self = this, ed = this.calculator.eventDispatcher; + + // click on Add button + ed.addEventListener('editor_interface.add_click', function () { + var clone = self.createLayout(); + + self.setCurrentLayout(clone.id); + }); + + // click on Remove button + ed.addEventListener('editor_interface.remove_click', function () { + self.removeLayout(self.current); + + self.setCurrentLayout('default'); + }); + + // click on Run button + ed.addEventListener('editor_interface.run_click', this.runCurrentLayout.bind(this)); + + // load the new selected layout + ed.addEventListener('editor_interface.layout_select', function (layoutId) { + self.setCurrentLayout(layoutId); + }); + + // the layout name has changed + ed.addEventListener('editor_interface.layout_name_change', function (name) { + if (self.getCurrentLayout().name !== name && name.trim().length > 0) { + self.getCurrentLayout().name = name; + ed.notify('editor.layout_changed'); + } + }); + + // the layout description has changed + ed.addEventListener('editor_interface.layout_description_change', function (description) { + if (self.getCurrentLayout().description !== description) { + self.getCurrentLayout().description = description; + ed.notify('editor.layout_changed'); + } + }); + + // the command of a button has changed + ed.addEventListener('editor_interface.button_command_change', function (command) { + if (self.activeButton) { + self.getCurrentLayout().getButton(self.activeButton).command = command; + ed.notify('editor.layout_changed'); + } + }); + + // the text of a button has changed + ed.addEventListener('editor_interface.button_text_change', function (text) { + if (self.activeButton) { + var button = self.getCurrentLayout().getButton(self.activeButton); + button.text = text; + + ed.notify('editor.button_renamed', { + slot: self.activeButton, + button: button + }); + + ed.notify('editor.layout_changed'); + } + }); + + // the use limit of a button has changed + ed.addEventListener('editor_interface.button_uselimit_change', function (limit) { + if (self.activeButton) { + if (!isNaN(Number(limit))) { + self.getCurrentLayout().getButton(self.activeButton).useLimit = limit.length === 0 ? -1 : Number(limit); + ed.notify('editor.layout_changed'); + } + } + }); + + // a button is clicked + ed.addEventListener('main_interface.button_click', function (event) { + if (self.enabled) { + self.setActiveButton(event.slot); + } + }); + + // the editor button is click + ed.addEventListener('main_interface.editor_click', function () { + if (self.enabled) { + self.runCurrentLayout(); + } else { + self.enable(); + } + }); + + // the editor button is click + ed.addEventListener('main_interface.reset_click', function () { + if (self.enabled) { + self.resetActiveButton(); + } + }); + }, + + init: function (state) { + var self = this; + + if ('layouts' in state) { + this.loadLayouts(state.layouts); + } + + if ('enabled' in state) { + this.enabled = state.enabled; + } + + this.ui.render(this.calculator.ui); + + this.setCurrentLayout(('current' in state && state.current) ? state.current : 'default'); + + if (this.enabled) { + this.enable(); + } + + if ('activeButton' in state && this.enabled) { + this.setActiveButton(state.activeButton); + } + }, + + getState: function () { + return { + current: this.current, + activeButton: this.activeButton, + enabled: this.enabled, + layouts: this.layouts.map(function (id, layout) { + if (layout.isEditable()) { + return layout; + } + }) + }; + }, + + loadLayouts: function (layouts) { + var buttonMap = {}, + layout; + + for (var i in layouts) { + for (var slot in layouts[i].buttonMap) { + if (layouts[i].buttonMap.hasOwnProperty(slot)) { + buttonMap[slot] = Sankore.Button.create( + layouts[i].buttonMap[slot].text, + layouts[i].buttonMap[slot].command, + layouts[i].buttonMap[slot].useLimit + ); + } + } + + layout = Sankore.Editor.Layout.create({ + id: layouts[i].id, + name: layouts[i].name, + description: layouts[i].description, + buttonMap: buttonMap + }); + + layout.setEditable(true); + + this.layouts.add('id', [layout]); + } + }, + + getCurrentLayout: function () { + if (null === this.current) { + return null; + } + + return this.layouts.get(this.current); + }, + + setCurrentLayout: function (id) { + this.current = id; + + this.calculator.eventDispatcher.notify('editor.layout_selected', this.getCurrentLayout()); + + this.resetActiveButton(); + }, + + createLayout: function () { + var clone = this.layouts.get('default').clone(); + + clone.id = this.generateId(); + clone.name = _('layout.new_name'); + clone.setEditable(true); + + this.layouts.set(clone.id, clone); + this.calculator.eventDispatcher.notify('editor.layout_created'); + + return clone; + }, + + /** + * don't try to understand the purpose of this method, it just generates an unique string based upon the current widget url and current time + */ + generateId: function () { + var values = '', + date = new Date(), + id = 0, + i; + + for (i = 0; i < document.URL.length; i++) { + values += String(document.URL.charCodeAt(i) * (date.getMilliseconds() + date.getSeconds() + date.getMinutes())); + } + + values = values.match(/.{1,10}/g); + + for (i in values) { + id += Number(values[i]); + } + + return id.toString(36); + }, + + removeLayout: function (id) { + if (confirm(_('editor.remove_alert'))) { + this.layouts.remove(id); + + this.calculator.eventDispatcher.notify('editor.layout_removed'); + } + }, + + setActiveButton: function (slot) { + if (slot && this.getCurrentLayout().isEditable()) { + var button = this.getCurrentLayout().getButton(slot); + + if (button.isEditable()) { + this.calculator.eventDispatcher.notify('editor.button_selected', { + slot: slot, + button: button, + previousSlot: this.activeButton + }); + + this.activeButton = slot; + } + } else { + this.resetActiveButton(); + } + }, + + resetActiveButton: function () { + this.calculator.eventDispatcher.notify('editor.button_selected', { + slot: null, + button: null, + previousSlot: this.activeButton + }); + + this.activeButton = null; + }, + + enable: function () { + this.enabled = true; + this.setActiveButton(null); + this.calculator.eventDispatcher.notify('editor.show'); + }, + + disable: function () { + this.enabled = false; + this.setActiveButton(null); + this.calculator.eventDispatcher.notify('editor.hide'); + }, + + getAssignableCommands: function () { + return this.calculator.commands.map(function (k, v) { + if (!v.isInternal()) { + return v; + } + }); + }, + + getAssignableTexts: function () { + return this.calculator.texts.map(function (k, v) { + if (v.isEditable()) { + return v; + } + }); + }, + + runCurrentLayout: function () { + this.disable(); + } + + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Layout.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Layout.js new file mode 100644 index 0000000..78724ed --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Editor/Layout.js @@ -0,0 +1,44 @@ +/*global klass:true, Sankore:true*/ +(function () { + "use strict"; + + klass.define('Sankore.Editor', 'Layout', klass.extend({ + constructor: function (data) { + this.id = data.id || null; + this.name = data.name || null; + this.description = data.description || null; + this.editable = false; + this.buttonMap = data.buttonMap || {}; + }, + + setEditable: function (editable) { + this.editable = !! editable; + }, + + isEditable: function () { + return this.editable; + }, + + getButton: function (slot) { + return this.buttonMap[slot] || null; + }, + + clone: function () { + var clonedMap = {}; + + for (var index in this.buttonMap) { + if (this.buttonMap.hasOwnProperty(index)) { + clonedMap[index] = this.buttonMap[index].clone(); + } + } + + return Sankore.Editor.Layout.create({ + id: this.id, + name: this.name, + description: this.description, + editable: this.editable, + buttonMap: clonedMap + }); + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/KeystrokeLine.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/KeystrokeLine.js new file mode 100644 index 0000000..2bf658e --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/KeystrokeLine.js @@ -0,0 +1,109 @@ +/*global klass:true, Sankore:true*/ +(function () { + "use strict"; + + klass.define('Sankore', 'KeystrokeLine', klass.extend({ + constructor: function (dispatcher) { + this.dispatcher = dispatcher; + + this.keystrokes = []; + this.caret = 0; + }, + + notify: function () { + this.dispatcher.notify('keystroke_line.changed', this); + }, + + hit: function (keystroke) { + this.keystrokes.splice(this.caret, 0, keystroke); + this.caret++; + this.notify(); + }, + + del: function () { + if (this.caret > 0) { + var deleted = this.keystrokes.splice(this.caret - 1, 1)[0]; + this.caret--; + this.notify(); + + return deleted; + } + }, + + moveCaretLeft: function () { + if (this.caret > 0) { + this.caret--; + this.notify(); + } + }, + + moveCaretRight: function () { + if (this.caret < this.keystrokes.length) { + this.caret++; + this.notify(); + } + }, + + moveCaretToEnd: function () { + this.caret = this.keystrokes.length; + this.notify(); + }, + + reset: function () { + this.caret = 0; + this.keystrokes = []; + this.notify(); + }, + + count: function () { + return this.keystrokes.length; + }, + + at: function (index) { + if (typeof this.keystrokes[index] !== 'undefined') { + return this.keystrokes[index]; + } + + throw Sankore.Util.Error.create('OutOfRangeError', 'No keystroke at index ' + index); + }, + + getAsText: function () { + return [ + this.getTextAtRange(0, this.caret), + this.getTextAtRange(this.caret, this.keystrokes.length) + ]; + }, + + getTextAtRange: function (from, to) { + var i, output = ''; + + if (from < 0) { + throw Sankore.Util.Error.create('OutOfRangeError', 'Cannot get keystroke before index 0'); + } + + if (from > this.keystrokes.length) { + throw Sankore.Util.Error.create('OutOfRangeError', 'Cannot get keystroke after index ' + this.keystrokes.length); + } + + for (i = from; i < to; i++) { + output += this.at(i).text; + } + + return output; + }, + + getState: function () { + return { + keystrokes: this.keystrokes, + caret: this.caret + }; + }, + + loadState: function (state) { + this.keystrokes = state.keystrokes || {}; + this.caret = state.caret || 0; + this.notify(); + } + + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Text.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Text.js new file mode 100644 index 0000000..cb47c64 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Text.js @@ -0,0 +1,23 @@ +/*globals klass:true, Sankore:true*/ +(function() { + "use strict"; + + klass.define('Sankore', 'Text', klass.extend({ + constructor: function (id, screen, button, type, editable) { + this.id = id; + this.screen = screen; + this.button = button; + + this.type = typeof type !== 'undefined' ? type : 'normal'; + this.editable = typeof editable !== 'undefined' ? !!editable : true; + }, + + isEditable: function () { + return this.editable; + }, + + setEditable: function (editable) { + this.editable = !!editable; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/EditorInterface.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/EditorInterface.js new file mode 100644 index 0000000..0f8d545 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/EditorInterface.js @@ -0,0 +1,323 @@ +/*jshint browser:true*/ +/*global klass:true, Sankore: true, _:true*/ +(function () { + "use strict"; + + klass.define('Sankore.UI', 'EditorInterface', klass.extend({ + constructor: function (editor, ed) { + this.editor = editor; + this.dispatcher = ed; + this.hidden = true; + + this.editArea = null; + this.layoutSelect = null; + this.layoutNameInput = null; + this.layoutDescriptionInput = null; + this.assignationDiv = null; + this.runButton = null; + this.addButton = null; + this.removeButton = null; + + this.attachEventListeners(); + + this.rendered = false; + }, + + attachEventListeners: function () { + var self = this; + + this.dispatcher.addEventListener('editor.show', this.show.bind(this)); + this.dispatcher.addEventListener('editor.hide', this.hide.bind(this)); + + this.dispatcher.addEventSubscriber({ + events: ['editor.layout_changed', 'editor.layout_created', 'editor.layout_removed'], + listener: this.updateLayoutSelectElement.bind(this) + }); + + this.dispatcher.addEventListener('editor.layout_selected', function (layout) { + self.loadLayout(layout); + + self.selectLayout(layout.id); + }); + + this.dispatcher.addEventListener('editor.button_selected', function (e) { + var context = e.button; + + if (null === context && self.editor.getCurrentLayout()) { + context = self.editor.getCurrentLayout().isEditable(); + } + + self.renderAssignation(context); + }); + }, + + _clearElement: function (element) { + while (element.firstChild) { + element.removeChild(element.firstChild); + } + }, + + _map: function (iterable, callback) { + var mapped = [], + idx; + + for (idx in iterable) { + if (iterable.hasOwnProperty(idx)) { + mapped.push(callback.call(iterable, iterable[idx], idx)); + } + } + + return mapped; + }, + + render: function (mainInterface) { + var layoutNameLabel, + layoutDescriptionLabel, + assignationDiv, + assignationText, + self = this; + + this.editArea = document.createElement('div'); + this.editArea.classList.add('edit-area'); + + this.layoutSelect = this.createLayoutSelectElement(); + this.editArea.appendChild(this.layoutSelect); + + this.addButton = document.createElement('button'); + this.addButton.className = 'small'; + this.addButton.setAttribute('type', 'button'); + this.addButton.addEventListener('click', function (e) { + self.dispatcher.notify('editor_interface.add_click'); + }); + + this.removeButton = this.addButton.cloneNode(); + this.removeButton.classList.add('remove'); + this.removeButton.addEventListener('click', function (e) { + self.dispatcher.notify('editor_interface.remove_click'); + }); + + this.addButton.classList.add('add'); + + this.editArea.appendChild(this.addButton); + this.editArea.appendChild(this.removeButton); + + this.editArea.appendChild(document.createElement('hr')); + + layoutNameLabel = document.createElement('label'); + layoutNameLabel.appendChild(document.createTextNode(_('editor.layout_name.label'))); + this.editArea.appendChild(layoutNameLabel); + + this.layoutNameInput = document.createElement('input'); + this.layoutNameInput.setAttribute('name', 'layout_name'); + this.layoutNameInput.setAttribute('type', 'text'); + this.layoutNameInput.setAttribute('maxlength', 32); + this.layoutNameInput.addEventListener('keyup', function (e) { + self.dispatcher.notify('editor_interface.layout_name_change', this.value); + }); + this.layoutNameInput.addEventListener('change', function (e) { + if (this.value.trim().length === 0) { + this.value = self.editor.getCurrentLayout().name; + self.dispatcher.notify('editor_interface.layout_name_change', this.value); + } + }); + this.editArea.appendChild(this.layoutNameInput); + + layoutDescriptionLabel = document.createElement('label'); + layoutDescriptionLabel.appendChild(document.createTextNode(_('editor.layout_description.label'))); + this.editArea.appendChild(layoutDescriptionLabel); + + this.layoutDescriptionInput = document.createElement('textarea'); + this.layoutDescriptionInput.setAttribute('name', 'layout_description'); + this.layoutDescriptionInput.setAttribute('maxlength', 140); + this.layoutDescriptionInput.addEventListener('keyup', function(e) { + self.dispatcher.notify('editor_interface.layout_description_change', this.value); + }); + this.editArea.appendChild(this.layoutDescriptionInput); + + this.assignationDiv = document.createElement('div'); + this.assignationDiv.classList.add('assignation'); + + this.editArea.appendChild(this.assignationDiv); + + this.runButton = document.createElement('button'); + this.runButton.classList.add('run'); + this.runButton.setAttribute('type', 'button'); + this.runButton.appendChild(document.createTextNode(_('editor.run_button'))); + this.runButton.addEventListener('click', function (e) { + self.dispatcher.notify('editor_interface.run_click'); + }); + + this.editArea.appendChild(this.runButton); + + mainInterface.rearScreen.parentElement.appendChild(this.editArea); + + this.rendered = true; + + this.hide(); + }, + + createSelectElement: function (data, name, className, selectedValue) { + var select = document.createElement('select'), + option; + + select.setAttribute('name', name); + + if (className) { + select.className = className; + } + + for (var i in data) { + option = document.createElement('option'); + option.setAttribute('value', data[i].value); + + if (typeof selectedValue !== 'undefined' && selectedValue === data[i].value) { + option.selected = true; + } + + option.appendChild(document.createTextNode(data[i].text)); + + select.appendChild(option); + } + + return select; + }, + + createLayoutSelectElement: function () { + var select = this.createSelectElement( + this.editor.layouts.map(function (k, layout) { + return { + text: layout.name, + value: layout.id + }; + }), + 'layouts', + 'layout-select', + this.editor.current + ), + self = this; + + select.addEventListener('change', function (e) { + self.dispatcher.notify('editor_interface.layout_select', this.value); + }); + + return select; + }, + + updateLayoutSelectElement: function () { + var select = this.createLayoutSelectElement(); + + this.editArea.replaceChild(select, this.layoutSelect); + + this.layoutSelect = select; + }, + + selectLayout: function (selected) { + this.layoutSelect.value = selected; + }, + + show: function () { + if (this.rendered) { + this.editArea.style.display = 'block'; + this.hidden = false; + } + }, + + hide: function () { + if (this.rendered) { + this.editArea.style.display = 'none'; + this.hidden = true; + } + }, + + loadLayout: function (layout) { + this.layoutNameInput.value = layout.name; + this.layoutNameInput.disabled = !layout.isEditable(); + + this.layoutDescriptionInput.value = layout.description; + this.layoutDescriptionInput.disabled = !layout.isEditable(); + + this.removeButton.disabled = !layout.isEditable(); + + this.renderAssignation(layout.isEditable()); + }, + + renderAssignation: function (context) { + var innerEl, textLabel, textSelect, commandLabel, commandSelect, useLabel, useInput, useHelp, + text, + self = this; + + if (false === context) { + innerEl = document.createElement('em'); + innerEl.appendChild(document.createTextNode(_('editor.assignation.disabled'))); + } else if (Sankore.Button.isPrototypeOf(context)) { + innerEl = document.createDocumentFragment(); + + textLabel = document.createElement('label'); + textLabel.appendChild(document.createTextNode(_('editor.assignation.text.label'))); + innerEl.appendChild(textLabel); + + text = this.editor.calculator.texts.get(context.text); + + textSelect = this.createSelectElement( + this._map(this.editor.getAssignableTexts(), function (text) { + return { + text: text.button, + value: text.id + }; + }), + 'button_text', + '', + text.id + ); + textSelect.addEventListener('change', function (e) { + self.dispatcher.notify('editor_interface.button_text_change', e.target.value); + }); + innerEl.appendChild(textSelect); + + commandLabel = document.createElement('label'); + commandLabel.appendChild(document.createTextNode(_('editor.assignation.command.label'))); + innerEl.appendChild(commandLabel); + + commandSelect = this.createSelectElement( + this._map(this.editor.getAssignableCommands(), function (command) { + return { + text: command.name, + value: command.id + }; + }), + 'button_command', + '', + context.command + ); + commandSelect.addEventListener('change', function (e) { + self.dispatcher.notify('editor_interface.button_command_change', e.target.value); + }); + innerEl.appendChild(commandSelect); + + useLabel = document.createElement('label'); + useLabel.appendChild(document.createTextNode(_('editor.assignation.use_limit.label'))); + innerEl.appendChild(useLabel); + + useInput = document.createElement('input'); + useInput.setAttribute('type', 'text'); + useInput.setAttribute('name', 'button_count'); + useInput.value = (context.useLimit === -1 ? '' : context.useLimit); + useInput.addEventListener('change', function (e) { + self.dispatcher.notify('editor_interface.button_uselimit_change', e.target.value); + }); + innerEl.appendChild(useInput); + + useHelp = document.createElement('span'); + useHelp.className = 'help'; + useHelp.appendChild(document.createTextNode(_('editor.assignation.use_limit.help'))); + innerEl.appendChild(useHelp); + } else { + innerEl = document.createElement('em'); + innerEl.appendChild(document.createTextNode(_('editor.assignation.enabled'))); + } + + this._clearElement(this.assignationDiv); + this.assignationDiv.appendChild(innerEl); + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/MainInterface.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/MainInterface.js new file mode 100644 index 0000000..78ec419 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/UI/MainInterface.js @@ -0,0 +1,534 @@ +/*jshint browser:true */ +/*global klass:true, Sankore:true, _:true*/ +(function () { + "use strict"; + + klass.define('Sankore.UI', 'MainInterface', klass.extend({ + constructor: function (id, ed, texts, withEditor) { + this.id = id; + this.dispatcher = ed; + this.texts = texts; + this.withEditor = withEditor; + + this.title = null; + + this.caret = document.createElement('i'); + this.caret.className = 'caret'; + + this.frontScreen = null; + this.expressionRow = null; + this.resultRow = null; + this.flagRow = null; + + this.flags = []; + + this.rearScreen = null; + + this.buttons = Sankore.Util.Hash.create(); + + this.rendered = false; + + this.attachEventListeners(); + }, + + attachEventListeners: function () { + var self = this; + + // the main screen text has changed + this.dispatcher.addEventListener('keystroke_line.changed', function (keystrokeLine) { + self.updateExpressionRow(keystrokeLine.getAsText()); + }); + + // the internal memory has changed + this.dispatcher.addEventListener('calculator.memory_changed', function (memory) { + if (null !== memory) { + self.addFlag('M'); + } else { + self.removeFlag('M'); + } + + self.updateFlagRow(); + }); + + // the op memory has changed + this.dispatcher.addEventListener('calculator.op_changed', function (op) { + if (null !== op) { + self.addFlag('OP'); + } else { + self.removeFlag('OP'); + } + + self.updateFlagRow(); + }); + + // a new result has been computed + this.dispatcher.addEventListener('calculator.output_changed', function (event) { + if (null !== event.output) { + self.updateResultRow(event.output); + } else if (null !== event.error) { + self.updateResultRow(event.error); + } else { + self.updateResultRow(''); + } + }); + + // the history has changed + this.dispatcher.addEventListener('calculator.history_changed', this.updateRearScreen.bind(this)); + + // a new layout is loaded + this.dispatcher.addEventListener('calculator.layout_loaded', function (layout) { + self.renderButtons(layout.buttonMap); + + self.changeTitle(layout.name); + + self.clearRearScreen(); + }); + + // a button has been disabled + this.dispatcher.addEventListener('calculator.button_disabled', function (event) { + var buttonEl = self.buttons.get(event.slot); + + if (buttonEl) { + buttonEl.disabled = true; + } + }); + + // a button has been enabled + this.dispatcher.addEventListener('calculator.button_enabled', function (slot) { + var buttonEl = self.buttons.get(slot); + + if (buttonEl) { + buttonEl.disabled = false; + } + }); + + // the editor is shown/hidden + this.dispatcher.addEventListener('editor.show', this.hideRearScreen.bind(this)); + this.dispatcher.addEventListener('editor.hide', this.showRearScreen.bind(this)); + + // a button has been selected + this.dispatcher.addEventListener('editor.button_selected', function (event) { + var newButtonEl = self.buttons.get(event.slot), + oldButtonEl = self.buttons.get(event.previousSlot); + + if (oldButtonEl) { + oldButtonEl.parentElement.classList.remove('edit'); + } + + if (newButtonEl) { + newButtonEl.parentElement.classList.add('edit'); + } + }); + + // a button has been renamed + this.dispatcher.addEventListener('editor.button_renamed', function (event) { + var buttonEl = self.buttons.get(event.slot), + text = self.texts.get(event.button.text), + hasEditClass; + + if (buttonEl) { + buttonEl.innerText = text.button; + + hasEditClass = buttonEl.parentElement.classList.contains('edit'); + buttonEl.parentElement.className = text.type; + + if (hasEditClass) { + buttonEl.parentElement.classList.add('edit'); + } + } + }); + }, + + _clearElement: function (element) { + while (element.firstChild) { + element.removeChild(element.firstChild); + } + }, + + getRootElement: function () { + return document.getElementById(this.id); + }, + + render: function () { + var root = this.getRootElement(); + + this._clearElement(root); + + if (!root.classList.contains('calculator')) { + root.classList.add('calculator'); + } + + this.createBaseMarkup(root); + + this.rearScreen = document.createElement('ul'); + root + .getElementsByClassName('rear-screen') + .item(0) + .appendChild(this.rearScreen); + + this.frontScreen = document.createElement('ul'); + root + .getElementsByClassName('front-screen') + .item(0) + .appendChild(this.frontScreen); + + this.expressionRow = document.createElement('li'); + this.expressionRow.classList.add('expression-row'); + this.frontScreen.appendChild(this.expressionRow); + + this.flagRow = document.createElement('li'); + this.flagRow.classList.add('flag-row'); + this.frontScreen.appendChild(this.flagRow); + + this.resultRow = document.createElement('li'); + this.resultRow.classList.add('result-row'); + this.frontScreen.appendChild(this.resultRow); + + this.rendered = true; + }, + + renderButtons: function (buttonMap) { + var buttonsTrs, + map = {}, + buttons = document.createDocumentFragment(), + rootElement = this + .getRootElement() + .getElementsByClassName('screen') + .item(0) + .parentElement; + + // map copy in order to prevent alteration of the original map + for (var slot in buttonMap) { + map[slot] = buttonMap[slot]; + } + + // adding constant non-editable buttons + map.a0 = Sankore.Button.create('s', 'del', -1, false); + map.b0 = Sankore.Button.create('l', 'left', -1, false); + map.c0 = Sankore.Button.create('r', 'right', -1, false); + map.d0 = Sankore.Button.create('c', 'clear', -1, false); + + buttonsTrs = rootElement.getElementsByClassName('buttons'); + while (buttonsTrs.length > 0) { + rootElement.removeChild(buttonsTrs[0]); + } + + buttonsTrs = this.createButtons(map); + + // we use a DocumentFragment to avoid excessive and useless repaints + for (var i in buttonsTrs) { + buttons.appendChild(buttonsTrs[i]); + } + + rootElement.appendChild(buttons); + }, + + createBaseMarkup: function (element) { + var table = document.createElement('table'), + tr = document.createElement('tr'), + rearTd = document.createElement('td'), + frontTd = document.createElement('td'); + + rearTd.className = 'rear-screen'; + rearTd.setAttribute('rowspan', '8'); + tr.appendChild(rearTd); + + frontTd.className = 'front-screen'; + frontTd.setAttribute('colspan', '4'); + tr.appendChild(frontTd); + + tr.className = 'screen'; + table.appendChild(tr); + + element.appendChild(this.createTitle()); + element.appendChild(this.createControls()); + element.appendChild(table); + }, + + createTitle: function () { + this.title = document.createElement('span'); + + this.title.appendChild(document.createTextNode('Chargement...')); + this.title.className = 'title'; + + return this.title; + }, + + createControls: function () { + var controlsDiv = document.createElement('div'), + editorButton = document.createElement('button'), + resetButton = document.createElement('button'), + self = this; + + if (this.withEditor) { + editorButton.setAttribute('type', 'button'); + editorButton.appendChild(document.createTextNode(_('controls.editor'))); + editorButton.addEventListener('click', function (e) { + self.dispatcher.notify('main_interface.editor_click'); + }); + controlsDiv.appendChild(editorButton); + } + + resetButton.setAttribute('type', 'button'); + resetButton.appendChild(document.createTextNode(_('controls.reset'))); + resetButton.addEventListener('click', function (e) { + self.dispatcher.notify('main_interface.reset_click'); + }); + controlsDiv.appendChild(resetButton); + + controlsDiv.className = 'controls'; + + return controlsDiv; + }, + + createButtons: function (buttonMap) { + var trs = [], + i; + + for (i = 0; i < 7; i++) { + trs.push(this.createButtonRow(i, buttonMap)); + } + + return trs; + }, + + createButtonRow: function (rowNumber, buttonMap) { + var tr = document.createElement('tr'), + i; + + tr.className = 'buttons'; + + for (i = 'a'; i <= 'd'; i = String.fromCharCode(i.charCodeAt(0) + 1)) { + tr.appendChild(this.createButton(i + rowNumber, buttonMap)); + } + + return tr; + }, + + createButton: function (slot, buttonMap) { + var td = document.createElement('td'), + self = this, + text, + buttonEl, + button = buttonMap[slot]; + + td.setAttribute('data-slot', slot); + td.setAttribute('data-editable', button.isEditable()); + + if (typeof button !== 'undefined') { + buttonEl = document.createElement('button'); + text = this.texts.get(button.text); + buttonEl.innerText = text.button; + + if (text.type !== 'normal') { + td.classList.add(text.type); + } + + buttonEl.addEventListener('mousedown', function (e) { + self.handleButtonClick(this, e, button, slot); + }); + + this.buttons.set(slot, buttonEl); + + this.dispatcher.notify('main_interface.button_created', { + button: button, + slot: slot + }); + + td.appendChild(buttonEl); + } + + return td; + }, + + handleButtonClick: function (el, event, button, slot) { + this.dispatcher.notify('main_interface.button_click', { + button: button, + slot: slot + }); + }, + + updateFlagRow: function () { + var span; + + this._clearElement(this.flagRow); + + for (var i in this.flags) { + span = document.createElement('span'); + span.appendChild(document.createTextNode(this.flags[i])); + + this.flagRow.appendChild(span); + } + }, + + updateExpressionRow: function (keystrokeText) { + this._clearElement(this.expressionRow); + this.expressionRow.appendChild(document.createTextNode(keystrokeText[0])); + this.expressionRow.appendChild(this.caret); + this.expressionRow.appendChild(document.createTextNode(keystrokeText[1])); + }, + + updateResultRow: function (result) { + this._clearElement(this.resultRow); + this.resultRow.appendChild(this.createResultRow(result)); + }, + + createResultRow: function (result) { + try { + if (Sankore.Calculus.EuclideanDivisionOperation.isPrototypeOf(result)) { + return this.createResultRowEuclidean(result.getValue(), result.getRemainder()); + } else if (Sankore.Calculus.Expression.isPrototypeOf(result)) { + return this.createResultRowExpression(result.getValue()); + } else if (Sankore.Util.Error.isPrototypeOf(result)) { + return this.createResultRowError(result); + } else { + return this.createResultRowText(String(result)); + } + } catch (e) { + return this.createResultRowError(e); + } + + return null; + }, + + createResultRowEuclidean: function (quotient, remainder) { + var p = document.createElement('p'), + quotientSpan = document.createElement('span'), + remainderSpan = document.createElement('span'); + + p.classList.add('euclidean'); + + remainderSpan.classList.add('remainder'); + remainderSpan.textContent = this.formatResultValue(remainder); + p.appendChild(remainderSpan); + + quotientSpan.classList.add('quotient'); + quotientSpan.textContent = this.formatResultValue(quotient); + p.appendChild(quotientSpan); + + return p; + }, + + createResultRowExpression: function (value) { + return document.createTextNode(this.formatResultValue(value)); + }, + + createResultRowText: function (text) { + return document.createTextNode(text); + }, + + createResultRowError: function (error) { + var errorDiv = document.createElement('div'), + text = _('error.common'); + + if (error.name === 'ZeroDivision') { + text = _('error.zero_division'); + } + + errorDiv.classList.add('error'); + errorDiv.appendChild(document.createTextNode(text)); + + return errorDiv; + }, + + formatResultValue: function (raw) { + var fixed = raw.toFixed(Math.max(0, 10 - raw.toFixed().length)), + last; + + if (fixed.indexOf('.') !== -1) { + while (true) { + last = fixed.charAt(fixed.length - 1); + + if (last === "0") { + fixed = fixed.slice(0, -1); + continue; + } + + if (last === '.') { + fixed = fixed.slice(0, -1); + } + + break; + } + } + + // si le nombre de chiffres dépassent 10, on tronque à 10 à droite + // et on arrondit au dernier (wtf) + if (Number(fixed) > (1e10 - 1)) { + fixed = Number(fixed.substring(0, 11) / 10).toFixed(); + } + + if (fixed.indexOf('.') !== -1) { + fixed = fixed.replace('.', _('text.comma')); + } + + return fixed; + }, + + updateRearScreen: function (history) { + var expressionRow, + resultRow, + rows = document.createDocumentFragment(); + + for (var i in history) { + expressionRow = document.createElement('li'); + expressionRow.className = 'expression-row'; + expressionRow.appendChild(document.createTextNode(history[i].expression)); + rows.appendChild(expressionRow); + + resultRow = document.createElement('li'); + resultRow.className = 'result-row'; + resultRow.appendChild(this.createResultRow(history[i].output)); + rows.appendChild(resultRow); + } + + this.clearRearScreen(); + this.rearScreen.appendChild(rows); + this.rearScreen.lastChild.scrollIntoView(); + }, + + clearRearScreen: function () { + this._clearElement(this.rearScreen); + }, + + showRearScreen: function () { + this.rearScreen.style.display = 'block'; + this.showTitle(); + }, + + hideRearScreen: function () { + this.rearScreen.style.display = 'none'; + this.hideTitle(); + }, + + addFlag: function (flag) { + if (this.flags.indexOf(flag) === -1) { + this.flags.push(flag); + + this.flags.sort(); + } + }, + + removeFlag: function (flag) { + var idx = this.flags.indexOf(flag); + if (idx !== -1) { + this.flags.splice(idx, 1); + + this.flags.sort(); + } + }, + + changeTitle: function (title) { + this._clearElement(this.title); + this.title.appendChild(document.createTextNode(title)); + }, + + showTitle: function () { + this.title.style.visibility = 'visible'; + }, + + hideTitle: function () { + this.title.style.visibility = 'hidden'; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Error.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Error.js new file mode 100644 index 0000000..a09c6d3 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Error.js @@ -0,0 +1,15 @@ +/*globals klass:true Sankore:true*/ +(function(){ + "use strict"; + + klass.define('Sankore.Util', 'Error', klass.extend({ + constructor: function (name, message) { + this.name = name; + this.message = message; + }, + + toString: function () { + return this.name + ': ' + this.message; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/EventDispatcher.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/EventDispatcher.js new file mode 100644 index 0000000..c18a0cf --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/EventDispatcher.js @@ -0,0 +1,48 @@ +/*globals klass: true, Sankore:true*/ +(function () { + "use strict"; + + klass.define('Sankore.Util', 'EventDispatcher', klass.extend({ + constructor: function () { + this.eventListeners = {}; + }, + + addEventSubscriber: function(subscriber) { + for (var i in subscriber.events) { + this.addEventListener(subscriber.events[i], subscriber.listener); + } + + return this; + }, + + addEventListener: function (event, closure, id) { + if (typeof this.eventListeners[event] === 'undefined') { + this.eventListeners[event] = []; + } + + if (typeof id === 'undefined') { + this.eventListeners[event].push(closure); + } else { + this.eventListeners[event][id] = closure; + } + + return this; + }, + + removeEventListener: function (event, id) { + delete this.eventListeners[event][id]; + }, + + removeAllEventListeners: function (event) { + this.eventListeners[event] = []; + }, + + notify: function (event, obj) { + var closure; + + for (closure in this.eventListeners[event]) { + this.eventListeners[event][closure](obj); + } + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Hash.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Hash.js new file mode 100644 index 0000000..84c0b64 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/Hash.js @@ -0,0 +1,78 @@ +/*globals klass: true, Sankore: true*/ +(function() { + "use strict"; + + klass.define('Sankore.Util', 'Hash', klass.extend({ + constructor: function (elements) { + this.elements = elements || {}; + }, + + length: function () { + return this.keys().length; + }, + + keys: function () { + return Object.keys(this.elements); + }, + + set: function (id, value) { + this.elements[id] = value; + }, + + add: function (id, values) { + for (var i in values) { + this.set(values[i][id], values[i]); + } + }, + + has: function (id) { + return this.keys().indexOf(id) !== -1; + }, + + get: function (id, def) { + if (typeof this.elements[id] !== 'undefined') { + return this.elements[id]; + } + + if (typeof def !== 'undefined') { + return def; + } + + return null; + }, + + pos: function (id) { + var pos = 0; + + for (var i in this.elements) { + if (this.elements.hasOwnProperty(i) && i === id) { + return pos; + } + + pos++; + } + + return null; + }, + + remove: function (id) { + return delete this.elements[id]; + }, + + map: function (closure) { + var output = [], + called; + + for (var id in this.elements) { + if (this.elements.hasOwnProperty(id)) { + called = closure.call(this, id, this.elements[id]); + if (called) { + output.push(called); + } + } + } + + return output; + } + })); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/I18N.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/I18N.js new file mode 100644 index 0000000..2e66608 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/I18N.js @@ -0,0 +1,45 @@ +/*jshint devel:true, browser:true*/ +/*globals klass:true, Sankore:true*/ +(function () { + "use strict"; + + klass.define('Sankore.Util', 'I18N', klass.extend({ + + catalogs: Sankore.Util.Hash.create(), + + constructor: function () { + this.catalog = {}; + }, + + load: function (locale) { + var localeId = locale.split(/-|_/)[0].toLowerCase(); + + if (!Sankore.Util.I18N.catalogs.has(localeId)) { + localeId = 'en'; + } + + this.catalog = Sankore.Util.I18N.catalogs.get(localeId, {}); + }, + + translate: function (id) { + return id.split('.').reduce( + function (root, id) { + if (root && id in root) { + return root[id]; + } + + return null; + }, + this.catalog + ) || id; + } + })); + + // global instance + Sankore.Util.i18n = Sankore.Util.I18N.create(); + + // global helper + window._ = function (id) { + return Sankore.Util.i18n.translate(id); + }; +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.en.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.en.js new file mode 100644 index 0000000..1b3e749 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.en.js @@ -0,0 +1,74 @@ +(function() { + Sankore.Util.I18N.catalogs.set('en', { + layout: { + classic_name: 'Basic calculator', + new_name: 'New calculator' + }, + text: { + del: 'DEL', + comma: '.' + }, + command: { + zero: '0 digit', + one: '1 digit', + two: '2 digit', + three: '3 digit', + four: '4 digit', + five: '5 digit', + six: '6 digit', + seven: '7 digit', + eight: '8 digit', + nine: '9 digit', + plus: 'Addition', + minus: 'Subtraction', + times: 'Multiplication', + divide: 'Division', + euclidean_divide: 'Euclidean division', + equal: 'Equal', + comma: 'Comma', + open_parenthesis: 'Open parenthesis', + close_parenthesis: 'Close parenthesis', + op: 'Constant operator', + memory_add: 'Memory addition', + memory_sub: 'Memory substraction', + memory_recall: 'Memory recall', + memory_clear: 'Memory clear', + clear: 'Clear', + left: 'Move left', + right: 'Move right', + del: 'Delete' + }, + controls: { + editor: 'Editor', + reset: 'RST' + }, + editor: { + run_button: 'Run', + remove_alert: 'Delete this calculator?', + layout_name: { + label: 'Name' + }, + layout_description: { + label: 'Description' + }, + assignation: { + enabled: 'Click on a button to edit it', + disabled: 'This calculator is not editable', + text: { + label: 'Display text' + }, + command: { + label: 'Command' + }, + use_limit: { + label: 'Use limit', + help: '0 for disabled, empty for unlimited' + } + } + }, + error: { + common: 'Error', + zero_division: 'Div/0 error' + } + }); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.fr.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.fr.js new file mode 100644 index 0000000..633b3ed --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/Util/i18n/messages.fr.js @@ -0,0 +1,74 @@ +(function() { + Sankore.Util.I18N.catalogs.set('fr', { + layout: { + classic_name: 'Calculatrice standard', + new_name: 'Nouvelle calculatrice' + }, + text: { + del: 'EFF', + comma: ',' + }, + command: { + zero: 'Chiffre 0', + one: 'Chiffre 1', + two: 'Chiffre 2', + three: 'Chiffre 3', + four: 'Chiffre 4', + five: 'Chiffre 5', + six: 'Chiffre 6', + seven: 'Chiffre 7', + eight: 'Chiffre 8', + nine: 'Chiffre 9', + plus: 'Addition', + minus: 'Soustraction', + times: 'Multiplication', + divide: 'Division', + euclidean_divide: 'Division euclidienne', + equal: 'Egalité', + comma: 'Virgule', + open_parenthesis: 'Parenthèse ouvrante', + close_parenthesis: 'Parenthèse fermante', + op: 'Opérateur constant', + memory_add: 'Addition mémoire', + memory_sub: 'Soustraction mémoire', + memory_recall: 'Rappel mémoire', + memory_clear: 'R.A.Z. mémoire', + clear: 'R.A.Z.', + left: 'Déplacement à gauche', + right: 'Déplacement à droite', + del: 'Suppression' + }, + controls: { + editor: 'Editeur', + reset: 'RAZ' + }, + editor: { + run_button: 'Utiliser', + remove_alert: 'Supprimer cette calculatrice ?', + layout_name: { + label: 'Nom' + }, + layout_description: { + label: 'Description' + }, + assignation: { + enabled: 'Cliquez sur une touche pour la modifier', + disabled: 'Cette calculatrice n\'est pas modifiable', + text: { + label: 'Texte à afficher' + }, + command: { + label: 'Commande' + }, + use_limit: { + label: 'Nb d\'utilisation', + help: '0 pour désactiver, vide pour illimité' + } + } + }, + error: { + common: 'Erreur', + zero_division: 'Erreur div/0' + } + }); +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/js/src/Sankore/klass.js b/resources/library/applications/Calculator.wgt/js/src/Sankore/klass.js new file mode 100644 index 0000000..e012f2c --- /dev/null +++ b/resources/library/applications/Calculator.wgt/js/src/Sankore/klass.js @@ -0,0 +1,78 @@ +/*global window:true*/ +(function () { + "use strict"; + + // polyfill + if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + } + + var aArgs = Array.prototype.slice.call(arguments, 1), + fToBind = this, + fNOP = function () {}, + fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, + aArgs.concat(Array.prototype.slice.call(arguments))); + }; + + fNOP.prototype = this.prototype; + fBound.prototype = new fNOP(); + + return fBound; + }; + } + + window.klass = { + create: function () { + var self = Object.create(this); + + if (typeof self.constructor === "function") { + self.constructor.apply(self, arguments); + } + + return self; + }, + + extend: function (object) { + var self = Object.create(this); + + if (!object) { + return self; + } + + Object.keys(object).forEach(function (key) { + self[key] = object[key]; + }); + + return self; + }, + + define: function (namespace, name, object) { + var createNamespace = function (namespace, root) { + var namespaceParts = namespace.split('.'), + first; + + if (namespaceParts.length > 0) { + first = namespaceParts.shift(); + + if (typeof root[first] === 'undefined') { + root[first] = {}; + } + + if (namespaceParts.length > 0) { + return createNamespace(namespaceParts.join('.'), root[first]); + } + + return root[first]; + } + + return null; + }, + ns = createNamespace(namespace, window); + + ns[name] = object; + } + }; +})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/css/ubwidget.css b/resources/library/applications/Calculator.wgt/legacy/css/ubwidget.css new file mode 100644 index 0000000..f18d9ef --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/css/ubwidget.css @@ -0,0 +1,102 @@ +* { + margin: 0; + padding: 0; +} + +body{ + margin:0px; +} + +.ubw-container{ + float:left; + margin:3px; + margin-right:0px; + margin-top: 2px; + background-image:url(../images/back_small.png); + overflow: hidden; +} + +.ubw-body{ + margin:5px; + margin-left: 9px; + margin-right: 0px; +} + +.ubw-inspector{ + position:absolute; + background-color:rgb(252, 252, 252); + border:1px solid #cccccc; + line-height:20px; + font-family:Arial, Helvetica, sans-serif; + font-weight:normal; + font-size:20px; + color:#333333; +} + +.ubw-inpubox{ + min-width:28px; + min-height:37px; + color:#333333; + background-image: url(../images/button_out.png); + border-left:1px solid rgb(231, 231, 231); + border-right:1px solid rgb(231, 231, 231); + border-bottom:1px solid rgb(221, 221, 221); + border-top:1px solid rgb(241, 241, 241); +} + +/*BUTTONS*/ + +.ubw-button-wrapper{ + float:left; + position:relative; + /*border:solid 1px yellow;*/ + margin-right:-7px; + z-index:0; + font-family:Arial, Helvetica, sans-serif; + font-weight:normal; + font-size:30px; + overflow:visible; +} + +.ubw-button-canvas{ + width:auto; + float:left; + position:relative; + overflow:visible; +} + +table{ + line-height:90%; +} + +.ubw-button-body{ + position:relative; + float:left; + + width:auto; + height:auto; + overflow:visible + + text-align:center; + vertical-align:middle; + + cursor:pointer; +} + +.ubw-button-content{ + height:auto; + width:auto; + text-align:center; + overflow:visible; +} + + +.ubw-button-over{ +} + +.ubw-button-out{ +} + +span.colored{ + color: #0080ff; +} \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/bottom.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/bottom.png new file mode 100644 index 0000000..0298af4 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/bottom.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/left.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/left.png new file mode 100644 index 0000000..cbc75bd Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/left.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/right.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/right.png new file mode 100644 index 0000000..342d529 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/right.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/top.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/top.png new file mode 100644 index 0000000..da79ff3 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_out/top.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_bottom.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_bottom.png new file mode 100644 index 0000000..fbdbdf6 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_bottom.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_left.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_left.png new file mode 100644 index 0000000..91f95e0 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_left.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_right.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_right.png new file mode 100644 index 0000000..18a87c2 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_right.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_top.png b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_top.png new file mode 100644 index 0000000..331cc81 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/arrows_over/button_arrow_top.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/back.png b/resources/library/applications/Calculator.wgt/legacy/images/back.png new file mode 100644 index 0000000..1be0a07 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/back.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/back_small.png b/resources/library/applications/Calculator.wgt/legacy/images/back_small.png new file mode 100644 index 0000000..cc12a91 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/back_small.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_out-copie.png b/resources/library/applications/Calculator.wgt/legacy/images/button_out-copie.png new file mode 100644 index 0000000..693fdb2 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_out-copie.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_out.gif b/resources/library/applications/Calculator.wgt/legacy/images/button_out.gif new file mode 100644 index 0000000..0667fd9 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_out.gif differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_out.png b/resources/library/applications/Calculator.wgt/legacy/images/button_out.png new file mode 100644 index 0000000..97f0ba7 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_out.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.gif b/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.gif new file mode 100644 index 0000000..5076069 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.gif differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.png b/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.png new file mode 100644 index 0000000..897aca5 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_out_dark.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_over.gif b/resources/library/applications/Calculator.wgt/legacy/images/button_over.gif new file mode 100644 index 0000000..5d6b25d Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_over.gif differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_toggle.png b/resources/library/applications/Calculator.wgt/legacy/images/button_toggle.png new file mode 100644 index 0000000..b5260aa Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_toggle.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/button_toggle_invert.png b/resources/library/applications/Calculator.wgt/legacy/images/button_toggle_invert.png new file mode 100644 index 0000000..e7b238a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/button_toggle_invert.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/back.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/back.png new file mode 100644 index 0000000..693aee5 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/back.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/bottom.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/bottom.png new file mode 100644 index 0000000..58b6141 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/bottom.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomleft.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomleft.png new file mode 100644 index 0000000..c88ce0b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomleft.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomright.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomright.png new file mode 100644 index 0000000..d9d84a9 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/cbottomright.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopleft.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopleft.png new file mode 100644 index 0000000..47e0e46 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopleft.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopright.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopright.png new file mode 100644 index 0000000..c2eef3a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/ctopright.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/left.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/left.png new file mode 100644 index 0000000..953cd50 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/left.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/right.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/right.png new file mode 100644 index 0000000..9f4ec36 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/right.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/top.png b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/top.png new file mode 100644 index 0000000..e51b93b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/buttons_shadow/top.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.png new file mode 100644 index 0000000..2d38a03 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.psd b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.psd new file mode 100644 index 0000000..3eafab6 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi.psd differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_click.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_click.png new file mode 100644 index 0000000..1781c44 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_click.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_over.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_over.png new file mode 100644 index 0000000..d2ada45 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pi_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.png new file mode 100644 index 0000000..c572dc7 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.psd b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.psd new file mode 100644 index 0000000..0f669e9 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/pow.psd differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.png new file mode 100644 index 0000000..9f5ae3a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.psd b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.psd new file mode 100644 index 0000000..3348d2e Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq.psd differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_click.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_click.png new file mode 100644 index 0000000..cd6c9ab Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_click.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_over.png b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_over.png new file mode 100644 index 0000000..e04defd Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/calculator/sq_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/display copy.png b/resources/library/applications/Calculator.wgt/legacy/images/display copy.png new file mode 100644 index 0000000..3147ca2 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/display copy.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/display.png b/resources/library/applications/Calculator.wgt/legacy/images/display.png new file mode 100644 index 0000000..f85717a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/display.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/historyback.png b/resources/library/applications/Calculator.wgt/legacy/images/historyback.png new file mode 100644 index 0000000..990438b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/historyback.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/historytab.png b/resources/library/applications/Calculator.wgt/legacy/images/historytab.png new file mode 100644 index 0000000..5495a49 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/historytab.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/historytabOver.png b/resources/library/applications/Calculator.wgt/legacy/images/historytabOver.png new file mode 100644 index 0000000..20aa3e3 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/historytabOver.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/inspector.png b/resources/library/applications/Calculator.wgt/legacy/images/inspector.png new file mode 100644 index 0000000..ac92bb3 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/inspector.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche0.png b/resources/library/applications/Calculator.wgt/legacy/images/touche0.png new file mode 100644 index 0000000..d7bd4a1 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche0.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche0_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche0_over.png new file mode 100644 index 0000000..f109695 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche0_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche0_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche0_over_down.png new file mode 100644 index 0000000..0b535f8 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche0_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche1.png b/resources/library/applications/Calculator.wgt/legacy/images/touche1.png new file mode 100644 index 0000000..1c51654 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche1.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche1_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche1_over.png new file mode 100644 index 0000000..4d743b0 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche1_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche1_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche1_over_down.png new file mode 100644 index 0000000..51b4f6f Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche1_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche2.png b/resources/library/applications/Calculator.wgt/legacy/images/touche2.png new file mode 100644 index 0000000..6f163a3 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche2.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche2_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche2_over.png new file mode 100644 index 0000000..0172ae0 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche2_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche2_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche2_over_down.png new file mode 100644 index 0000000..a91c690 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche2_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche3.png b/resources/library/applications/Calculator.wgt/legacy/images/touche3.png new file mode 100644 index 0000000..f9a185a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche3.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche3_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche3_over.png new file mode 100644 index 0000000..346a16b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche3_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche3_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche3_over_down.png new file mode 100644 index 0000000..deda168 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche3_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche4.png b/resources/library/applications/Calculator.wgt/legacy/images/touche4.png new file mode 100644 index 0000000..afab40f Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche4.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche4_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche4_over.png new file mode 100644 index 0000000..34d4b87 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche4_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche4_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche4_over_down.png new file mode 100644 index 0000000..4db5f1d Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche4_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche5.png b/resources/library/applications/Calculator.wgt/legacy/images/touche5.png new file mode 100644 index 0000000..dd034da Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche5.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche5_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche5_over.png new file mode 100644 index 0000000..d3fd966 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche5_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche5_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche5_over_down.png new file mode 100644 index 0000000..9273be4 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche5_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche6.png b/resources/library/applications/Calculator.wgt/legacy/images/touche6.png new file mode 100644 index 0000000..8335e6d Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche6.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche6_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche6_over.png new file mode 100644 index 0000000..9acc3cf Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche6_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche6_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche6_over_down.png new file mode 100644 index 0000000..3de03bd Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche6_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche7.png b/resources/library/applications/Calculator.wgt/legacy/images/touche7.png new file mode 100644 index 0000000..cebe335 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche7.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche7_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche7_over.png new file mode 100644 index 0000000..45c0a19 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche7_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche7_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche7_over_down.png new file mode 100644 index 0000000..424cc76 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche7_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche8.png b/resources/library/applications/Calculator.wgt/legacy/images/touche8.png new file mode 100644 index 0000000..7f34839 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche8.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche8_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche8_over.png new file mode 100644 index 0000000..dd3d0f1 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche8_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche8_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche8_over_down.png new file mode 100644 index 0000000..aa0cf26 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche8_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche9.png b/resources/library/applications/Calculator.wgt/legacy/images/touche9.png new file mode 100644 index 0000000..a888813 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche9.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche9_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touche9_over.png new file mode 100644 index 0000000..f70b6ad Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche9_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touche9_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touche9_over_down.png new file mode 100644 index 0000000..6f8aee2 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touche9_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchec.png b/resources/library/applications/Calculator.wgt/legacy/images/touchec.png new file mode 100644 index 0000000..ab6e2d1 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchec.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchec_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchec_over.png new file mode 100644 index 0000000..3b5b654 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchec_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchec_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchec_over_down.png new file mode 100644 index 0000000..55b929f Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchec_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchediv.png b/resources/library/applications/Calculator.wgt/legacy/images/touchediv.png new file mode 100644 index 0000000..f27311e Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchediv.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over.png new file mode 100644 index 0000000..355ee3b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over_down.png new file mode 100644 index 0000000..d9a5adf Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchediv_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchedot.png b/resources/library/applications/Calculator.wgt/legacy/images/touchedot.png new file mode 100644 index 0000000..fdb9fc7 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchedot.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over.png new file mode 100644 index 0000000..200ed22 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over_down.png new file mode 100644 index 0000000..f823927 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchedot_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/toucheeq.png b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq.png new file mode 100644 index 0000000..1ee66a1 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over.png b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over.png new file mode 100644 index 0000000..bb096c0 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over_down.png new file mode 100644 index 0000000..b2da17a Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/toucheeq_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchef.png b/resources/library/applications/Calculator.wgt/legacy/images/touchef.png new file mode 100644 index 0000000..ccfbdff Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchef.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchef_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchef_over.png new file mode 100644 index 0000000..a7d5fc2 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchef_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchef_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchef_over_down.png new file mode 100644 index 0000000..d08cd88 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchef_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchem.png b/resources/library/applications/Calculator.wgt/legacy/images/touchem.png new file mode 100644 index 0000000..58f61ab Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchem.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchem_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchem_over.png new file mode 100644 index 0000000..d548b55 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchem_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchem_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchem_over_down.png new file mode 100644 index 0000000..9f5f76e Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchem_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchep.png b/resources/library/applications/Calculator.wgt/legacy/images/touchep.png new file mode 100644 index 0000000..3010788 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchep.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchep_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchep_over.png new file mode 100644 index 0000000..3a0842b Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchep_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchep_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchep_over_down.png new file mode 100644 index 0000000..ae1395e Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchep_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepd.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepd.png new file mode 100644 index 0000000..e7ee006 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepd.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over.png new file mode 100644 index 0000000..7ff3729 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over_down.png new file mode 100644 index 0000000..ee4a28e Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepd_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepg.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepg.png new file mode 100644 index 0000000..7bfb1fd Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepg.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over.png new file mode 100644 index 0000000..2846d46 Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over_down.png b/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over_down.png new file mode 100644 index 0000000..360f99c Binary files /dev/null and b/resources/library/applications/Calculator.wgt/legacy/images/touchepg_over_down.png differ diff --git a/resources/library/applications/Calculator.wgt/legacy/js/src/calculate.js b/resources/library/applications/Calculator.wgt/legacy/js/src/calculate.js new file mode 100644 index 0000000..61933cc --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/src/calculate.js @@ -0,0 +1,74 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . +*/ + +function addChar(input, character) { + if(input.value == null || input.value == "0") + input.value = character + else + input.value += character +} + +function cos(form) { + form.display.value = Math.cos(form.display.value); +} + +function sin(form) { + form.display.value = Math.sin(form.display.value); +} + +function tan(form) { + form.display.value = Math.tan(form.display.value); +} + +function sqrt(form) { + form.display.value = Math.sqrt(form.display.value); +} + +function ln(form) { + form.display.value = Math.log(form.display.value); +} + +function exp(form) { + form.display.value = Math.exp(form.display.value); +} + +function deleteChar(input) { + input.value = input.value.substring(0, input.value.length - 1) +} + +function changeSign(input) { + if(input.value.substring(0, 1) == "-") + input.value = input.value.substring(1, input.value.length) + else + input.value = "-" + input.value +} + +function square(form) { + form.display.value = eval(form.display.value) * eval(form.display.value) +} + +function checkNum(str) { + for (var i = 0; i < str.length; i++) { + var ch = str.substring(i, i+1) + if (ch < "0" || ch > "9") { + if (ch != "/" && ch != "*" && ch != "+" && ch != "-" && ch != "." + && ch != "(" && ch!= ")") { + $("#display").text("ERROR"); + return false + } + } + } + return true +} \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/js/src/jquery.ubwidget.js b/resources/library/applications/Calculator.wgt/legacy/js/src/jquery.ubwidget.js new file mode 100644 index 0000000..808ff23 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/src/jquery.ubwidget.js @@ -0,0 +1,255 @@ +(function($) { + jQuery.fn.ubwidget = function(options) { + var settings = jQuery.extend({}, jQuery.fn.ubwidget.defaults, options); + + $(window) + .bind("blur", function(event){ + }) + .trigger("focus"); + + return this.each(function() { + var ubwbody = $(this) + .addClass("ubw-body"); + + var ubwcontainer = $("
") + .append(ubwbody) + .addClass("ubw-container") + .css({ + width:settings.width, + height:settings.height + }) + .disableTextSelect(); + + $('body').append(ubwcontainer); + }); + }; + + // Default options + + jQuery.fn.ubwidget.defaults = { + width:200, + height:250 + }; + + // Shadows + + jQuery.fn.ubwshadows = function(settings){ + + var shadow = $("
") + .addClass("ubw-standard-corners") + .css({ + backgroundColor:"#333377", + opacity:".1", + filter: "alpha(opacity = 10)", + position:"absolute", + top:settings.t, + left:settings.l, + width:settings.w, + height:settings.h + }); + + $(this).before(shadow); + }; + + jQuery.fn.ubwbutton = function(size, arrows) { + var arrows = typeof(arrows) != "undefined" ? arrows = arrows : arrows = {top:0, right:0, bottom:0, left:0}; + var button = null; + var scale = 0.20; + var url = ""; + var buttonbody; + + + return this.each(function() { + button = $(this) + .addClass("ubw-button-wrapper") + .css({zIndex:0}); + + url = $(this).find("img").attr("src"); + url = url.split("."); + + var buttonContent = $("
") + .addClass("ubw-button-content"); + buttonContent.find("td").html($(this).html()); + $(this).empty(); + + var buttonCanvas = $("
") + .addClass("ubw-button-canvas") + .appendTo(button) + .html('
'); + + if(arrows.top)buttonCanvas.find(".ubw-button-arrowTop").children("img").css({visibility:"visible"}); + if(arrows.right)buttonCanvas.find(".ubw-button-arrowRight").children("img").css({visibility:"visible"}); + if(arrows.bottom)buttonCanvas.find(".ubw-button-arrowBottom").children("img").css({visibility:"visible"}); + if(arrows.left)buttonCanvas.find(".ubw-button-arrowLeft").children("img").css({visibility:"visible"}); + + var buttonBody = buttonCanvas.find(".ubw-button-body") + .addClass("ubw-button-out") + .append(buttonContent) + .bind("mouseenter", buttonOverHandler) + .bind("mouseleave", buttonOutHandler) + .bind("mousedown", buttonDownHandler) + .bind("mouseup", buttonUpHandler) + .css({ + width:size.w, + height:size.h + }); + + button.width(size.w+9).height(size.h+2); + buttonbody = buttonBody.find(".ubw-button-content"); + }); + + + function buttonOverHandler(e) { + buttonbody.find("img").attr("src", url[0]+"_over.png"); + + button.css({ + zIndex:1 + }); + }; + + function buttonOutHandler(e){ + buttonbody.find("img").attr("src", url[0]+".png"); + + button.css({ + zIndex:0 + }); + }; + + function buttonDownHandler(e){ + buttonbody.find("img").attr("src", url[0]+"_over_down.png"); + }; + + function buttonUpHandler(e){ + url[0] = url[0].replace("_down", ""); + buttonbody.find("img").attr("src", url[0]+"_over.png"); + }; + + }; + + jQuery.fn.ubwtoggle = function(activated, _firstFunc, _secondFunc) { + var activated = typeof(activated) != "undefined" ? activated = 1 : activated = 0; + + return this.each(function(){ + var button = $(this); + var buttonBody = button.find(".ubw-button-body"); + var img = buttonBody.find("img"); + var imgsrc = img.attr("src"); + + var firstFunc = _firstFunc; + var secondFunc = _secondFunc; + + buttonBody + .toggle( + function(){ + img.css({visibility:"hidden"}); + firstFunc(); + }, + function(){ + img.css({visibility:"visible"}); + secondFunc(); + } + ); + + if(activated){ + buttonBody.trigger("click"); + }; + }); + }; + + + jQuery.fn.ubwidget.sliderbutton = function() { + + }; + + jQuery.fn.ubwidget.inspector = function(_position, content, button){ + + var position = {x:_position.x, y:_position.y}; + + var catcher = $("
") + .css({ + position:"absolute", + width:"100%", + height:"100%" + }) + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + //resizeubcanvas() + }); + + $("body").append(catcher); + catcher.hide(); + + var inspector = $("
") + .css({ + left:position.x, + top:position.y + }) + .append(content) + .appendTo($("body")) + .hide() + .disableTextSelect(); + + var inspectorWidth = inspector.width(); + var inspectorHeight = inspector.height(); + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + + $("body").prepend(button); + button.addClass("ubw-rounded") + .click(function(){ + catcher.show(); + inspector.show(); + dropShadow(); + resizeubcanvas() + }); + + function dropShadow (){ + inspector.ubwshadows({w:inspectorWidth+23,h:inspectorHeight+22,l:55,t:55})} + function removeDropShadow (){ + $(".ubw-shadow").remove()} + + // !! + $(".ubw-shadow") + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + resizeubcanvas() + }); + + function resizeWidget(w, h){ + window.resizeTo(w+2, h+2); + $("#indicator").remove(); + var indicator = $("
") + .css({ + width:w, + height:h, + position:"absolute", + left:0, + top:0, + border:"1px solid #ff0000" + }); + //$("body").prepend(indicator); + } + + function resizeubcanvas(){ + + if(inspector.css("display")=="none"){ + resizeWidget(windowWidth, windowHeight); + return 0; + }; + + var inspectorbottom = inspector.position().top+inspector.height()+40; + var inspectorright = inspector.position().left+inspector.width()+40; + + if($(window).height(). + */ + +function init() { + var h = 292; + var w = 160; + var wh = h + 6; + var ww = w + 6; + var clickFlag = false; + + var ubwidget = $("#ubwidget").ubwidget({ + width: w, + height: h + }); + + var historyTab = $("
") + .css({ + height: h, + marginRight: 0, + width: 20, + float: "left", + backgroundImage: "url(images/historytab.png)", + backgroundRepeat: "no-repeat" + }) + .toggle( + function () { + resizeWidget(370, 294); + historyPanel.show(); + $(".ubw-container").css({ + backgroundImage: "url(images/back.png)", + width: 328 + }); + if (window.sankore) { + window.sankore.setPreference('historyTab', "visible"); + }; + }, + function () { + resizeWidget(200, 294); + historyPanel.hide(); + $(".ubw-container").css({ + backgroundImage: "url(images/back_small.png)", + width: 160 + }); + if (window.sankore) { + window.sankore.setPreference('historyTab', "hidden"); + }; + } + ) + .hover( + function () { + $(this).css({ + backgroundImage: "url(images/historytabOver.png)" + }); + }, + function () { + $(this).css({ + backgroundImage: "url(images/historytab.png)" + }); + } + ) + .appendTo($("body")); + + var space = $("
"); + space.css({ + width: 5, + height: 1, + float: "left" + }); + + var keysPanel = $("
").css({ + float: "left" + }); + var mode = "standard"; + var calc = ""; + var displayTrunk = ""; + var historyTrunk = ""; + var lastHistory = ""; + var subtrunk = 0; + var itrunk = 0; + var trunkpos = 0; + var lastchar = { + type: "NaN", + value: "null" + }; + var inparenthesis = false; + var erase = false; + var abtn; + var readyToCompute = false; + var lastResult = "0"; + var gDecimalSeparator = ""; + var gThousandsSeparator = ""; + var gDecimalCode = 0; + var gDecimalString = ""; + var gError = false; + + var historyTxt = "0"; + + var display = $("
0
") + .addClass("ubw-inputbox") + .css({ + padding: "12px", + marginLeft: "2px", + marginBottom: "9px", + marginTop: 7, + backgroundImage: "url(images/display.png)", + fontSize: "22px", + fontFamily: "Arial, Helvetica, Sans-serif", + color: "#777788", + width: 118, + height: 28, + overflow: "hidden", + textAlign: "right", + }); + + var standardPanel = $("
").css({ + float: "left" + }); + + var cKeySize = { + w: 33, + h: 36 + }; + + var btn7 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("7", 1) + }); + var btn8 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("8", 1) + }); + var btn9 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("9", 1) + }); + var btnDiv = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("/", 0) + }); + var btn4 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("4", 1) + }); + var btn5 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("5", 1) + }); + var btn6 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("6", 1) + }); + var btnMul = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("*", 0) + }); + var btn1 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("1", 1) + }); + var btn2 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("2", 1) + }); + var btn3 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("3", 1) + }); + var btnSou = $("
").ubwbutton({ + w: 68, + h: 34 + }) + .mousedown(function () { + appendToDisplay("-", 0) + }); + var btn0 = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("0", 1) + }); + var btnDot = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay(".", 1) + }); + var btnC = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + reset() + }); + var btnAdd = $("
").ubwbutton({ + w: 68, + h: 34 + }) + .mousedown(function () { + appendToDisplay("+", 0) + }); + var btnPaL = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay("(", 1) + }); + var btnPaR = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + appendToDisplay(")", 1) + }); + var btnEqu = $("
").ubwbutton({ + w: cKeySize.w, + h: cKeySize.h + }) + .mousedown(function () { + compute() + }); + + var historyPanel = $("
") + .css({ + backgroundImage: "url(images/historyback.png)", + width: "auto", + height: "auto", + float: "left", + marginLeft: 3, + marginRight: 2, + marginTop: 6 + }) + .hide(); + + var historyBox = $("") + .css({ + padding: 10, + fontSize: "20px", + fontFamily: "Arial, Helvetica, Sans-serif", + width: 143, + height: 236, + backgroundColor: "transparent", + resize: "none", + border: "none", + overlay: "none", + color: "#eeeeee" + }) + .val("0"); + + historyPanel.append(historyBox); + + var stop = $("
"); + var sleft = $("
"); + var sright = $("
"); + + stop.css({ + width: 140 + }) + .append(btnAdd).append(btnSou) + .append(btn7).append(btn8).append(btn9).append(btnMul) + .append(btn4).append(btn5).append(btn6).append(btnDiv); + + sleft.css({ + width: 105, + float: "left" + }) + .append(btn1).append(btn2).append(btn3) + .append(btn0).append(btnDot).append(btnC); + + sright.css({ + width: 45, + float: "left" + }) + .append(btnEqu); + + + standardPanel.css({ + width: 150 + }) + .append(stop) + .append(sleft).append(sright); + + keysPanel + .append(display) + .append(standardPanel); + + ubwidget + .append(historyPanel) + .append(keysPanel); + + if (window.sankore) { + historyTxt = window.sankore.preference('historyTxt', historyTxt); + var ht = window.sankore.preference('historyTab', "hidden"); + $("#historyBox").val(historyTxt); + if (ht === "visible") { + historyTab.trigger("click"); + }; + } + + function resizeWidget(w, h) { + if (window.sankore) { + window.sankore.resize(w + 2, h + 2); + } + } + + function compute() { + var result; + if (calc.length <= 1) + result = eval(calc); + else { + var fNumber, lNumber, operation = "", + fMinus = ""; + if (calc.charAt(0) == '-') { + fMinus = "-"; + calc = calc.substr(1, calc.length); + } + operation = (calc.indexOf("+", 0) != -1) ? calc.charAt(calc.indexOf("+", 0)) : ((calc.indexOf("*", 0) != -1) ? calc.charAt(calc.indexOf("*", 0)) : ((calc.indexOf("/", 0) != -1) ? calc.charAt(calc.indexOf("/", 0)) : ((calc.indexOf("-", 0) != -1) ? calc.charAt(calc.indexOf("-", 0)) : ""))); + fNumber = fMinus + calc.substring(0, calc.indexOf(operation, 0)); + lNumber = calc.substring(calc.indexOf(operation, 0) + 1, calc.length); + result = calcIt(fNumber, operation, lNumber); + } + + $("#display").text(updateDisplay(result)); + lastResult = result; + lastchar.type = "Nan"; + lastchar.value = ""; + calc = ""; + + $("#historyBox").val($("#historyBox").val() + historyTrunk + "\n= " + updateDisplay(result) + "\n\n"); + $("#historyBox").scrollTop(99999); + + displayTrunk = ""; + historyTrunk = ""; + + if (window.sankore) { + window.sankore.setPreference('historyTxt', $("#historyBox").val()); + } + + lastHistory = $("#historyBox").val(); + } + + function calcIt(fNumber, operation, lNumber) { + var result, fCount = "", + lCount = "", + length = 0; + fCount = (fNumber.indexOf(".", 0) != -1) ? fNumber.substring(fNumber.indexOf(".", 0) + 1, fNumber.length) : ""; + lCount = (lNumber.indexOf(".", 0) != -1) ? lNumber.substring(lNumber.indexOf(".", 0) + 1, lNumber.length) : ""; + length = (fCount.length >= lCount.length) ? fCount.length : lCount.length; + length = Math.pow(10, length); + fNumber = Math.round(fNumber * length); + lNumber = Math.round(lNumber * length); + switch (operation) { + case "+": + result = (fNumber + lNumber) / length; + break; + case "-": + result = (fNumber - lNumber) / length; + break; + case "*": + result = (fNumber * lNumber) / Math.pow(length, 2); + break; + case "/": + result = fNumber / lNumber; + break; + } + return result; + } + + function reset() { + $("#display").text("0"); + calc = ""; + lastchar.type = "NaN"; + displayTrunk = ""; + historyTrunk = ""; + $("#historyBox").val(lastHistory); + $("#historyBox").scrollTop(99999); + } + + function formatNumberWithDelimiters(number) { + var delimiter = gThousandsSeparator; + var numString = number.toString(); + + if (!numString) + return "0"; + + var dot = numString.indexOf(gDecimalSeparator); + if (dot == -1) + dot = numString.length; + + var stop = numString.length - dot; + var characteristic = numString.substr(0, dot); + if (!parseInt(characteristic)) + return numString; + + // see if it's a negative number + var numIsNegative = (parseInt(characteristic) < 0) + + var newNumber = ""; + var delimiterCount = Math.floor((characteristic.length - 1) / 3); + var extras = characteristic.length % 3; + if (!extras && characteristic.length > 2) + extras = 3; + + if (extras) + newNumber = newNumber + characteristic.substr(0, extras); + + for (var i = 0; i < delimiterCount; i++) { + + if ((0 == i) && numIsNegative && (extras == 1)) + newNumber = newNumber + characteristic.substr(extras + (i * 3), 3); + else + newNumber = newNumber + delimiter + characteristic.substr(extras + (i * 3), 3); + } + + return (dot ? (newNumber + numString.substr(dot, stop)) : newNumber); + } + + + function formatNumberWithScientificNotation(number) { + if (number == 0) + return number; + + var numString = number.toString(); + if (!numString) + return "0"; + + var num = new Number(numString); + var sci = num.toExponential(5); + if (sci == "NaN") + sci = formatNumberWithDelimiters(numString); + if (!sci) + return "0"; + + return sci; + } + + function updateDisplay(number) { + if (String(number).length > 8) { + number = formatNumberWithScientificNotation(number); + } else { + number = number; + } + + return number; + } + + function appendToDisplay(_char, v) { + var char = _char; + + // Display + if ($("#historyBox").val() === "0") { + $("#historyBox").val(""); + }; + + if (char == "-" && lastchar.type == "NaN") { + char = "m"; + }; + + // char is a number + if (char <= 0 || char > 0 || char == "." || char == "m" || char == "(" || char == ")") { + if (char == "m") { + char = "-"; + }; + + if (lastchar.type == "NaN") { + displayTrunk = ""; + }; + + if (lastchar.value == "." && char == ".") { + calc = calc.substr(0, calc.length - 1); + displayTrunk = displayTrunk.substr(0, displayTrunk.length - 1); + }; + + if (calc == "0") { + if (char != "0") { + if (char != ".") { + calc = String(char); + displayTrunk = String(char); + historyTrunk = String(char); + lastchar.type = "Number"; + } else { + calc += String(char); + displayTrunk += String(char); + historyTrunk += String(char); + lastchar.type = "Number"; + } + } + } else { + char = (char == ".") ? ((displayTrunk.indexOf(".", 0) != -1) ? "" : ".") : char; + calc += String(char); + displayTrunk += String(char); + historyTrunk += String(char); + lastchar.type = "Number"; + } + } + // char is an operator + else { + if (calc.length === 0) { + var endCalc = calc; + calc = lastResult + endCalc; + historyTrunk = updateDisplay(lastResult); + } + + if (lastchar.type == "NaN") { + calc = calc.substr(0, calc.length - 1); + calc += char; + $("#historyBox").val($("#historyBox").val().substr(0, $("#historyBox").val().length - 1)); + } else { + try { + calc = eval(calc) + String(char); + } catch (e) {} + } + + lastchar.type = "NaN"; + try { + displayTrunk = eval(calc.substr(0, calc.length - 1)); + } catch (e) {} + $("#historyBox").val($("#historyBox").val() + historyTrunk + char); + $("#historyBox").scrollTop(99999); + historyTrunk = ""; + } + + lastchar.value = char; + $("#display").text(updateDisplay(displayTrunk)); + } + + $("#historyBox").click(function () { + if (!clickFlag) { + $(this).select(); + clickFlag = true; + } else { + clickFlag = false; + $(this).blur(); + } + }); + $(document).disableTextSelect(); +}; \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-1.3.2.min.js b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-1.3.2.min.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-ui-1.7.2.custom.min.js b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-ui-1.7.2.custom.min.js new file mode 100644 index 0000000..cf19f30 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery-ui-1.7.2.custom.min.js @@ -0,0 +1,298 @@ +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* + * jQuery UI Draggable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;/* + * jQuery UI Selectable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.rightg||j.bottomd&&j.righth&&j.bottom=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/* + * jQuery UI Accordion 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);;/* + * jQuery UI Dialog 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * ui.core.js + * ui.draggable.js + * ui.resizable.js + */ +(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||" ",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("
")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("
")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("
").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||" ");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("
").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e
");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("
")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('
').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(cthis._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/* + * jQuery UI Tabs 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"
",spinner:"Loading…",tabTemplate:'
  • #{label}
  • '}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('
    '))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$(''+appendText+"");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDatenew Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)0&&iValue="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j0&&iValue-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormatmaxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDrawmaxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?''+prevText+"":(hideIfNoPrevNext?"":''+prevText+""));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?''+nextText+"":(hideIfNoPrevNext?"":''+nextText+""));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'":"");var buttonPanel=(showButtonPanel)?'
    '+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'":"")+(isRTL?"":controls)+"
    ":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="=5?' class="ui-datepicker-week-end"':"")+'>'+dayNamesMin[day]+""}calender+=thead+"";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDatemaxDate);tbody+='";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+""}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="
    =currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?''+printDate.getDate()+"":'=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+""))+"
    "+(isMultiMonth?""+((numMonths[0]>0&&col==numMonths[1]-1)?'
    ':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;/* + * jQuery UI Progressbar 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('
    ').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/* + * jQuery UI Effects Fold 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/* + * jQuery UI Effects Highlight 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/* + * jQuery UI Effects Pulsate 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.disable.text.select.js b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.disable.text.select.js new file mode 100644 index 0000000..2e06f67 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.disable.text.select.js @@ -0,0 +1,62 @@ +/** + * .disableTextSelect - Disable Text Select Plugin + * + * Version: 1.1 + * Updated: 2007-11-28 + * + * Used to stop users from selecting text + * + * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + **/ + +/** + * Requirements: + * - jQuery (John Resig, http://www.jquery.com/) + **/ +(function($) { + if ($.browser.mozilla) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : 'none' + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : '' + }); + }); + }; + } else if ($.browser.msie) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('selectstart.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('selectstart.disableTextSelect'); + }); + }; + } else { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('mousedown.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('mousedown.disableTextSelect'); + }); + }; + } +})(jQuery); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.easing.1.2.js b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.easing.1.2.js new file mode 100644 index 0000000..749b2d5 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/legacy/js/vendor/jquery.easing.1.2.js @@ -0,0 +1,140 @@ +/* + * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php + * + * Uses the built In easIng capabilities added In jQuery 1.1 + * to offer multiple easIng options + * + * Copyright (c) 2007 George Smith + * Licensed under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + */ + +// t: current time, b: begInnIng value, c: change In value, d: duration + +jQuery.extend( jQuery.easing, +{ + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); \ No newline at end of file diff --git a/resources/library/applications/Calculator.wgt/package.json b/resources/library/applications/Calculator.wgt/package.json new file mode 100644 index 0000000..afd16e7 --- /dev/null +++ b/resources/library/applications/Calculator.wgt/package.json @@ -0,0 +1,20 @@ +{ + "author": "Alti-TCS", + "name": "Calculatrice.wgt", + "version": "2.3.0RC-32-g426c891", + "repository": { + "type": "git", + "url": "ssh://devalti@VM-REPO/home/devalti/projets/opensankore/Sankore-3.1.git" + }, + "dependencies": {}, + "devDependencies": { + "grunt": "~0.4.2", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-uglify": "~0.3.2", + "grunt-contrib-watch": "~0.5.3" + }, + "optionalDependencies": {}, + "engines": { + "node": "*" + } +} diff --git a/resources/library/applications/ColorPicker.wgt/Default.png b/resources/library/applications/ColorPicker.wgt/Default.png new file mode 100644 index 0000000..8401572 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/Default.png differ diff --git a/resources/library/applications/ColorPicker.wgt/config.xml b/resources/library/applications/ColorPicker.wgt/config.xml new file mode 100644 index 0000000..46b6940 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Color Picker + Mnemis SA + Simple color picker + + + diff --git a/resources/library/applications/ColorPicker.wgt/css/colorpicker.css b/resources/library/applications/ColorPicker.wgt/css/colorpicker.css new file mode 100644 index 0000000..1e67a44 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/css/colorpicker.css @@ -0,0 +1,180 @@ +.colorpicker { + width: 356px; + height: 176px; + overflow: hidden; + position: absolute; + background: url(../images/colorpicker_background.png); + font-family: Arial, Helvetica, sans-serif; + display: none; +} +.colorpicker_color { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: #f00; + overflow: hidden; + cursor: crosshair; +} +.colorpicker_color div { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url(../images/colorpicker_overlay.png); +} +.colorpicker_color div div { + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/colorpicker_select.png); + margin: -5px 0 0 -5px; +} +.colorpicker_hue { + position: absolute; + top: 13px; + left: 171px; + width: 35px; + height: 150px; + cursor: n-resize; +} +.colorpicker_hue div { + position: absolute; + width: 35px; + height: 9px; + overflow: hidden; + background: url(../images/colorpicker_indic.png) left top; + margin: -4px 0 0 0; + left: 0px; +} +.colorpicker_new_color { + position: absolute; + width: 60px; + height: 30px; + left: 213px; + top: 13px; + background: #f00; +} +.colorpicker_current_color { + position: absolute; + width: 60px; + height: 30px; + left: 283px; + top: 13px; + background: #f00; +} +.colorpicker input { + background-color: transparent; + border: 1px solid transparent; + position: absolute; + font-size: 10px; + font-family: Arial, Helvetica, sans-serif; + color: #898989; + top: 4px; + right: 11px; + text-align: right; + margin: 0; + padding: 0; + height: 11px; +} +.colorpicker_hex { + position: absolute; + width: 72px; + height: 22px; + background: url(../images/colorpicker_hex.png) top; + left: 212px; + top: 142px; +} +.colorpicker_hex input { + right: 6px; +} +.colorpicker_field { + height: 22px; + width: 62px; + background-position: top; + position: absolute; +} +.colorpicker_field span { + position: absolute; + width: 12px; + height: 22px; + overflow: hidden; + top: 0; + right: 0; + cursor: n-resize; +} +.colorpicker_rgb_r { + background-image: url(../images/colorpicker_rgb_r.png); + top: 52px; + left: 212px; +} +.colorpicker_rgb_g { + background-image: url(../images/colorpicker_rgb_g.png); + top: 82px; + left: 212px; +} +.colorpicker_rgb_b { + background-image: url(../images/colorpicker_rgb_b.png); + top: 112px; + left: 212px; +} +.colorpicker_hsb_h { + background-image: url(../images/colorpicker_hsb_h.png); + top: 52px; + left: 282px; +} +.colorpicker_hsb_s { + background-image: url(../images/colorpicker_hsb_s.png); + top: 82px; + left: 282px; +} +.colorpicker_hsb_b { + background-image: url(../images/colorpicker_hsb_b.png); + top: 112px; + left: 282px; +} +.colorpicker_submit { + position: absolute; + width: 22px; + height: 22px; + background: url(../images/colorpicker_submit.png) top; + left: 322px; + top: 142px; + overflow: hidden; +} + +.tools_change { + position: absolute; + width: 22px; + height: 22px; + background: url(../images/tools.jpg) top; + left: 290px; + top: 142px; + overflow: hidden; +} + +.tools_change.tools_compass{ + background-position: bottom; +} + +.tools_change.tools_border{ + border: 1px solid #999090; +} + +.colorpicker_focus { + background-position: center; +} +.colorpicker_hex.colorpicker_focus { + background-position: bottom; +} +.colorpicker_submit.colorpicker_focus { + background-position: bottom; +} +.colorpicker_slider { + background-position: bottom; +} diff --git a/resources/library/applications/ColorPicker.wgt/css/layout.css b/resources/library/applications/ColorPicker.wgt/css/layout.css new file mode 100644 index 0000000..f81f88c --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/css/layout.css @@ -0,0 +1,220 @@ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { + margin:0; + padding:0; +} +table { + border-collapse:collapse; + border-spacing:0; +} +fieldset,img { + border:0; +} +address,caption,cite,code,dfn,em,strong,th,var { + font-style:normal; + font-weight:normal; +} +ol,ul { + list-style:none; +} +caption,th { + text-align:left; +} +h1,h2,h3,h4,h5,h6 { + font-size:100%; + font-weight:normal; +} +q:before,q:after { + content:''; +} +abbr,acronym { border:0; +} +html, body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + line-height: 18px; + color: #52697E; + width: 100%; + height: 100%; +} +body { + text-align: center; + overflow: auto; +} +.wrapper { + width: 700px; + margin: 0 auto; + text-align: left; +} +h1 { + font-size: 21px; + height: 47px; + line-height: 47px; + text-transform: uppercase; +} +.navigationTabs { + height: 23px; + line-height: 23px; + border-bottom: 1px solid #ccc; +} +.navigationTabs li { + float: left; + height: 23px; + line-height: 23px; + padding-right: 3px; +} +.navigationTabs li a{ + float: left; + dispaly: block; + height: 23px; + line-height: 23px; + padding: 0 10px; + overflow: hidden; + color: #52697E; + background-color: #eee; + position: relative; + text-decoration: none; +} +.navigationTabs li a:hover { + background-color: #f0f0f0; +} +.navigationTabs li a.active { + background-color: #fff; + border: 1px solid #ccc; + border-bottom: 0px solid; +} +.tabsContent { + border: 1px solid #ccc; + border-top: 0px solid; + width: 698px; + overflow: hidden; +} +.tab { + padding: 16px; + display: none; +} +.tab h2 { + font-weight: bold; + font-size: 16px; +} +.tab h3 { + font-weight: bold; + font-size: 14px; + margin-top: 20px; +} +.tab p { + margin-top: 16px; + clear: both; +} +.tab ul { + margin-top: 16px; + list-style: disc; +} +.tab li { + margin: 10px 0 0 35px; +} +.tab a { + color: #8FB0CF; +} +.tab strong { + font-weight: bold; +} +.tab pre { + font-size: 11px; + margin-top: 20px; + width: 668px; + overflow: auto; + clear: both; +} +.tab table { + width: 100%; +} +.tab table td { + padding: 6px 10px 6px 0; + vertical-align: top; +} +.tab dt { + margin-top: 16px; +} + +#colorSelector { + position: relative; + width: 36px; + height: 36px; + background: url(../images/select.png); +} +#colorSelector div { + position: absolute; + top: 3px; + left: 3px; + width: 30px; + height: 30px; + background: url(../images/select.png) center; +} +#colorSelector2 { + position: absolute; + top: 0; + left: 0; + width: 36px; + height: 36px; + background: url(../images/select2.png); +} +#colorSelector2 div { + position: absolute; + top: 4px; + left: 4px; + width: 28px; + height: 28px; + background: url(../images/select2.png) center; +} +#colorpickerHolder2 { + top: 32px; + left: 0; + width: 356px; + height: 0; + overflow: hidden; + position: absolute; +} +#colorpickerHolder2 .colorpicker { + background-image: url(../images/custom_background.png); + position: absolute; + bottom: 0; + left: 0; +} +#colorpickerHolder2 .colorpicker_hue div { + background-image: url(../images/custom_indic.png); +} +#colorpickerHolder2 .colorpicker_hex { + background-image: url(../images/custom_hex.png); +} +#colorpickerHolder2 .colorpicker_rgb_r { + background-image: url(../images/custom_rgb_r.png); +} +#colorpickerHolder2 .colorpicker_rgb_g { + background-image: url(../images/custom_rgb_g.png); +} +#colorpickerHolder2 .colorpicker_rgb_b { + background-image: url(../images/custom_rgb_b.png); +} +#colorpickerHolder2 .colorpicker_hsb_s { + background-image: url(../images/custom_hsb_s.png); + display: none; +} +#colorpickerHolder2 .colorpicker_hsb_h { + background-image: url(../images/custom_hsb_h.png); + display: none; +} +#colorpickerHolder2 .colorpicker_hsb_b { + background-image: url(../images/custom_hsb_b.png); + display: none; +} +#colorpickerHolder2 .colorpicker_submit { + background-image: url(../images/custom_submit.png); +} +#colorpickerHolder2 .colorpicker input { + color: #778398; +} +#customWidget { + position: relative; + height: 36px; +} diff --git a/resources/library/applications/ColorPicker.wgt/icon.png b/resources/library/applications/ColorPicker.wgt/icon.png new file mode 100644 index 0000000..89b7e90 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/icon.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/blank.png b/resources/library/applications/ColorPicker.wgt/images/blank.png new file mode 100644 index 0000000..209a438 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/blank.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_background.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_background.png new file mode 100644 index 0000000..8401572 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_background.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_hex.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hex.png new file mode 100644 index 0000000..4e532d7 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hex.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_b.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_b.png new file mode 100644 index 0000000..dfac595 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_b.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_h.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_h.png new file mode 100644 index 0000000..3977ed9 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_h.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_s.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_s.png new file mode 100644 index 0000000..a2a6997 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_hsb_s.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_indic.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_indic.png new file mode 100644 index 0000000..c9ef651 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_indic.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_overlay.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_overlay.png new file mode 100644 index 0000000..561cdd9 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_overlay.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_b.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_b.png new file mode 100644 index 0000000..dfac595 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_b.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_g.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_g.png new file mode 100644 index 0000000..72b3276 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_g.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_r.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_r.png new file mode 100644 index 0000000..4855fe0 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_rgb_r.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_select.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_select.png new file mode 100644 index 0000000..b7e6afa Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_select.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/colorpicker_submit.png b/resources/library/applications/ColorPicker.wgt/images/colorpicker_submit.png new file mode 100644 index 0000000..7f4c082 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/colorpicker_submit.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_background.png b/resources/library/applications/ColorPicker.wgt/images/custom_background.png new file mode 100644 index 0000000..cf55ffd Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_background.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_hex.png b/resources/library/applications/ColorPicker.wgt/images/custom_hex.png new file mode 100644 index 0000000..888f444 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_hex.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_hsb_b.png b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_b.png new file mode 100644 index 0000000..2f99dae Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_b.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_hsb_h.png b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_h.png new file mode 100644 index 0000000..a217e92 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_h.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_hsb_s.png b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_s.png new file mode 100644 index 0000000..7826b41 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_hsb_s.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_indic.png b/resources/library/applications/ColorPicker.wgt/images/custom_indic.png new file mode 100644 index 0000000..51ce98d Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_indic.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_rgb_b.png b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_b.png new file mode 100644 index 0000000..80764e5 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_b.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_rgb_g.png b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_g.png new file mode 100644 index 0000000..fc9778b Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_g.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_rgb_r.png b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_r.png new file mode 100644 index 0000000..91b0cd4 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_rgb_r.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/custom_submit.png b/resources/library/applications/ColorPicker.wgt/images/custom_submit.png new file mode 100644 index 0000000..cd202cd Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/custom_submit.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/select.png b/resources/library/applications/ColorPicker.wgt/images/select.png new file mode 100644 index 0000000..21213bf Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/select.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/select2.png b/resources/library/applications/ColorPicker.wgt/images/select2.png new file mode 100644 index 0000000..2cd2cab Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/select2.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/slider.png b/resources/library/applications/ColorPicker.wgt/images/slider.png new file mode 100644 index 0000000..8b03da9 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/slider.png differ diff --git a/resources/library/applications/ColorPicker.wgt/images/tools.jpg b/resources/library/applications/ColorPicker.wgt/images/tools.jpg new file mode 100644 index 0000000..cdeab74 Binary files /dev/null and b/resources/library/applications/ColorPicker.wgt/images/tools.jpg differ diff --git a/resources/library/applications/ColorPicker.wgt/index.html b/resources/library/applications/ColorPicker.wgt/index.html new file mode 100644 index 0000000..772d9e8 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/index.html @@ -0,0 +1,16 @@ + + + + + + ColorPicker - jQuery plugin + + + + + + + +

    + + diff --git a/resources/library/applications/ColorPicker.wgt/js/colorpicker.js b/resources/library/applications/ColorPicker.wgt/js/colorpicker.js new file mode 100644 index 0000000..b5ac79e --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/js/colorpicker.js @@ -0,0 +1,607 @@ +/** + * + * Color picker + * Author: Stefan Petre www.eyecon.ro + * + * Dual licensed under the MIT and GPL licenses + * + */ +(function ($) { + var ColorPicker = function () { + var + ids = {}, + penFlag = true, + tmpColor = { + a:"", + b:"" + }, + inAction, + charMin = 65, + visible, + tpl = '
    ', + defaults = { + eventName: 'click', + onShow: function () {}, + onBeforeShow: function(){}, + onHide: function () {}, + onChange: function () {}, + onSubmit: function () {}, + color: 'ff0000', + livePreview: true, + flat: false + }, + fillRGBFields = function (hsb, cal) { + var rgb = HSBToRGB(hsb); + $(cal).data('colorpicker').fields + .eq(1).val(rgb.r).end() + .eq(2).val(rgb.g).end() + .eq(3).val(rgb.b).end(); + }, + fillHSBFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(4).val(hsb.h).end() + .eq(5).val(hsb.s).end() + .eq(6).val(hsb.b).end(); + }, + fillHexFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(0).val(HSBToHex(hsb)).end(); + }, + setSelector = function (hsb, cal) { + $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({ + h: hsb.h, + s: 100, + b: 100 + })); + $(cal).data('colorpicker').selectorIndic.css({ + left: parseInt(150 * hsb.s/100, 10), + top: parseInt(150 * (100-hsb.b)/100, 10) + }); + }, + setHue = function (hsb, cal) { + $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); + }, + setCurrentColor = function (hsb, cal) { + $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + setNewColor = function (hsb, cal) { + $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); + if(penFlag){ + $("div.tools_change").removeClass("tools_compass"); + window.sankore.setTool('pen'); + window.sankore.setPenColor('#' + HSBToHex(hsb)); + //sankore.returnStatus("PEN installed", penFlag); + } else { + $("div.tools_change").addClass("tools_compass"); + window.sankore.setTool('compass'); + window.sankore.setPenColor('#' + HSBToHex(hsb)); + //sankore.returnStatus("Compass installed", penFlag); + } + }, + keyDown = function (ev) { + var pressedKey = ev.charCode || ev.keyCode || -1; + if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { + return false; + } + var cal = $(this).parent().parent(); + if (cal.data('colorpicker').livePreview === true) { + change.apply(this); + } + }, + change = function (ev) { + var cal = $(this).parent().parent(), col; + if (this.parentNode.className.indexOf('_hex') > 0) { + cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); + } else if (this.parentNode.className.indexOf('_hsb') > 0) { + cal.data('colorpicker').color = col = fixHSB({ + h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), + s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) + }); + } else { + cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ + r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), + g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) + })); + } + if (ev) { + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + } + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + //setNewColor(col, cal.get(0)); + $(cal.get(0)).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(col)); + tmpColor.a = cal.get(0); + tmpColor.b = col; + cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); + }, + blur = function (ev) { + var cal = $(this).parent().parent(); + cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + }, + focus = function () { + charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; + $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + $(this).parent().addClass('colorpicker_focus'); + }, + downIncrement = function (ev) { + var field = $(this).parent().find('input').focus(); + var current = { + el: $(this).parent().addClass('colorpicker_slider'), + max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), + y: ev.pageY, + field: field, + val: parseInt(field.val(), 10), + preview: $(this).parent().parent().data('colorpicker').livePreview + }; + $(document).bind('mouseup', current, upIncrement); + $(document).bind('mousemove', current, moveIncrement); + }, + moveIncrement = function (ev) { + ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); + if (ev.data.preview) { + change.apply(ev.data.field.get(0), [true]); + } + return false; + }, + upIncrement = function (ev) { + change.apply(ev.data.field.get(0), [true]); + ev.data.el.removeClass('colorpicker_slider').find('input').focus(); + $(document).unbind('mouseup', upIncrement); + $(document).unbind('mousemove', moveIncrement); + return false; + }, + downHue = function (ev) { + var current = { + cal: $(this).parent(), + y: $(this).offset().top + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upHue); + $(document).bind('mousemove', current, moveHue); + }, + moveHue = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(4) + .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upHue = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upHue); + $(document).unbind('mousemove', moveHue); + return false; + }, + downSelector = function (ev) { + var current = { + cal: $(this).parent(), + pos: $(this).offset() + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upSelector); + $(document).bind('mousemove', current, moveSelector); + change.apply( + current.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - current.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - current.pos.left))))/150, 10)) + .get(0), + [current.preview] + ); + }, + moveSelector = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upSelector = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upSelector); + $(document).unbind('mousemove', moveSelector); + if(penFlag){ + $("div.tools_change").removeClass("tools_compass"); + window.sankore.setTool('pen'); + window.sankore.setPenColor('#' + HSBToHex(tmpColor.b)); + //sankore.returnStatus("PEN installed", penFlag); + } else { + $("div.tools_change").addClass("tools_compass"); + window.sankore.setTool('compass'); + window.sankore.setPenColor('#' + HSBToHex(tmpColor.b)); + //sankore.returnStatus("Compass installed", penFlag); + } + //$(tmpColor.a).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(tmpColor.b)); + return false; + }, + enterSubmit = function (ev) { + $(this).addClass('colorpicker_focus'); + }, + leaveSubmit = function (ev) { + $(this).removeClass('colorpicker_focus'); + }, + clickSubmit = function (ev) { + var cal = $(this).parent(); + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + }, + mouseOverBorder = function(ev) { + $(this).addClass("tools_border"); + }, + mouseOutBorder = function(ev) { + $(this).removeClass("tools_border"); + }, + clickToolsChange = function (ev) { + var cal = $(this).parent(); + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + penFlag = (penFlag)?false:true; + setNewColor(col, cal.get(0)); + //sankore.returnStatus("startEditing()", penFlag); + }, + show = function (ev) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); + var pos = $(this).offset(); + var viewPort = getViewport(); + var top = pos.top + this.offsetHeight; + var left = pos.left; + if (top + 176 > viewPort.t + viewPort.h) { + top -= this.offsetHeight + 176; + } + if (left + 356 > viewPort.l + viewPort.w) { + left -= 356; + } + cal.css({ + left: left + 'px', + top: top + 'px' + }); + if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { + cal.show(); + } + $(document).bind('mousedown', { + cal: cal + }, hide); + return false; + }, + hide = function (ev) { + if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { + if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { + ev.data.cal.hide(); + } + $(document).unbind('mousedown', hide); + } + }, + isChildOf = function(parentEl, el, container) { + if (parentEl == el) { + return true; + } + if (parentEl.contains) { + return parentEl.contains(el); + } + if ( parentEl.compareDocumentPosition ) { + return !!(parentEl.compareDocumentPosition(el) & 16); + } + var prEl = el.parentNode; + while(prEl && prEl != container) { + if (prEl == parentEl) + return true; + prEl = prEl.parentNode; + } + return false; + }, + getViewport = function () { + var m = document.compatMode == 'CSS1Compat'; + return { + l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), + t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), + w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), + h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) + }; + }, + fixHSB = function (hsb) { + return { + h: Math.min(360, Math.max(0, hsb.h)), + s: Math.min(100, Math.max(0, hsb.s)), + b: Math.min(100, Math.max(0, hsb.b)) + }; + }, + fixRGB = function (rgb) { + return { + r: Math.min(255, Math.max(0, rgb.r)), + g: Math.min(255, Math.max(0, rgb.g)), + b: Math.min(255, Math.max(0, rgb.b)) + }; + }, + fixHex = function (hex) { + var len = 6 - hex.length; + if (len > 0) { + var o = []; + for (var i=0; i -1) ? hex.substring(1) : hex), 16); + return { + r: hex >> 16, + g: (hex & 0x00FF00) >> 8, + b: (hex & 0x0000FF) + }; + }, + HexToHSB = function (hex) { + return RGBToHSB(HexToRGB(hex)); + }, + RGBToHSB = function (rgb) { + var hsb = { + h: 0, + s: 0, + b: 0 + }; + var min = Math.min(rgb.r, rgb.g, rgb.b); + var max = Math.max(rgb.r, rgb.g, rgb.b); + var delta = max - min; + hsb.b = max; + if (max != 0) { + + } + hsb.s = max != 0 ? 255 * delta / max : 0; + if (hsb.s != 0) { + if (rgb.r == max) { + hsb.h = (rgb.g - rgb.b) / delta; + } else if (rgb.g == max) { + hsb.h = 2 + (rgb.b - rgb.r) / delta; + } else { + hsb.h = 4 + (rgb.r - rgb.g) / delta; + } + } else { + hsb.h = -1; + } + hsb.h *= 60; + if (hsb.h < 0) { + hsb.h += 360; + } + hsb.s *= 100/255; + hsb.b *= 100/255; + return hsb; + }, + HSBToRGB = function (hsb) { + var rgb = {}; + var h = Math.round(hsb.h); + var s = Math.round(hsb.s*255/100); + var v = Math.round(hsb.b*255/100); + if(s == 0) { + rgb.r = rgb.g = rgb.b = v; + } else { + var t1 = v; + var t2 = (255-s)*v/255; + var t3 = (t1-t2)*(h%60)/60; + if(h==360) h = 0; + if(h<60) { + rgb.r=t1; + rgb.b=t2; + rgb.g=t2+t3 + } + else if(h<120) { + rgb.g=t1; + rgb.b=t2; + rgb.r=t1-t3 + } + else if(h<180) { + rgb.g=t1; + rgb.r=t2; + rgb.b=t2+t3 + } + else if(h<240) { + rgb.b=t1; + rgb.r=t2; + rgb.g=t1-t3 + } + else if(h<300) { + rgb.b=t1; + rgb.g=t2; + rgb.r=t2+t3 + } + else if(h<360) { + rgb.r=t1; + rgb.g=t2; + rgb.b=t1-t3 + } + else { + rgb.r=0; + rgb.g=0; + rgb.b=0 + } + } + return { + r:Math.round(rgb.r), + g:Math.round(rgb.g), + b:Math.round(rgb.b) + }; + }, + RGBToHex = function (rgb) { + var hex = [ + rgb.r.toString(16), + rgb.g.toString(16), + rgb.b.toString(16) + ]; + $.each(hex, function (nr, val) { + if (val.length == 1) { + hex[nr] = '0' + val; + } + }); + return hex.join(''); + }, + HSBToHex = function (hsb) { + return RGBToHex(HSBToRGB(hsb)); + }, + // changeCursor = function (flag) { + // alert(flag) + // }, + restoreOriginal = function () { + var cal = $(this).parent(); + var col = cal.data('colorpicker').origColor; + cal.data('colorpicker').color = col; + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + }; + return { + init: function (opt) { + if(window.sankore) + sankore.setTool("arrow"); + // $(document).mouseout(function(event){ + // if(event.target.tagName == "DIV" && event.target.className == "colorpicker") + // changeCursor(true) + // }) + // $("body").mouseleave(function(){ + // changeCursor(true) + // }) + opt = $.extend({}, defaults, opt||{}); + if (typeof opt.color == 'string') { + opt.color = HexToHSB(opt.color); + } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { + opt.color = RGBToHSB(opt.color); + } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { + opt.color = fixHSB(opt.color); + } else { + return this; + } + return this.each(function () { + if (!$(this).data('colorpickerId')) { + var options = $.extend({}, opt); + options.origColor = opt.color; + var id = 'collorpicker_' + parseInt(Math.random() * 1000); + $(this).data('colorpickerId', id); + var cal = $(tpl).attr('id', id); + if (options.flat) { + cal.appendTo(this).show(); + } + else { + cal.appendTo(document.body); + } + // cal.bind("mouseover", function(){ + // window.sankore.setTool('arrow'); + // }) + options.fields = cal + .find('input') + .bind('keyup', keyDown) + .bind('change', change) + .bind('blur', blur) + .bind('focus', focus); + cal + .find('span').bind('mousedown', downIncrement).end() + .find('>div.colorpicker_current_color').bind('click', restoreOriginal); + options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); + options.selectorIndic = options.selector.find('div div'); + options.el = this; + options.hue = cal.find('div.colorpicker_hue div'); + cal.find('div.colorpicker_hue').bind('mousedown', downHue); + options.newColor = cal.find('div.colorpicker_new_color'); + options.currentColor = cal.find('div.colorpicker_current_color'); + cal.data('colorpicker', options); + cal.find('div.colorpicker_submit') + .bind('mouseenter', enterSubmit) + .bind('mouseleave', leaveSubmit) + .bind('click', clickSubmit); + cal.find('div.tools_change') + .bind('mouseover', mouseOverBorder) + .bind('mouseout', mouseOutBorder) + .bind('click', clickToolsChange); + fillRGBFields(options.color, cal.get(0)); + fillHSBFields(options.color, cal.get(0)); + fillHexFields(options.color, cal.get(0)); + setHue(options.color, cal.get(0)); + setSelector(options.color, cal.get(0)); + setCurrentColor(options.color, cal.get(0)); + setNewColor(options.color, cal.get(0)); + if (options.flat) { + cal.css({ + position: 'relative', + display: 'block' + }); + } else { + $(this).bind(options.eventName, show); + } + } + }); + }, + showPicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + show.apply(this); + } + }); + }, + hidePicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + $('#' + $(this).data('colorpickerId')).hide(); + } + }); + }, + setColor: function(col) { + if (typeof col == 'string') { + col = HexToHSB(col); + } else if (col.r != undefined && col.g != undefined && col.b != undefined) { + col = RGBToHSB(col); + } else if (col.h != undefined && col.s != undefined && col.b != undefined) { + col = fixHSB(col); + } else { + return this; + } + return this.each(function(){ + if ($(this).data('colorpickerId')) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').color = col; + cal.data('colorpicker').origColor = col; + fillRGBFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + setHue(col, cal.get(0)); + setSelector(col, cal.get(0)); + setCurrentColor(col, cal.get(0)); + setNewColor(col, cal.get(0)); + } + }); + } + }; + }(); + $.fn.extend({ + ColorPicker: ColorPicker.init, + ColorPickerHide: ColorPicker.hidePicker, + ColorPickerShow: ColorPicker.showPicker, + ColorPickerSetColor: ColorPicker.setColor + }); +})(jQuery) diff --git a/resources/library/applications/ColorPicker.wgt/js/eye.js b/resources/library/applications/ColorPicker.wgt/js/eye.js new file mode 100644 index 0000000..ea70e64 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/js/eye.js @@ -0,0 +1,34 @@ +/** + * + * Zoomimage + * Author: Stefan Petre www.eyecon.ro + * + */ +(function($){ + var EYE = window.EYE = function() { + var _registered = { + init: [] + }; + return { + init: function() { + $.each(_registered.init, function(nr, fn){ + fn.call(); + }); + }, + extend: function(prop) { + for (var i in prop) { + if (prop[i] != undefined) { + this[i] = prop[i]; + } + } + }, + register: function(fn, type) { + if (!_registered[type]) { + _registered[type] = []; + } + _registered[type].push(fn); + } + }; + }(); + $(EYE.init); +})(jQuery); diff --git a/resources/library/applications/ColorPicker.wgt/js/jquery-1.8.1.min.js b/resources/library/applications/ColorPicker.wgt/js/jquery-1.8.1.min.js new file mode 100644 index 0000000..ee68f35 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/js/jquery-1.8.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.1 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write(""),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.1",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b
    a",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="
    t
    ",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="
    ",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j=0),h[l]&&j.push(k);j.length&&t.push({elem:f,matches:j})}n.length>o&&t.push({elem:this,matches:n.slice(o)});for(d=0;d0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function $(a,b,c,d){c=c||[],b=b||q;var e,f,g,j,k=b.nodeType;if(k!==1&&k!==9)return[];if(!a||typeof a!="string")return c;g=h(b);if(!g&&!d)if(e=L.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&i(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return u.apply(c,t.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&X&&b.getElementsByClassName)return u.apply(c,t.call(b.getElementsByClassName(j),0)),c}return bk(a,b,c,d,g)}function _(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function ba(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bb(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bc(a,b,c,d){var e,g,h,i,j,k,l,m,n,p,r=!c&&b!==q,s=(r?"":"")+a.replace(H,"$1"),u=y[o][s];if(u)return d?0:t.call(u,0);j=a,k=[],m=0,n=f.preFilter,p=f.filter;while(j){if(!e||(g=I.exec(j)))g&&(j=j.slice(g[0].length),h.selector=l),k.push(h=[]),l="",r&&(j=" "+j);e=!1;if(g=J.exec(j))l+=g[0],j=j.slice(g[0].length),e=h.push({part:g.pop().replace(H," "),string:g[0],captures:g});for(i in p)(g=S[i].exec(j))&&(!n[i]||(g=n[i](g,b,c)))&&(l+=g[0],j=j.slice(g[0].length),e=h.push({part:i,string:g.shift(),captures:g}));if(!e)break}return l&&(h.selector=l),d?j.length:j?$.error(a):t.call(y(s,k),0)}function bd(a,b,e,f){var g=b.dir,h=s++;return a||(a=function(a){return a===e}),b.first?function(b){while(b=b[g])if(b.nodeType===1)return a(b)&&b}:f?function(b){while(b=b[g])if(b.nodeType===1&&a(b))return b}:function(b){var e,f=h+"."+c,i=f+"."+d;while(b=b[g])if(b.nodeType===1){if((e=b[o])===i)return b.sizset;if(typeof e=="string"&&e.indexOf(f)===0){if(b.sizset)return b}else{b[o]=i;if(a(b))return b.sizset=!0,b;b.sizset=!1}}}}function be(a,b){return a?function(c){var d=b(c);return d&&a(d===!0?c:d)}:b}function bf(a,b,c){var d,e,g=0;for(;d=a[g];g++)f.relative[d.part]?e=bd(e,f.relative[d.part],b,c):e=be(e,f.filter[d.part].apply(null,d.captures.concat(b,c)));return e}function bg(a){return function(b){var c,d=0;for(;c=a[d];d++)if(c(b))return!0;return!1}}function bh(a,b,c,d){var e=0,f=b.length;for(;e0?i(h,c,g):[]}function bj(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s=0,t=a.length,v=S.POS,w=new RegExp("^"+v.source+"(?!"+A+")","i"),x=function(){var a=1,c=arguments.length-2;for(;al){g+=k.slice(l,n.index),l=p,q=[c],J.test(g)&&(m&&(q=m),m=e);if(r=O.test(g))g=g.slice(0,-5).replace(J,"$&*"),l++;n.length>1&&n[0].replace(w,x),m=bi(g,n[1],n[2],q,m,r)}g=""}}o||(g+=k),o=!1}g?J.test(g)?bh(g,m||[c],d,e):$(g,c,d,e?e.concat(m):m):u.apply(d,m)}return t===1?d:$.uniqueSort(d)}function bk(a,b,e,g,h){a=a.replace(H,"$1");var i,k,l,m,n,o,p,q,r,s,v=bc(a,b,h),w=b.nodeType;if(S.POS.test(a))return bj(v,b,e,g);if(g)i=t.call(g,0);else if(v.length===1){if((o=t.call(v[0],0)).length>2&&(p=o[0]).part==="ID"&&w===9&&!h&&f.relative[o[1].part]){b=f.find.ID(p.captures[0].replace(R,""),b,h)[0];if(!b)return e;a=a.slice(o.shift().string.length)}r=(v=N.exec(o[0].string))&&!v.index&&b.parentNode||b,q="";for(n=o.length-1;n>=0;n--){p=o[n],s=p.part,q=p.string+q;if(f.relative[s])break;if(f.order.test(s)){i=f.find[s](p.captures[0].replace(R,""),r,h);if(i==null)continue;a=a.slice(0,a.length-q.length)+q.replace(S[s],""),a||u.apply(e,t.call(i,0));break}}}if(a){k=j(a,b,h),c=k.dirruns++,i==null&&(i=f.find.TAG("*",N.test(a)&&b.parentNode||b));for(n=0;m=i[n];n++)d=k.runs++,k(m)&&e.push(m)}return e}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=a.document,r=q.documentElement,s=0,t=[].slice,u=[].push,v=function(a,b){return a[o]=b||!0,a},w=function(){var a={},b=[];return v(function(c,d){return b.push(c)>f.cacheLength&&delete a[b.shift()],a[c]=d},a)},x=w(),y=w(),z=w(),A="[\\x20\\t\\r\\n\\f]",B="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",C=B.replace("w","w#"),D="([*^$|!~]?=)",E="\\["+A+"*("+B+")"+A+"*(?:"+D+A+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+C+")|)|)"+A+"*\\]",F=":("+B+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+E+")|[^:]|\\\\.)*|.*))\\)|)",G=":(nth|eq|gt|lt|first|last|even|odd)(?:\\(((?:-\\d)?\\d*)\\)|)(?=[^-]|$)",H=new RegExp("^"+A+"+|((?:^|[^\\\\])(?:\\\\.)*)"+A+"+$","g"),I=new RegExp("^"+A+"*,"+A+"*"),J=new RegExp("^"+A+"*([\\x20\\t\\r\\n\\f>+~])"+A+"*"),K=new RegExp(F),L=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,M=/^:not/,N=/[\x20\t\r\n\f]*[+~]/,O=/:not\($/,P=/h\d/i,Q=/input|select|textarea|button/i,R=/\\(?!\\)/g,S={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),NAME:new RegExp("^\\[name=['\"]?("+B+")['\"]?\\]"),TAG:new RegExp("^("+B.replace("w","w*")+")"),ATTR:new RegExp("^"+E),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+A+"*(even|odd|(([+-]|)(\\d*)n|)"+A+"*(?:([+-]|)"+A+"*(\\d+)|))"+A+"*\\)|)","i"),POS:new RegExp(G,"ig"),needsContext:new RegExp("^"+A+"*[>+~]|"+G,"i")},T=function(a){var b=q.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},U=T(function(a){return a.appendChild(q.createComment("")),!a.getElementsByTagName("*").length}),V=T(function(a){return a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),W=T(function(a){a.innerHTML="";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),X=T(function(a){return a.innerHTML="",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),Y=T(function(a){a.id=o+0,a.innerHTML="
    ",r.insertBefore(a,r.firstChild);var b=q.getElementsByName&&q.getElementsByName(o).length===2+q.getElementsByName(o+0).length;return e=!q.getElementById(o),r.removeChild(a),b});try{t.call(r.childNodes,0)[0].nodeType}catch(Z){t=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}$.matches=function(a,b){return $(a,null,null,b)},$.matchesSelector=function(a,b){return $(b,null,null,[a]).length>0},g=$.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=g(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=g(b);return c},h=$.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},i=$.contains=r.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:r.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},$.attr=function(a,b){var c,d=h(a);return d||(b=b.toLowerCase()),f.attrHandle[b]?f.attrHandle[b](a):W||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},f=$.selectors={cacheLength:50,createPseudo:v,match:S,order:new RegExp("ID|TAG"+(Y?"|NAME":"")+(X?"|CLASS":"")),attrHandle:V?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:e?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:U?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(R,""),a[3]=(a[4]||a[5]||"").replace(R,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||$.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&$.error(a[0]),a},PSEUDO:function(a,b,c){var d,e;if(S.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(d=a[4])K.test(d)&&(e=bc(d,b,c,!0))&&(e=d.indexOf(")",d.length-e)-d.length)&&(d=d.slice(0,e),a[0]=a[0].slice(0,e)),a[2]=d;return a.slice(0,3)}},filter:{ID:e?function(a){return a=a.replace(R,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(R,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(R,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=x[o][a];return b||(b=x(a,new RegExp("(^|"+A+")"+a+"("+A+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=$.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return $.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=s++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[o]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[o]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e,g=f.pseudos[a]||f.pseudos[a.toLowerCase()];return g||$.error("unsupported pseudo: "+a),g[o]?g(b,c,d):g.length>1?(e=[a,a,"",b],function(a){return g(a,0,e)}):g}},pseudos:{not:v(function(a,b,c){var d=j(a.replace(H,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!f.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:v(function(a){return function(b){return(b.textContent||b.innerText||g(b)).indexOf(a)>-1}}),has:v(function(a){return function(b){return $(a,b).length>0}}),header:function(a){return P.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:_("radio"),checkbox:_("checkbox"),file:_("file"),password:_("password"),image:_("image"),submit:ba("submit"),reset:ba("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return Q.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e",a.querySelectorAll("[selected]").length||e.push("\\["+A+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="

    ",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+A+"*(?:\"\"|'')"),a.innerHTML="",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bk=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return u.apply(f,t.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j,k,l,m=d.getAttribute("id"),n=m||o,p=N.test(a)&&d.parentNode||d;m?n=n.replace(c,"\\$&"):d.setAttribute("id",n),j=bc(a,d,h),n="[id='"+n+"']";for(k=0,l=j.length;k0})}(),f.setFilters.nth=f.setFilters.eq,f.filters=f.pseudos,$.attr=p.attr,p.find=$,p.expr=$.selectors,p.expr[":"]=p.expr.pseudos,p.unique=$.uniqueSort,p.text=$.getText,p.isXMLDoc=$.isXML,p.contains=$.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b0)for(e=d;e=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*\s*$/g,bz={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X
    ","
    "]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1>");try{for(;d1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]===""&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{cj=f.href}catch(cy){cj=e.createElement("a"),cj.href="",cj=cj.href}ck=ct.exec(cj.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("
    ").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:cj,isLocal:cn.test(ck[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,ck[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==ck[1]&&i[2]==ck[2]&&(i[3]||(i[1]==="http:"?80:443))==(ck[3]||(ck[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cQ.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/resources/library/applications/ColorPicker.wgt/js/jquery.js b/resources/library/applications/ColorPicker.wgt/js/jquery.js new file mode 100644 index 0000000..423fd77 --- /dev/null +++ b/resources/library/applications/ColorPicker.wgt/js/jquery.js @@ -0,0 +1,4376 @@ +/*! + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){ + +var + // Will speed up references to window, and allows munging its name. + window = this, + // Will speed up references to undefined, and allows munging its name. + undefined, + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + // Map over the $ in case of overwrite + _$ = window.$, + + jQuery = window.jQuery = window.$ = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context ); + }, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector + isSimple = /^.[^:#\[\.,]*$/; + +jQuery.fn = jQuery.prototype = { + init: function( selector, context ) { + // Make sure that a selection was provided + selector = selector || document; + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this[0] = selector; + this.length = 1; + this.context = selector; + return this; + } + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + var match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) + selector = jQuery.clean( [ match[1] ], context ); + + // HANDLE: $("#id") + else { + var elem = document.getElementById( match[3] ); + + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem && elem.id != match[3] ) + return jQuery().find( selector ); + + // Otherwise, we inject the element directly into the jQuery object + var ret = jQuery( elem || [] ); + ret.context = document; + ret.selector = selector; + return ret; + } + + // HANDLE: $(expr, [context]) + // (which is just equivalent to: $(content).find(expr) + } else + return jQuery( context ).find( selector ); + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) + return jQuery( document ).ready( selector ); + + // Make sure that old selector state is passed along + if ( selector.selector && selector.context ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return this.setArray(jQuery.isArray( selector ) ? + selector : + jQuery.makeArray(selector)); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.3.2", + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num === undefined ? + + // Return a 'clean' array + Array.prototype.slice.call( this ) : + + // Return just the object + this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = jQuery( elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) + ret.selector = this.selector + (this.selector ? " " : "") + selector; + else if ( name ) + ret.selector = this.selector + "." + name + "(" + selector + ")"; + + // Return the newly-formed element set + return ret; + }, + + // Force the current matched set of elements to become + // the specified array of elements (destroying the stack in the process) + // You should use pushStack() in order to do this, but maintain the stack + setArray: function( elems ) { + // Resetting the length to 0, then using the native Array push + // is a super-fast way to populate an object with array-like properties + this.length = 0; + Array.prototype.push.apply( this, elems ); + + return this; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); + }, + + attr: function( name, value, type ) { + var options = name; + + // Look for the case where we're accessing a style value + if ( typeof name === "string" ) + if ( value === undefined ) + return this[0] && jQuery[ type || "attr" ]( this[0], name ); + + else { + options = {}; + options[ name ] = value; + } + + // Check to see if we're setting style values + return this.each(function(i){ + // Set all the styles + for ( name in options ) + jQuery.attr( + type ? + this.style : + this, + name, jQuery.prop( this, options[ name ], type, i, name ) + ); + }); + }, + + css: function( key, value ) { + // ignore negative width and height values + if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) + value = undefined; + return this.attr( key, value, "curCSS" ); + }, + + text: function( text ) { + if ( typeof text !== "object" && text != null ) + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + + var ret = ""; + + jQuery.each( text || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + ret += this.nodeType != 1 ? + this.nodeValue : + jQuery.fn.text( [ this ] ); + }); + }); + + return ret; + }, + + wrapAll: function( html ) { + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).clone(); + + if ( this[0].parentNode ) + wrap.insertBefore( this[0] ); + + wrap.map(function(){ + var elem = this; + + while ( elem.firstChild ) + elem = elem.firstChild; + + return elem; + }).append(this); + } + + return this; + }, + + wrapInner: function( html ) { + return this.each(function(){ + jQuery( this ).contents().wrapAll( html ); + }); + }, + + wrap: function( html ) { + return this.each(function(){ + jQuery( this ).wrapAll( html ); + }); + }, + + append: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.appendChild( elem ); + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.insertBefore( elem, this.firstChild ); + }); + }, + + before: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this ); + }); + }, + + after: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + }, + + end: function() { + return this.prevObject || jQuery( [] ); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: [].push, + sort: [].sort, + splice: [].splice, + + find: function( selector ) { + if ( this.length === 1 ) { + var ret = this.pushStack( [], "find", selector ); + ret.length = 0; + jQuery.find( selector, this[0], ret ); + return ret; + } else { + return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ + return jQuery.find( selector, elem ); + })), "find", selector ); + } + }, + + clone: function( events ) { + // Do the clone + var ret = this.map(function(){ + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var html = this.outerHTML; + if ( !html ) { + var div = this.ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } + + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; + } else + return this.cloneNode(true); + }); + + // Copy the events from the original to the clone + if ( events === true ) { + var orig = this.find("*").andSelf(), i = 0; + + ret.find("*").andSelf().each(function(){ + if ( this.nodeName !== orig[i].nodeName ) + return; + + var events = jQuery.data( orig[i], "events" ); + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + } + } + + i++; + }); + } + + // Return the cloned set + return ret; + }, + + filter: function( selector ) { + return this.pushStack( + jQuery.isFunction( selector ) && + jQuery.grep(this, function(elem, i){ + return selector.call( elem, i ); + }) || + + jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ + return elem.nodeType === 1; + }) ), "filter", selector ); + }, + + closest: function( selector ) { + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, + closer = 0; + + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { + jQuery.data(cur, "closest", closer); + return cur; + } + cur = cur.parentNode; + closer++; + } + }); + }, + + not: function( selector ) { + if ( typeof selector === "string" ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); + else + selector = jQuery.multiFilter( selector, this ); + + var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; + return this.filter(function() { + return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; + }); + }, + + add: function( selector ) { + return this.pushStack( jQuery.unique( jQuery.merge( + this.get(), + typeof selector === "string" ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); + }, + + is: function( selector ) { + return !!selector && jQuery.multiFilter( selector, this ).length > 0; + }, + + hasClass: function( selector ) { + return !!selector && this.is( "." + selector ); + }, + + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; + + if ( elem ) { + if( jQuery.nodeName( elem, 'option' ) ) + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type == "select-one"; + + // Nothing was selected + if ( index < 0 ) + return null; + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) + return value; + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(/\r/g, ""); + + } + + return undefined; + } + + if ( typeof value === "number" ) + value += ''; + + return this.each(function(){ + if ( this.nodeType != 1 ) + return; + + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); + + else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(value); + + jQuery( "option", this ).each(function(){ + this.selected = (jQuery.inArray( this.value, values ) >= 0 || + jQuery.inArray( this.text, values ) >= 0); + }); + + if ( !values.length ) + this.selectedIndex = -1; + + } else + this.value = value; + }); + }, + + html: function( value ) { + return value === undefined ? + (this[0] ? + this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : + null) : + this.empty().append( value ); + }, + + replaceWith: function( value ) { + return this.after( value ).remove(); + }, + + eq: function( i ) { + return this.slice( i, +i + 1 ); + }, + + slice: function() { + return this.pushStack( Array.prototype.slice.apply( this, arguments ), + "slice", Array.prototype.slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function(elem, i){ + return callback.call( elem, i, elem ); + })); + }, + + andSelf: function() { + return this.add( this.prevObject ); + }, + + domManip: function( args, table, callback ) { + if ( this[0] ) { + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), + first = fragment.firstChild; + + if ( first ) + for ( var i = 0, l = this.length; i < l; i++ ) + callback.call( root(this[i], first), this.length > 1 || i > 0 ? + fragment.cloneNode(true) : fragment ); + + if ( scripts ) + jQuery.each( scripts, evalScript ); + } + + return this; + + function root( elem, cur ) { + return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; + } + } +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +function evalScript( i, elem ) { + if ( elem.src ) + jQuery.ajax({ + url: elem.src, + async: false, + dataType: "script" + }); + + else + jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + + if ( elem.parentNode ) + elem.parentNode.removeChild( elem ); +} + +function now(){ + return +new Date; +} + +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) + target = {}; + + // extend jQuery itself if only one argument is passed + if ( length == i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) + // Extend the base object + for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) + continue; + + // Recurse if we're merging object values + if ( deep && copy && typeof copy === "object" && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, + // Never move original objects, clone them + src || ( copy.length != null ? [ ] : { } ) + , copy ); + + // Don't bring in undefined values + else if ( copy !== undefined ) + target[ name ] = copy; + + } + + // Return the modified object + return target; +}; + +// exclude the following css properties to add px +var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + // cache defaultView + defaultView = document.defaultView || {}, + toString = Object.prototype.toString; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) + window.jQuery = _jQuery; + + return jQuery; + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; + }, + + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; + }, + + // check if an element is in a (or is an) XML document + isXMLDoc: function( elem ) { + return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || + !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); + }, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && /\S/.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.getElementsByTagName("head")[0] || document.documentElement, + script = document.createElement("script"); + + script.type = "text/javascript"; + if ( jQuery.support.scriptEval ) + script.appendChild( document.createTextNode( data ) ); + else + script.text = data; + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, length = object.length; + + if ( args ) { + if ( length === undefined ) { + for ( name in object ) + if ( callback.apply( object[ name ], args ) === false ) + break; + } else + for ( ; i < length; ) + if ( callback.apply( object[ i++ ], args ) === false ) + break; + + // A special, fast, case for the most common use of each + } else { + if ( length === undefined ) { + for ( name in object ) + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + } + + return object; + }, + + prop: function( elem, value, type, i, name ) { + // Handle executable functions + if ( jQuery.isFunction( value ) ) + value = value.call( elem, i ); + + // Handle passing in a number to a CSS property + return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? + value + "px" : + value; + }, + + className: { + // internal only, use addClass("class") + add: function( elem, classNames ) { + jQuery.each((classNames || "").split(/\s+/), function(i, className){ + if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) + elem.className += (elem.className ? " " : "") + className; + }); + }, + + // internal only, use removeClass("class") + remove: function( elem, classNames ) { + if (elem.nodeType == 1) + elem.className = classNames !== undefined ? + jQuery.grep(elem.className.split(/\s+/), function(className){ + return !jQuery.className.has( classNames, className ); + }).join(" ") : + ""; + }, + + // internal only, use hasClass("class") + has: function( elem, className ) { + return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + } + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) + elem.style[ name ] = old[ name ]; + }, + + css: function( elem, name, force, extra ) { + if ( name == "width" || name == "height" ) { + var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; + + function getWH() { + val = name == "width" ? elem.offsetWidth : elem.offsetHeight; + + if ( extra === "border" ) + return; + + jQuery.each( which, function() { + if ( !extra ) + val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + if ( extra === "margin" ) + val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; + else + val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + }); + } + + if ( elem.offsetWidth !== 0 ) + getWH(); + else + jQuery.swap( elem, props, getWH ); + + return Math.max(0, Math.round(val)); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style; + + // We need to handle opacity special in IE + if ( name == "opacity" && !jQuery.support.opacity ) { + ret = jQuery.attr( style, "opacity" ); + + return ret == "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( name.match( /float/i ) ) + name = styleFloat; + + if ( !force && style && style[ name ] ) + ret = style[ name ]; + + else if ( defaultView.getComputedStyle ) { + + // Only "float" is needed here + if ( name.match( /float/i ) ) + name = "float"; + + name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + + var computedStyle = defaultView.getComputedStyle( elem, null ); + + if ( computedStyle ) + ret = computedStyle.getPropertyValue( name ); + + // We should always get a number back from opacity + if ( name == "opacity" && ret == "" ) + ret = "1"; + + } else if ( elem.currentStyle ) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = ret || 0; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } + + return ret; + }, + + clean: function( elems, context, fragment ) { + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + + var ret = [], scripts = [], div = context.createElement("div"); + + jQuery.each(elems, function(i, elem){ + if ( typeof elem === "number" ) + elem += ''; + + if ( !elem ) + return; + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + all : + front + ">"; + }); + + // Trim whitespace, otherwise indexOf won't work as expected + var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); + + var wrap = + // option or optgroup + !tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + [ 1, "
    ", "
    " ] || + + !tags.indexOf("", "" ] || + + // matched above + (!tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + // IE can't serialize and + + + + + + + + + + +
    + +
    + + +
    + + + + + North America + Eurasia + South America + Africa + Oceania + + + + + Asie + AL + DE + AD + AM + AT + AZ + BE + BY + BA + BG + CY + HR + DK + ES + EE + FI + FR + GE + EL + HU + IE + IS + IT + LV + LI + LT + LU + MK + MT + MD + MC + ME + NO + NL + PL + PT + CZ + RO + UK + SM + RS + SK + SI + SE + CH + TR + UA + VA + + + + + MA + DZ + TN + LY + EG + MR + ML + NE + TD + SD + ER + DJ + ET + SO + KE + UG + CD + CF + CM + NG + BJ + TG + GH + CI + BF + LR + SL + GN + GW + SN + GM + RW + BI + CG + GA + GQ + TZ + MW + ZM + AO + MZ + ZW + BW + NA + ZA + LS + SZ + MG + + + + + AR + CL + UY + PY + BO + BR + PE + EC + CO + VE + GY + SR + GF + + + + + CA + GL + US + MX + CU + HT + DO + JM + BS + GT + BZ + SV + HN + NI + CR + PA + + + + + AU + NZ + PG + ID + SB + VU + NC + + + + + Europe + AF + BH + BD + BT + BN + KH + TL + IN + ID + IR + IQ + IL + JP + JO + KW + KG + LA + LB + MY + MV + MN + MM + NP + KP + KR + OM + PK + QA + SA + SG + LK + SY + TJ + TH + CN + PH + AE + TM + UZ + VN + YE + KZ + RU + +
    + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    + + +
    +

    +
    + + +
    +

    + + + + + +
    +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +

    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    + Namibia
    + Capital city: Windhoec
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    + Indonesia
    + Capital city: Jakarta
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + + + diff --git a/resources/library/applications/GeoInfo.wgt/config.xml b/resources/library/applications/GeoInfo.wgt/config.xml new file mode 100644 index 0000000..2bf961c --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/config.xml @@ -0,0 +1,9 @@ + + + GeoInfo + + diff --git a/resources/library/applications/GeoInfo.wgt/css/GeoInfo.css b/resources/library/applications/GeoInfo.wgt/css/GeoInfo.css new file mode 100644 index 0000000..a6129b2 --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/css/GeoInfo.css @@ -0,0 +1,158 @@ +body { + background-color: white; +} + +.styleDiv +{ + height:250px; + overflow:auto; + display:none; + font-size:11px; + font-family:Arial, "Times New Roman", Sans-serif; + border-left:solid 2px grey; + -moz-border-radius-topright: 1em; + -moz-border-radius-bottomright:1em; +} + +.question +{ + position:absolute; + top:320px; + left:13px; + z-index:4; +} + +.comparer +{ + margin:auto; + font-family:Arial, "Times New Roman", Sans-serif; +} + +#souris +{ + display:none; +} + +#coords +{ + display:none; +} + +.curseur +{ + cursor:pointer; +} + +.carteMonde1 +{ + border-style:solid; + border-width:3px; + height:332px; + width:654px; + border-color: black; +} + +.carte +{ + position:absolute; + top:11px; + left:11px; + height:332px; + width:654px; + display: none; + opacity:0; + z-index:1; +} + +.retour +{ + position:absolute; + top:13px; + left:13px; + width:100px; + height:50.5px; + opacity:0; + z-index:2; + border: 1px black solid; + display: none; + cursor:pointer; +} + +#carteRetour +{ + width:100%; + height: 100%; +} + +.texte +{ + position:absolute; + top:300px; + left:0px; + width:654px; +} + +#description +{ + font-size:18px; + text-align:center; +} + +.infoPays +{ + position:absolute; + border:1px black solid; + background-color:rgba(150,150,150,0.5); + display:none; + z-index:2; + padding:4px; +} + +.infoSupp +{ + position:absolute; + top:344px; + border:1px black solid; + width:300px; + height:0px; + overflow:scroll; +} + +#infoSupp2 +{ + position:absolute; + top:344px; + left:320px; +} + +.nomPays +{ + font-weight:bold; + color:black; +} + +.capitalePays +{ + color:white; +} + +.cacher +{ + display:none; +} + +.drapeaux +{ + height:40px; +} + +.customCursor{ + position: absolute; + top: -3px; + left: -38px; + border: none; + width: 20px; + height: 20px; + background-image: url(../images/cursor.png); + background-repeat: no-repeat; +} \ No newline at end of file diff --git a/resources/library/applications/GeoInfo.wgt/gpl-3.0.txt b/resources/library/applications/GeoInfo.wgt/gpl-3.0.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/resources/library/applications/GeoInfo.wgt/icon.png b/resources/library/applications/GeoInfo.wgt/icon.png new file mode 100644 index 0000000..b66223b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/icon.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Afrique.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Afrique.bmp new file mode 100644 index 0000000..1edcc29 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Afrique.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueNord.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueNord.bmp new file mode 100644 index 0000000..109a78c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueNord.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueSud.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueSud.bmp new file mode 100644 index 0000000..5b4b8ad Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/AmeriqueSud.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Asie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Asie.bmp new file mode 100644 index 0000000..06fdcdc Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Asie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_1.png b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_1.png new file mode 100644 index 0000000..ec12894 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_1.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Afrique.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Afrique.bmp new file mode 100644 index 0000000..dfd00f3 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Afrique.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueNord.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueNord.bmp new file mode 100644 index 0000000..78e0968 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueNord.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueSud.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueSud.bmp new file mode 100644 index 0000000..a96bca9 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_AmeriqueSud.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Eurasie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Eurasie.bmp new file mode 100644 index 0000000..b1f4c11 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Eurasie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Oceanie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Oceanie.bmp new file mode 100644 index 0000000..6e7cf91 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Carte_Monde_Oceanie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie.bmp new file mode 100644 index 0000000..d8b91da Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie2.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie2.bmp new file mode 100644 index 0000000..4b6b93c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Eurasie2.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Europe.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Europe.bmp new file mode 100644 index 0000000..c766e44 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Europe.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuest.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuest.bmp new file mode 100644 index 0000000..d1e7713 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuest.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuestAsie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuestAsie.bmp new file mode 100644 index 0000000..c7e6f85 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/EuropeOuestAsie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Cartes/Oceanie.bmp b/resources/library/applications/GeoInfo.wgt/images/Cartes/Oceanie.bmp new file mode 100644 index 0000000..0f0277f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Cartes/Oceanie.bmp differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Algeria.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Algeria.png new file mode 100644 index 0000000..ef6919a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Algeria.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Angola.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Angola.png new file mode 100644 index 0000000..c869fc2 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Angola.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Benin.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Benin.png new file mode 100644 index 0000000..cf60f60 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Benin.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Botswana.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Botswana.png new file mode 100644 index 0000000..aa42bcc Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Botswana.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burkina_Faso.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burkina_Faso.png new file mode 100644 index 0000000..fd4270f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burkina_Faso.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burundi.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burundi.png new file mode 100644 index 0000000..14a03e3 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Burundi.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cameroon.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cameroon.png new file mode 100644 index 0000000..c9cc419 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cameroon.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Chad.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Chad.png new file mode 100644 index 0000000..a4934dc Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Chad.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cote_d'Ivoire.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cote_d'Ivoire.png new file mode 100644 index 0000000..5da3362 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Cote_d'Ivoire.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Djibouti.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Djibouti.png new file mode 100644 index 0000000..595e835 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Djibouti.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Egypt.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Egypt.png new file mode 100644 index 0000000..724dcdc Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Egypt.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Equatorial_Guinea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Equatorial_Guinea.png new file mode 100644 index 0000000..6d65e7a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Equatorial_Guinea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Eritrea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Eritrea.png new file mode 100644 index 0000000..906c4ac Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Eritrea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ethiopia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ethiopia.png new file mode 100644 index 0000000..be3fb9f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ethiopia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Gabon.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Gabon.png new file mode 100644 index 0000000..62ae83a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Gabon.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ghana.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ghana.png new file mode 100644 index 0000000..4a16ab9 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Ghana.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea-Bissau.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea-Bissau.png new file mode 100644 index 0000000..411f49b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea-Bissau.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea.png new file mode 100644 index 0000000..7f21aa1 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Guinea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Kenya.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Kenya.png new file mode 100644 index 0000000..a62356d Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Kenya.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Lesotho.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Lesotho.png new file mode 100644 index 0000000..613380c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Lesotho.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Liberia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Liberia.png new file mode 100644 index 0000000..b32431d Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Liberia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Libya.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Libya.png new file mode 100644 index 0000000..bfb23e4 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Libya.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Madagascar.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Madagascar.png new file mode 100644 index 0000000..0efe863 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Madagascar.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Malawi.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Malawi.png new file mode 100644 index 0000000..bf6d849 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Malawi.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mali.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mali.png new file mode 100644 index 0000000..a36a6f7 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mali.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mauritania.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mauritania.png new file mode 100644 index 0000000..5965bce Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mauritania.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Morocco.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Morocco.png new file mode 100644 index 0000000..e7eeb5c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Morocco.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mozambique.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mozambique.png new file mode 100644 index 0000000..b03533e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Mozambique.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Namibia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Namibia.png new file mode 100644 index 0000000..c4def54 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Namibia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Niger.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Niger.png new file mode 100644 index 0000000..d30bdf4 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Niger.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Nigeria.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Nigeria.png new file mode 100644 index 0000000..066a4c3 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Nigeria.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Rwanda.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Rwanda.png new file mode 100644 index 0000000..bf22384 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Rwanda.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Senegal.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Senegal.png new file mode 100644 index 0000000..79dee27 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Senegal.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sierra_Leone.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sierra_Leone.png new file mode 100644 index 0000000..0c3c16d Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sierra_Leone.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Somalia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Somalia.png new file mode 100644 index 0000000..60347f8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Somalia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_South_Africa.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_South_Africa.png new file mode 100644 index 0000000..ece1893 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_South_Africa.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sudan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sudan.png new file mode 100644 index 0000000..fb590c2 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Sudan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Swaziland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Swaziland.png new file mode 100644 index 0000000..37504b8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Swaziland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tanzania.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tanzania.png new file mode 100644 index 0000000..5739507 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tanzania.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_The_Gambia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_The_Gambia.png new file mode 100644 index 0000000..32a30bd Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_The_Gambia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Togo.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Togo.png new file mode 100644 index 0000000..583c7eb Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Togo.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tunisia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tunisia.png new file mode 100644 index 0000000..e73c69d Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Tunisia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Uganda.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Uganda.png new file mode 100644 index 0000000..a7be3d8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Uganda.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zambia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zambia.png new file mode 100644 index 0000000..a6a8e30 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zambia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zimbabwe.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zimbabwe.png new file mode 100644 index 0000000..1d9a33f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_Zimbabwe.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Central_African_Republic.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Central_African_Republic.png new file mode 100644 index 0000000..c909f3c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Central_African_Republic.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Democratic_Republic_of_the_Congo.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Democratic_Republic_of_the_Congo.png new file mode 100644 index 0000000..b61e268 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Democratic_Republic_of_the_Congo.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Republic_of_the_Congo.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Republic_of_the_Congo.png new file mode 100644 index 0000000..3c5d13c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Afrique/Flag_of_the_Republic_of_the_Congo.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Belize.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Belize.png new file mode 100644 index 0000000..3280bfe Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Belize.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Canada.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Canada.png new file mode 100644 index 0000000..db25bfe Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Canada.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Costa_Rica.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Costa_Rica.png new file mode 100644 index 0000000..3b0fe49 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Costa_Rica.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Cuba.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Cuba.png new file mode 100644 index 0000000..223702a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Cuba.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_El_Salvador.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_El_Salvador.png new file mode 100644 index 0000000..571884b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_El_Salvador.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Greenland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Greenland.png new file mode 100644 index 0000000..2933186 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Greenland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Guatemala.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Guatemala.png new file mode 100644 index 0000000..77871e2 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Guatemala.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Haiti.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Haiti.png new file mode 100644 index 0000000..b45f5a1 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Haiti.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Honduras.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Honduras.png new file mode 100644 index 0000000..6383b0e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Honduras.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Jamaica.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Jamaica.png new file mode 100644 index 0000000..66cb7bf Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Jamaica.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Mexico.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Mexico.png new file mode 100644 index 0000000..43eb18e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Mexico.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Nicaragua.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Nicaragua.png new file mode 100644 index 0000000..bc1b362 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Nicaragua.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Panama.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Panama.png new file mode 100644 index 0000000..0846610 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_Panama.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Bahamas.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Bahamas.png new file mode 100644 index 0000000..e39a74a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Bahamas.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Dominican_Republic.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Dominican_Republic.png new file mode 100644 index 0000000..d50f8c0 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_Dominican_Republic.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_United_States.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_United_States.png new file mode 100644 index 0000000..cf946d7 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueNord/Flag_of_the_United_States.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Argentina.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Argentina.png new file mode 100644 index 0000000..5eeb5e0 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Argentina.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Bolivia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Bolivia.png new file mode 100644 index 0000000..ce3f8ea Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Bolivia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Brazil.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Brazil.png new file mode 100644 index 0000000..a5ba900 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Brazil.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Chile.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Chile.png new file mode 100644 index 0000000..5ab69d4 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Chile.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Colombia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Colombia.png new file mode 100644 index 0000000..2187734 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Colombia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Ecuador.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Ecuador.png new file mode 100644 index 0000000..94d756a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Ecuador.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_France.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_France.png new file mode 100644 index 0000000..96de323 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_France.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Guyana.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Guyana.png new file mode 100644 index 0000000..a8ebf39 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Guyana.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Paraguay.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Paraguay.png new file mode 100644 index 0000000..b5654eb Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Paraguay.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Peru.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Peru.png new file mode 100644 index 0000000..fba4e20 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Peru.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Suriname.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Suriname.png new file mode 100644 index 0000000..00aae8f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Suriname.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Uruguay.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Uruguay.png new file mode 100644 index 0000000..cbebbff Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Uruguay.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Venezuela.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Venezuela.png new file mode 100644 index 0000000..a023791 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/AmeriqueSud/Flag_of_Venezuela.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Afghanistan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Afghanistan.png new file mode 100644 index 0000000..8b32aa6 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Afghanistan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bahrain.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bahrain.png new file mode 100644 index 0000000..fda166b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bahrain.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bangladesh.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bangladesh.png new file mode 100644 index 0000000..d870e26 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bangladesh.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bhutan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bhutan.png new file mode 100644 index 0000000..b59ebbe Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Bhutan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Brunei.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Brunei.png new file mode 100644 index 0000000..f01569e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Brunei.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Cambodia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Cambodia.png new file mode 100644 index 0000000..245b273 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Cambodia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_East_Timor.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_East_Timor.png new file mode 100644 index 0000000..4b8ca8b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_East_Timor.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_India.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_India.png new file mode 100644 index 0000000..cc50dd8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_India.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Indonesia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Indonesia.png new file mode 100644 index 0000000..bcd1f63 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Indonesia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iran.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iran.png new file mode 100644 index 0000000..83e29c8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iran.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iraq.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iraq.png new file mode 100644 index 0000000..144c9e2 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Iraq.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Israel.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Israel.png new file mode 100644 index 0000000..a4658a1 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Israel.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Japan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Japan.png new file mode 100644 index 0000000..e4ea937 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Japan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Jordan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Jordan.png new file mode 100644 index 0000000..b2dfc3b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Jordan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kazakhstan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kazakhstan.png new file mode 100644 index 0000000..1dcc716 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kazakhstan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kuwait.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kuwait.png new file mode 100644 index 0000000..b1f49e6 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kuwait.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kyrgyzstan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kyrgyzstan.png new file mode 100644 index 0000000..d3c295b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Kyrgyzstan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Laos.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Laos.png new file mode 100644 index 0000000..e43fffa Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Laos.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Lebanon.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Lebanon.png new file mode 100644 index 0000000..7e2a48b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Lebanon.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Malaysia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Malaysia.png new file mode 100644 index 0000000..9594777 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Malaysia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Maldives.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Maldives.png new file mode 100644 index 0000000..4dd6608 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Maldives.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Mongolia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Mongolia.png new file mode 100644 index 0000000..e5091df Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Mongolia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Myanmar.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Myanmar.png new file mode 100644 index 0000000..e2cd529 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Myanmar.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Nepal.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Nepal.png new file mode 100644 index 0000000..33f6f01 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Nepal.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_North_Korea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_North_Korea.png new file mode 100644 index 0000000..b645aca Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_North_Korea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Oman.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Oman.png new file mode 100644 index 0000000..637198b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Oman.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Pakistan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Pakistan.png new file mode 100644 index 0000000..eecf574 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Pakistan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Qatar.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Qatar.png new file mode 100644 index 0000000..916e756 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Qatar.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Russia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Russia.png new file mode 100644 index 0000000..40acd10 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Russia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Saudi_Arabia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Saudi_Arabia.png new file mode 100644 index 0000000..15064bd Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Saudi_Arabia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Singapore.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Singapore.png new file mode 100644 index 0000000..6a0950f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Singapore.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_South_Korea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_South_Korea.png new file mode 100644 index 0000000..e9c91ee Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_South_Korea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Sri_Lanka.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Sri_Lanka.png new file mode 100644 index 0000000..f8fe52c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Sri_Lanka.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Syria.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Syria.png new file mode 100644 index 0000000..f9715a7 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Syria.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Tajikistan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Tajikistan.png new file mode 100644 index 0000000..cb7fc94 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Tajikistan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Thailand.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Thailand.png new file mode 100644 index 0000000..332c3ca Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Thailand.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Turkmenistan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Turkmenistan.png new file mode 100644 index 0000000..732a82a Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Turkmenistan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Uzbekistan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Uzbekistan.png new file mode 100644 index 0000000..f1c7434 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Uzbekistan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Vietnam.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Vietnam.png new file mode 100644 index 0000000..3e02b2e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Vietnam.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Yemen.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Yemen.png new file mode 100644 index 0000000..db54201 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_Yemen.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_People's_Republic_of_China.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_People's_Republic_of_China.png new file mode 100644 index 0000000..3ed465f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_People's_Republic_of_China.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_Philippines.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_Philippines.png new file mode 100644 index 0000000..82ee2fa Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_Philippines.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_United_Arab_Emirates.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_United_Arab_Emirates.png new file mode 100644 index 0000000..4059b67 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Asie/Flag_of_the_United_Arab_Emirates.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Albania.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Albania.png new file mode 100644 index 0000000..b32e298 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Albania.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Andorra.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Andorra.png new file mode 100644 index 0000000..4e0c636 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Andorra.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Armenia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Armenia.png new file mode 100644 index 0000000..dce693b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Armenia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Austria.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Austria.png new file mode 100644 index 0000000..b1dde03 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Austria.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Azerbaijan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Azerbaijan.png new file mode 100644 index 0000000..3d6ae43 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Azerbaijan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belarus.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belarus.png new file mode 100644 index 0000000..be88529 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belarus.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belgium.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belgium.png new file mode 100644 index 0000000..6bb24bf Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Belgium.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bosnia_and_Herzegovina.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bosnia_and_Herzegovina.png new file mode 100644 index 0000000..292db9f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bosnia_and_Herzegovina.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bulgaria.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bulgaria.png new file mode 100644 index 0000000..e30395f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Bulgaria.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Croatia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Croatia.png new file mode 100644 index 0000000..471f4d5 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Croatia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Cyprus.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Cyprus.png new file mode 100644 index 0000000..d4a8af0 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Cyprus.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Denmark.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Denmark.png new file mode 100644 index 0000000..e5d63d7 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Denmark.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Estonia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Estonia.png new file mode 100644 index 0000000..ec72ee7 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Estonia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Finland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Finland.png new file mode 100644 index 0000000..6e7d61c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Finland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_France.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_France.png new file mode 100644 index 0000000..96de323 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_France.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Georgia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Georgia.png new file mode 100644 index 0000000..4e23624 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Georgia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Germany.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Germany.png new file mode 100644 index 0000000..797f43e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Germany.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Greece.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Greece.png new file mode 100644 index 0000000..d7e35a8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Greece.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Hungary.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Hungary.png new file mode 100644 index 0000000..2116860 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Hungary.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Iceland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Iceland.png new file mode 100644 index 0000000..981e87c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Iceland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ireland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ireland.png new file mode 100644 index 0000000..d4b1f24 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ireland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Italy.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Italy.png new file mode 100644 index 0000000..de4b7ea Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Italy.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Kazakhstan.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Kazakhstan.png new file mode 100644 index 0000000..1dcc716 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Kazakhstan.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Latvia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Latvia.png new file mode 100644 index 0000000..d2fdb74 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Latvia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Liechtenstein.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Liechtenstein.png new file mode 100644 index 0000000..4fcbbd0 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Liechtenstein.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Lithuania.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Lithuania.png new file mode 100644 index 0000000..ad3700c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Lithuania.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Luxembourg.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Luxembourg.png new file mode 100644 index 0000000..40b4699 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Luxembourg.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Macedonia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Macedonia.png new file mode 100644 index 0000000..c62db0c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Macedonia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Malta.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Malta.png new file mode 100644 index 0000000..4629b93 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Malta.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Moldova.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Moldova.png new file mode 100644 index 0000000..15241b9 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Moldova.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Monaco.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Monaco.png new file mode 100644 index 0000000..560512f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Monaco.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Montenegro.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Montenegro.png new file mode 100644 index 0000000..2381d17 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Montenegro.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Norway.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Norway.png new file mode 100644 index 0000000..a5b0e2b Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Norway.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Poland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Poland.png new file mode 100644 index 0000000..2d3d825 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Poland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Portugal.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Portugal.png new file mode 100644 index 0000000..b7bc48d Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Portugal.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Romania.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Romania.png new file mode 100644 index 0000000..9297004 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Romania.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Russia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Russia.png new file mode 100644 index 0000000..40acd10 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Russia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_San_Marino.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_San_Marino.png new file mode 100644 index 0000000..1d3ab8e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_San_Marino.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Serbia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Serbia.png new file mode 100644 index 0000000..4cf7aa8 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Serbia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovakia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovakia.png new file mode 100644 index 0000000..f7b9741 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovakia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovenia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovenia.png new file mode 100644 index 0000000..9377c77 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Slovenia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Spain.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Spain.png new file mode 100644 index 0000000..431b515 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Spain.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Sweden.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Sweden.png new file mode 100644 index 0000000..0f74437 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Sweden.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Switzerland.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Switzerland.png new file mode 100644 index 0000000..6b092d9 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Switzerland.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Turkey.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Turkey.png new file mode 100644 index 0000000..7dc9c6f Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Turkey.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ukraine.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ukraine.png new file mode 100644 index 0000000..4680b42 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_Ukraine.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Czech_Republic.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Czech_Republic.png new file mode 100644 index 0000000..d211dc0 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Czech_Republic.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Netherlands.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Netherlands.png new file mode 100644 index 0000000..1bba3d4 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Netherlands.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_United_Kingdom.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_United_Kingdom.png new file mode 100644 index 0000000..551d81e Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_United_Kingdom.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Vatican_City.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Vatican_City.png new file mode 100644 index 0000000..886ecf4 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Europe/Flag_of_the_Vatican_City.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Australia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Australia.png new file mode 100644 index 0000000..389efde Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Australia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_France.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_France.png new file mode 100644 index 0000000..96de323 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_France.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Indonesia.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Indonesia.png new file mode 100644 index 0000000..bcd1f63 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Indonesia.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_New_Zealand.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_New_Zealand.png new file mode 100644 index 0000000..797181c Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_New_Zealand.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Papua_New_Guinea.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Papua_New_Guinea.png new file mode 100644 index 0000000..5e5bd11 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Papua_New_Guinea.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Vanuatu.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Vanuatu.png new file mode 100644 index 0000000..0d1f025 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_Vanuatu.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_the_Solomon_Islands.png b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_the_Solomon_Islands.png new file mode 100644 index 0000000..8b8e5b5 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/Drapeaux/Oceanie/Flag_of_the_Solomon_Islands.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/cursor.png b/resources/library/applications/GeoInfo.wgt/images/cursor.png new file mode 100644 index 0000000..78fc636 Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/cursor.png differ diff --git a/resources/library/applications/GeoInfo.wgt/images/question.jpg b/resources/library/applications/GeoInfo.wgt/images/question.jpg new file mode 100644 index 0000000..4cb26cd Binary files /dev/null and b/resources/library/applications/GeoInfo.wgt/images/question.jpg differ diff --git a/resources/library/applications/GeoInfo.wgt/js/GeoInfo.js b/resources/library/applications/GeoInfo.wgt/js/GeoInfo.js new file mode 100644 index 0000000..c044b67 --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/js/GeoInfo.js @@ -0,0 +1,274 @@ +/* + Script utilisé par GeoInfo. + + Copyright (C) 2010 Baptiste Sottas — Tous droits réservés. + + Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le + modifier suivant les termes de la “GNU General Public License” telle que + publiée par la Free Software Foundation : soit la version 3 de cette + licence, soit (à votre gré) toute version ultérieure. + + Ce programme est distribué dans l’espoir qu’il vous sera utile, mais SANS + AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ + ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale + Publique GNU pour plus de détails. + + Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec + ce programme ; si ce n’est pas le cas, consultez : + http://www.gnu.org/licenses + + baptiste.sottas@bluewin.ch +*/ + +// variables diverses +var coords = "" +var opacity = 0 +var divInfo = true; +var imageAfrique = ""; +var imageEurasie = ""; +var imageOceanie = ""; +var imageAmeriqueNord = ""; +var imageAmeriqueSud = ""; +var imageEurope = ""; +var imageEurope2 = ""; +var imageAsie2 = ""; + +var lang = ""; //locale language +if(window.sankore){ + try{ + lang = sankore.locale().substr(0,2); + sankoreLang[lang].europe; + } catch(e){ + lang = "en"; + } +} else + lang = "en"; + +// adresse du serveur +var url = "http://bapsot.dyndns.org/GeoInfo-GeoInfoServer/GeoInfoService"; + +// variables pour la gestion de la comparaison des pays +var currentInfo = 0; +var compareActive = false; + +// permet d'effacer le contenu des divs 2 à 5 si on ne désire pas comparer +function vide() +{ + // regarder si la case est cochée + compareActive = document.getElementById('compare').checked; + + // si elle ne l'est pas vider les divs 2 à 5 + if (!compareActive) + { + for (i = 2; i < 6; i++) + { + var element = document.getElementById("info" + i); + element.innerHTML = ""; + element.style.display = "none"; + } + + // remettre la grandeur initiale à la première div + document.getElementById("info1").style.width = 654 + 'px'; + + // initialiser le compteur + currentInfo = 1; + } +} + +// permet de créer et remplir les divs d'informations +function popupInfo(text) +{ + // regarder si on désire comparer les pays entre eux + compareActive = document.getElementById('compare').checked; + + // si oui mettre l'info dans une nouvelle div, autrement mettre dans la div 1 + if (compareActive) + currentInfo += 1; + else + currentInfo = 1; + + // max 5 comparaisons possibles, si plus on réécrit dans la dernière + if (currentInfo > 5) + currentInfo = 5; + + // obtenir la div à modifier + var info = document.getElementById("info" + currentInfo); + + // la rendre visible et mettre le texte + info.style.display = "block"; + info.innerHTML = text; + + // met la bonne grandeur à chaque div + for (i = 1; i <= currentInfo; i++) + document.getElementById("info" + i).style.width = (654/currentInfo) + 'px'; +} + +// affiche le text de l'erreur en cas de problème +function erreur(texteErreur) +{ + //alert(texteErreur); + sankore.showMessage(texteErreur); +} + +// permet d'appeller la fonction pour recevoir les statistiques du serveur +function recevoirStats() +{ + var pl = new SOAPClientParameters(); + + // appel de la fonction getInfos du serveur + SOAPClient.invoke(url, "getInfos", pl, true, recevoirStatsReponse); +} + +// permet de recevoir les statistiques du serveur et les afficher +function recevoirStatsReponse(resultat, soapResponse) +{ + var objDom = new XMLDoc(((new XMLSerializer()).serializeToString(soapResponse)), erreur); + + var objDomTree = objDom.docNode; + + // prepare le texte à afficher à partir de la réponse + var stats = ("Nombre d'accès total: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("accesTotal")[0].getText() + + "\n" + + "Dernier accès le: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("dernierAcces")[0].getText() + + "\n" + + "Adresse pour des questions/remarques: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("email")[0].getText() + + "\n" + + "Microinformations sous: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("twitter")[0].getText() + + "\n" + + "Version de l'application: " + objDomTree.getElements("env:Body")[0].getElements("ser:getInfosResponse")[0].getElements("GeoStats")[0].getElements("version")[0].getText()); + + //alert(stats); + sankore.showMessage(stats); +} + +// permet d'appeller la fonction pour recevoir les informations du pays +function recevoirPays(id) +{ + // prépare le paramètre avec l'id du pays + var pl = new SOAPClientParameters(); + pl.add("id",id); + + // appel de la fonction find du serveur + SOAPClient.invoke(url, "find", pl, true, recevoirPaysReponse); +} + +// permet de recevoir les informations du pays du serveur et les afficher +function recevoirPaysReponse(resultat, soapResponse) +{ + var objDom = new XMLDoc(((new XMLSerializer()).serializeToString(soapResponse)), erreur); + + var objDomTree = objDom.docNode; + + // prepare le texte à afficher à partir de la réponse + var informations = ("Pays: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("pays")[0].getText() + + "
    " + + "Nom: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nomPays")[0].getText() + + "
    " + + "Capitale: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("capitale")[0].getText() + + "
    " + + "Forme: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("forme")[0].getText() + + "
    " + + "Adjectif: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("adjectif")[0].getText() + + "
    " + + "Monnaie ISO: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieIso")[0].getText() + + "
    " + + "Monnaie: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaie")[0].getText() + + "
    " + + "Monnaie centime: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("monnaieSubDiv")[0].getText() + + "
    " + + "Plus grande ville: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("plusGrandeVille")[0].getText() + + "
    " + + "Nbr habitants: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("nbrHabitant")[0].getText() + + "
    " + + "Langues officielles: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("langueOfficielle")[0].getText() + + "
    " + + "Système gouvernemental: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("politique")[0].getText() + + "
    " + + "Remarques: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("remarques")[0].getText() + + "
    " + + "Devise: " + objDomTree.getElements("env:Body")[0].getElements("ser:findResponse")[0].getElements("GeoData")[0].getElements("devise")[0].getText()); + + // appelle la fonction popupInfo qui affiche les informations dans les divs + popupInfo(informations); +} + +// permet l'affichage de la description lors du passage de la souris +function writeText(txt) +{ + switch(txt){ + case "North America": + txt = sankoreLang[lang].north_america; + break; + case "Eurasia": + txt = sankoreLang[lang].eurasia; + break; + case "South America": + txt = sankoreLang[lang].south_america; + break; + case "Africa": + txt = sankoreLang[lang].africa; + break; + case "Oceania": + txt = sankoreLang[lang].oceania; + break; + default: + break; + } + document.getElementById("description").innerHTML = txt; +} + +// permet l'effaçage de la description lors du passage de la souris +function effaceTexte() +{ + document.getElementById("description").innerHTML = ""; +} + +// apparition de la div contenant une carte d'un continent + carte de retour +function apparition(carte) +{ + document.getElementById(carte).style.display = 'block' + i = setInterval('fondu("'+carte+'")', 25) + + document.getElementById("retour").style.display = 'block' + document.getElementById("retour").style.opacity = 1 +} + +// permet de recharger la page +function disparition() +{ + window.location.reload() +} + +// permet de faire apparaître la carte d'un continent en fondu +function fondu(carte) +{ + opacity = opacity + 0.05 + document.getElementById(carte).style.opacity = opacity; + + if (opacity > 1) + { + clearInterval(i) + } +} + +// permet de faire apparaître les infos du pays dans la petite fenêtre +function afficheInfoPays(pays) +{ + $("#" + pays + " .nomPays").html(sankoreLang[lang][pays].country); + $("#" + pays + " .capitalePays").html(sankoreLang[lang].capital + ": " + sankoreLang[lang][pays].city); + document.getElementById("infoPays").innerHTML = "
    " + document.getElementById(pays).innerHTML; +} + +// permet de cacher la petite fenêtre +function cacherInfoPays() +{ + document.getElementById("infoPays").style.display = 'none'; +} + +// permet à la petite fenêtre de suivre la souris +function deplacerInfo(event) +{ + document.getElementById("infoPays").style.display = 'block'; + document.getElementById("infoPays").style.top = event.clientY; + document.getElementById("infoPays").style.left = event.clientX+40; +} diff --git a/resources/library/applications/GeoInfo.wgt/js/jquery-1.6.2.min.js b/resources/library/applications/GeoInfo.wgt/js/jquery-1.6.2.min.js new file mode 100644 index 0000000..48590ec --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/js/jquery-1.6.2.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
    a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
    ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/resources/library/applications/GeoInfo.wgt/js/languages.js b/resources/library/applications/GeoInfo.wgt/js/languages.js new file mode 100644 index 0000000..cf938d1 --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/js/languages.js @@ -0,0 +1,2842 @@ +var sankoreLang = { + "en":{ + "capital":"Capital city", + "europe":"Europe", + "asia":"Asia", + "north_america":"North America", + "south_america":"South America", + "oceania":"Oceania", + "africa":"Africa", + "eurasia": "Eurasia", + "MA":{ + "city":"Rabat", + "country":"Morocco" + }, + "DZ":{ + "city":"Alger", + "country":"Algeria" + }, + "TN":{ + "city":"Tunis", + "country":"Tunisia" + }, + "LY":{ + "city":"Tripoli", + "country":"Libya" + }, + "EG":{ + "city":"Cairo", + "country":"Egypt" + }, + "Sahara_occidental":{ + "city":"", + "country":"Sahara occidental" + }, + "MR":{ + "city":"Nouakchott", + "country":"Mauritania" + }, + "ML":{ + "city":"Bamako", + "country":"Mali" + }, + "NE":{ + "city":"Niamey", + "country":"Niger" + }, + "TD":{ + "city":"N'Djamena", + "country":"Tchad" + }, + "SD":{ + "city":"Khartoum", + "country":"Sudan" + }, + "ER":{ + "city":"Asmara", + "country":"Eritrea" + }, + "DJ":{ + "city":"Djibouti", + "country":"Djibouti" + }, + "ET":{ + "city":"Addis-Ababa", + "country":"Ethiopia" + }, + "SO":{ + "city":"Mogadishu", + "country":"Somalia" + }, + "KE":{ + "city":"Nairobi", + "country":"Kenya" + }, + "UG":{ + "city":"Kampala", + "country":"Uganda" + }, + "CD":{ + "city":"Kinshasa", + "country":"Democratic Republic of Congo" + }, + "CF":{ + "city":"Bangui", + "country":"Central African Republic" + }, + "CM":{ + "city":"Yaounde", + "country":"Cameroon" + }, + "NG":{ + "city":"Abuja", + "country":"Nigeria" + }, + "BJ":{ + "city":"Porto-Novo", + "country":"Benin" + }, + "TG":{ + "city":"Lome", + "country":"Togo" + }, + "GH":{ + "city":"Accra", + "country":"Ghana" + }, + "CI":{ + "city":"Yamoussoukro", + "country":"Côte d'Ivoire" + }, + "BF":{ + "city":"Ouagadougou", + "country":"Burkina Faso" + }, + "LR":{ + "city":"Monrovia", + "country":"Liberia" + }, + "SL":{ + "city":"Freetown", + "country":"Sierra Leone" + }, + "GN":{ + "city":"Conakry", + "country":"Guinea" + }, + "GW":{ + "city":"Bissau", + "country":"Guinea-Bissau" + }, + "SN":{ + "city":"Dakar", + "country":"Senegal" + }, + "GM":{ + "city":"Banjul", + "country":"Gambia" + }, + "RW":{ + "city":"Kigali", + "country":"Rwanda" + }, + "BI":{ + "city":"Bujumbura", + "country":"Burundi" + }, + "CG":{ + "city":"Brazzaville", + "country":"Republic of Congo" + }, + "GA":{ + "city":"Libreville", + "country":"Gabon" + }, + "GQ":{ + "city":"Malabo", + "country":"Equatorial Guinea" + }, + "TZ":{ + "city":"Dodoma", + "country":"Tanzania" + }, + "MW":{ + "city":"Lilongwe", + "country":"Malawi" + }, + "ZM":{ + "city":"Lusaka", + "country":"Zambia" + }, + "AO":{ + "city":"Luanda", + "country":"Angola" + }, + "MZ":{ + "city":"Maputo", + "country":"Mozambique" + }, + "ZW":{ + "city":"Harare", + "country":"Zimbabwe" + }, + "BW":{ + "city":"Gaborone", + "country":"Botswana" + }, + "NA":{ + "city":"Windhoek", + "country":"Namibia" + }, + "ZA":{ + "city":"Pretoria", + "country":"South Africa" + }, + "LS":{ + "city":"Maseru", + "country":"Lesotho" + }, + "SZ":{ + "city":"Mbabane", + "country":"Swaziland" + }, + "MG":{ + "city":"Antananarivo", + "country":"Madagascar" + }, + "AR":{ + "city":"Buenos Aires", + "country":"Argentina" + }, + "CL":{ + "city":"Santiago", + "country":"Chile" + }, + "UY":{ + "city":"Montevideo", + "country":"Uruguay" + }, + "PY":{ + "city":"Asuncion", + "country":"Paraguay" + }, + "BO":{ + "city":"Sucre", + "country":"Bolivia" + }, + "BR":{ + "city":"Brasilia", + "country":"Brazil" + }, + "PE":{ + "city":"Lima", + "country":"Peru" + }, + "EC":{ + "city":"Quito", + "country":"Ecuador" + }, + "CO":{ + "city":"Bogota", + "country":"Colombia" + }, + "VE":{ + "city":"Caracas", + "country":"Venezuela" + }, + "GY":{ + "city":"Georgetown", + "country":"Guyana" + }, + "SR":{ + "city":"Paramaribo", + "country":"Suriname" + }, + "GF":{ + "city":"Cayenne", + "country":"French Guyana" + }, + "CA":{ + "city":"Ottawa", + "country":"Canada" + }, + "GL":{ + "city":"Nuuk", + "country":"Greenland" + }, + "US":{ + "city":"Washington", + "country":"United States of America" + }, + "MX":{ + "city":"Mexico city", + "country":"Mexico" + }, + "CU":{ + "city":"Havana", + "country":"Cuba" + }, + "HT":{ + "city":"Port-au-Prince", + "country":"Haiti" + }, + "DO":{ + "city":"Santo Domingo", + "country":"Dominican Republic" + }, + "JM":{ + "city":"Kingston", + "country":"Jamaica" + }, + "BS":{ + "city":"Nassau", + "country":"Bahamas" + }, + "GT":{ + "city":"Guatemala", + "country":"Guatemala" + }, + "BZ":{ + "city":"Belmopan", + "country":"Belize" + }, + "SV":{ + "city":"El Salvador", + "country":"San Salvador" + }, + "HN":{ + "city":"Tegucigalpa", + "country":"Honduras" + }, + "NI":{ + "city":"Managua", + "country":"Nicaragua" + }, + "CR":{ + "city":"San Jose", + "country":"Costa Rica" + }, + "PA":{ + "city":"Panama", + "country":"Panama" + }, + "AU":{ + "city":"Canberra", + "country":"Australia" + }, + "NZ":{ + "city":"Wellington", + "country":"New Zealand" + }, + "PG":{ + "city":"Port Moresby", + "country":"Papua New Guinea" + }, + "ID":{ + "city":"Jakarta", + "country":"Indonesia" + }, + "SB":{ + "city":"Honiara", + "country":"Solomon Islands" + }, + "VU":{ + "city":"Port-Vila", + "country":"Vanuatu" + }, + "NC":{ + "city":"Noumea", + "country":"New Caledonia" + }, + "AL":{ + "city":"Tirana", + "country":"Albania" + }, + "DE":{ + "city":"Berlin", + "country":"Germany" + }, + "AD":{ + "city":"Andorra la Vella", + "country":"Andorra" + }, + "AM":{ + "city":"Erevan", + "country":"Armenia" + }, + "AT":{ + "city":"Vienna", + "country":"Austria" + }, + "AZ":{ + "city":"Baku", + "country":"Azerbaijan" + }, + "BE":{ + "city":"Brussels", + "country":"Belgium" + }, + "BY":{ + "city":"Minsk", + "country":"Belarus" + }, + "BA":{ + "city":"Sarajevo", + "country":"Bosnia and Herzegovina" + }, + "BG":{ + "city":"Sofia", + "country":"Bulgaria" + }, + "CY":{ + "city":"Nicosia", + "country":"Cyprus" + }, + "HR":{ + "city":"Zagreb", + "country":"Croatia" + }, + "DK":{ + "city":"Copenhagen", + "country":"Denmark" + }, + "ES":{ + "city":"Madrid", + "country":"Spain" + }, + "EE":{ + "city":"Tallinn", + "country":"Estonia" + }, + "FI":{ + "city":"Helsinki", + "country":"Finland" + }, + "FR":{ + "city":"Paris", + "country":"France" + }, + "GE":{ + "city":"Tbilisi", + "country":"Georgia" + }, + "EL":{ + "city":"Athens", + "country":"Greece" + }, + "HU":{ + "city":"Budapest", + "country":"Hungary" + }, + "IE":{ + "city":"Dublin", + "country":"Ireland" + }, + "IS":{ + "city":"Reykjavik", + "country":"Iceland" + }, + "IT":{ + "city":"Rome", + "country":"Italy" + }, + "LV":{ + "city":"Riga", + "country":"Latvia" + }, + "LI":{ + "city":"Vaduz", + "country":"Liechtenstein" + }, + "LT":{ + "city":"Vilnius", + "country":"Lithuania" + }, + "LU":{ + "city":"Luxembourg", + "country":"Luxembourg" + }, + "MK":{ + "city":"Skopje", + "country":"Macedonia" + }, + "MT":{ + "city":"Valetta", + "country":"Malta" + }, + "MD":{ + "city":"Chisinau", + "country":"Moldova" + }, + "MC":{ + "city":"Monaco", + "country":"Monaco" + }, + "ME":{ + "city":"Podgorica", + "country":"Montenegro" + }, + "NO":{ + "city":"Oslo", + "country":"Norway" + }, + "NL":{ + "city":"Amsterdam", + "country":"Netherlands" + }, + "PL":{ + "city":"Warsaw", + "country":"Poland" + }, + "PT":{ + "city":"Lisbon", + "country":"Portugal" + }, + "CZ":{ + "city":"Prague", + "country":"Czech Republic" + }, + "RO":{ + "city":"Bucharest", + "country":"Romania" + }, + "UK":{ + "city":"London", + "country":"United Kingdom" + }, + "SM":{ + "city":"San Marino", + "country":"San Marino" + }, + "RS":{ + "city":"Belgrade", + "country":"Serbia" + }, + "SK":{ + "city":"Bratislava", + "country":"Slovakia" + }, + "SI":{ + "city":"Ljubljana", + "country":"Slovenia" + }, + "SE":{ + "city":"Stockholm", + "country":"Sweden" + }, + "CH":{ + "city":"Bern", + "country":"Switzerland" + }, + "TR":{ + "city":"Ankara", + "country":"Turkey" + }, + "UA":{ + "city":"Kiev", + "country":"Ukraine" + }, + "VA":{ + "city":"Vatican city", + "country":"Vatican" + }, + "AF":{ + "city":"Kabul", + "country":"Afghanistan" + }, + "SA":{ + "city":"Riyadh", + "country":"Saudi Arabia" + }, + "BH":{ + "city":"Manama", + "country":"Bahrain" + }, + "BD":{ + "city":"Dhaka", + "country":"Bangladesh" + }, + "BT":{ + "city":"Thimphu", + "country":"Bhutan" + }, + "BN":{ + "city":"Bandar Seri Begawan", + "country":"Brunei" + }, + "KH":{ + "city":"Phnom Penh", + "country":"Cambodia" + }, + "CN":{ + "city":"Beijing", + "country":"China" + }, + "KP":{ + "city":"Pyongyang", + "country":"North Korea" + }, + "KR":{ + "city":"Seoul", + "country":"South Korea" + }, + "AE":{ + "city":"Abu Dabi", + "country":"United Arab Emirates" + }, + "IN":{ + "city":"New Delhi", + "country":"India" + }, + "IR":{ + "city":"Tehran", + "country":"Iran" + }, + "IQ":{ + "city":"Baghdad", + "country":"Iraq" + }, + "IL":{ + "city":"Jerusalem", + "country":"Israel" + }, + "JP":{ + "city":"Tokyo", + "country":"Japan" + }, + "JO":{ + "city":"Amman", + "country":"Jordan" + }, + "KZ":{ + "city":"Astana", + "country":"Kazakhstan" + }, + "KG":{ + "city":"Bishkek", + "country":"Kyrgyzstan" + }, + "KW":{ + "city":"Kuwait", + "country":"Kuwait" + }, + "LA":{ + "city":"Vientiane", + "country":"Laos" + }, + "LB":{ + "city":"Beirut", + "country":"Lebanon" + }, + "MY":{ + "city":"Kuala Lumpur", + "country":"Malaysia" + }, + "MV":{ + "city":"Male", + "country":"Maldives" + }, + "MN":{ + "city":"Ulaanbaatar", + "country":"Mongolia" + }, + "MM":{ + "city":"Myanmar", + "country":"Burma" + }, + "NP":{ + "city":"Kathmandu", + "country":"Nepal" + }, + "OM":{ + "city":"Muscat", + "country":"Oman" + }, + "UZ":{ + "city":"Tashkent", + "country":"Uzbekistan" + }, + "PK":{ + "city":"Islamabad", + "country":"Pakistan" + }, + "PH":{ + "city":"Manila", + "country":"Philippines" + }, + "QA":{ + "city":"Doha", + "country":"Qatar" + }, + "RU":{ + "city":"Moscow", + "country":"Russia" + }, + "SG":{ + "city":"Singapore", + "country":"Singapore" + }, + "LK":{ + "city":"Colombo", + "country":"Sri Lanka" + }, + "SY":{ + "city":"Damascus", + "country":"Syria" + }, + "TJ":{ + "city":"Dushanbe", + "country":"Tajikistan" + }, + "TH":{ + "city":"Bangkok", + "country":"Thailand" + }, + "TL":{ + "city":"Dili", + "country":"East Timor" + }, + "TM":{ + "city":"Ashgabat", + "country":"Turkmenistan" + }, + "VN":{ + "city":"Hanoi", + "country":"Vietnam" + }, + "YE":{ + "city":"Sana'a", + "country":"Yemen" + } + }, + "ru":{ + "capital":"Столица", + "europe":"Европа", + "asia":"Азия", + "north_america":"Северная Америка", + "south_america":"Южная Америка", + "oceania":"Океания", + "africa":"Африка", + "eurasia": "Евразия", + "MA":{ + "city":"Рабат", + "country":"Морокко" + }, + "DZ":{ + "city":"Алжир", + "country":"Алжир" + }, + "TN":{ + "city":"Тунис", + "country":"Тунис" + }, + "LY":{ + "city":"Триполи", + "country":"Ливия" + }, + "EG":{ + "city":"Каир", + "country":"Египет" + }, + "Sahara_occidental":{ + "city":"", + "country":"Западная сахара" + }, + "MR":{ + "city":"Нуакшот", + "country":"Мавритания" + }, + "ML":{ + "city":"Бамако", + "country":"Мали" + }, + "NE":{ + "city":"Ниамей", + "country":"Нигер" + }, + "TD":{ + "city":"Нджамена", + "country":"Чад" + }, + "SD":{ + "city":"Хартум", + "country":"Судан" + }, + "ER":{ + "city":"Асмара", + "country":"Еритрея" + }, + "DJ":{ + "city":"Джибути", + "country":"Джибути" + }, + "ET":{ + "city":"Аддис Абеба", + "country":"Ефиопия" + }, + "SO":{ + "city":"Могадишо", + "country":"Сомали" + }, + "KE":{ + "city":"Найроби", + "country":"Кения" + }, + "UG":{ + "city":"Кампала", + "country":"Уганда" + }, + "CD":{ + "city":"Киншаса", + "country":"Демократическая республика Конго" + }, + "CF":{ + "city":"Бангуй", + "country":"Центральная африканская республика" + }, + "CM":{ + "city":"Яунда", + "country":"Камерун" + }, + "NG":{ + "city":"Абуджа", + "country":"Нигерия" + }, + "BJ":{ + "city":"Порто Ново", + "country":"Бенин" + }, + "TG":{ + "city":"Ломе", + "country":"Того" + }, + "GH":{ + "city":"Аккра", + "country":"Гана" + }, + "CI":{ + "city":"Ямусукро", + "country":"Кот-д'Ивуар" + }, + "BF":{ + "city":"Уагадугу", + "country":"Буркина Фасо" + }, + "LR":{ + "city":"Монравия", + "country":"Либерия" + }, + "SL":{ + "city":"Фритаун", + "country":"Сьерра Леоне" + }, + "GN":{ + "city":"Конакри", + "country":"Гвинея" + }, + "GW":{ + "city":"Биссау", + "country":"Гвинея-Биссау" + }, + "SN":{ + "city":"Дакар", + "country":"Сенегал" + }, + "GM":{ + "city":"Банжул", + "country":"Гамбия" + }, + "RW":{ + "city":"Кигали", + "country":"Руанда" + }, + "BI":{ + "city":"Бужумбура", + "country":"Бурунди" + }, + "CG":{ + "city":"Киншаса", + "country":"Республика Конго" + }, + "GA":{ + "city":"Либревиль", + "country":"Габон" + }, + "GQ":{ + "city":"Малабо", + "country":"Экваториальная Гвинея" + }, + "TZ":{ + "city":"Додома", + "country":"Танзания" + }, + "MW":{ + "city":"Лилонгве", + "country":"Малави" + }, + "ZM":{ + "city":"Лусака", + "country":"Замбия" + }, + "AO":{ + "city":"Луанда", + "country":"Ангола" + }, + "MZ":{ + "city":"Мапуто", + "country":"Мозамбик" + }, + "ZW":{ + "city":"Хараре", + "country":"Зимбабве" + }, + "BW":{ + "city":"Габороне", + "country":"Ботсвана" + }, + "NA":{ + "city":"Виндхук", + "country":"Намибия" + }, + "ZA":{ + "city":"Претория", + "country":"Южно-африканская республика" + }, + "LS":{ + "city":"Масеру", + "country":"Лесото" + }, + "SZ":{ + "city":"Мбабане", + "country":"Свазиленд" + }, + "MG":{ + "city":"Антананариву", + "country":"Мадагаскар" + }, + "AR":{ + "city":"Буэнос Айрес", + "country":"Аргентина" + }, + "CL":{ + "city":"Сантьяго", + "country":"Чили" + }, + "UY":{ + "city":"Монтевидео", + "country":"Уругвай" + }, + "PY":{ + "city":"Ассунсьон", + "country":"Парагвай" + }, + "BO":{ + "city":"Ла Пас", + "country":"Боливия" + }, + "BR":{ + "city":"Бразилиа", + "country":"Бразилия" + }, + "PE":{ + "city":"Лима", + "country":"Перу" + }, + "EC":{ + "city":"Кито", + "country":"Эквадор" + }, + "CO":{ + "city":"Богота", + "country":"Колумбия" + }, + "VE":{ + "city":"Каракас", + "country":"Венесуэла" + }, + "GY":{ + "city":"Джорджтаун", + "country":"Гайана" + }, + "SR":{ + "city":"Парамарибо", + "country":"Суринам" + }, + "GF":{ + "city":"Париж", + "country":"Французская Гайана" + }, + "CA":{ + "city":"Оттава", + "country":"Канада" + }, + "GL":{ + "city":"Нуук", + "country":"Гренландия" + }, + "US":{ + "city":"Вашингтон", + "country":"США" + }, + "MX":{ + "city":"Мехико", + "country":"Мексика" + }, + "CU":{ + "city":"Гавана", + "country":"Куба" + }, + "HT":{ + "city":"Рорт-о-Пренс", + "country":"Гаити" + }, + "DO":{ + "city":"Санто Доминго", + "country":"Доминиканская республика" + }, + "JM":{ + "city":"Кингстон", + "country":"Ямайка" + }, + "BS":{ + "city":"Нассау", + "country":"Багамы" + }, + "GT":{ + "city":"Guatemala", + "country":"Гватемала" + }, + "BZ":{ + "city":"Бельмопан", + "country":"Белиз" + }, + "SV":{ + "city":"Сальвадор", + "country":"Сальвадор" + }, + "HN":{ + "city":"Тегусигальпа", + "country":"Гондурас" + }, + "NI":{ + "city":"Манагуа", + "country":"Никарагуа" + }, + "CR":{ + "city":"Сан Хосе", + "country":"Коста-Рика" + }, + "PA":{ + "city":"Панама", + "country":"Панама" + }, + "AU":{ + "city":"Канберра", + "country":"Австралия" + }, + "NZ":{ + "city":"Веллингтон", + "country":"Новая Зеландия" + }, + "PG":{ + "city":"Порт Моресби", + "country":"Папуа Новая Гвинея" + }, + "ID":{ + "city":"Джакарта", + "country":"Индонезия" + }, + "SB":{ + "city":"Хониара", + "country":"Соломоновы острова" + }, + "VU":{ + "city":"Порт-Вила", + "country":"Вануату" + }, + "NC":{ + "city":"Париж", + "country":"Новая Каледония" + }, + "AL":{ + "city":"Тирана", + "country":"Албания" + }, + "DE":{ + "city":"Верлин", + "country":"Германия" + }, + "AD":{ + "city":"Андорра ла Велья", + "country":"Андорра" + }, + "AM":{ + "city":"Ереван", + "country":"Армения" + }, + "AT":{ + "city":"Вена", + "country":"Австрия" + }, + "AZ":{ + "city":"Баку", + "country":"Азербайджан" + }, + "BE":{ + "city":"Брюссель", + "country":"Бельгия" + }, + "BY":{ + "city":"Минск", + "country":"Беларусь" + }, + "BA":{ + "city":"Сараево", + "country":"Босния" + }, + "BG":{ + "city":"София", + "country":"Болгария" + }, + "CY":{ + "city":"Никосия", + "country":"Кипр" + }, + "HR":{ + "city":"Загреб", + "country":"Хорватия" + }, + "DK":{ + "city":"Коппенгаген", + "country":"Дания" + }, + "ES":{ + "city":"Мадрид", + "country":"Испания" + }, + "EE":{ + "city":"Таллин", + "country":"Эстония" + }, + "FI":{ + "city":"Хельсинки", + "country":"Финляндия" + }, + "FR":{ + "city":"Париж", + "country":"Франция" + }, + "GE":{ + "city":"Тбилиси", + "country":"Грузия" + }, + "EL":{ + "city":"Афины", + "country":"Греция" + }, + "HU":{ + "city":"Будапешт", + "country":"Венгрия" + }, + "IE":{ + "city":"Дублин", + "country":"Ирландия" + }, + "IS":{ + "city":"Рейкявик", + "country":"Исландия" + }, + "IT":{ + "city":"Рим", + "country":"Италия" + }, + "LV":{ + "city":"Рига", + "country":"Латвия" + }, + "LI":{ + "city":"Вадуц", + "country":"Лихтенштейн" + }, + "LT":{ + "city":"Вильнюс", + "country":"Литва" + }, + "LU":{ + "city":"Люксембург", + "country":"Люксембург" + }, + "MK":{ + "city":"Скопье", + "country":"Македония" + }, + "MT":{ + "city":"Валетта", + "country":"Мальта" + }, + "MD":{ + "city":"Кишинев", + "country":"Молдавия" + }, + "MC":{ + "city":"Монако", + "country":"Монако" + }, + "ME":{ + "city":"Подгорица", + "country":"Черногория" + }, + "NO":{ + "city":"Осло", + "country":"Норвегия" + }, + "NL":{ + "city":"Амстердам", + "country":"Нидерланды" + }, + "PL":{ + "city":"Варшава", + "country":"Польша" + }, + "PT":{ + "city":"Лиссабон", + "country":"Португалия" + }, + "CZ":{ + "city":"Прага", + "country":"Чехия" + }, + "RO":{ + "city":"Бухарест", + "country":"Румыния" + }, + "UK":{ + "city":"Лондон", + "country":"Великобритания" + }, + "SM":{ + "city":"Сан-Марино", + "country":"Сан-Марино" + }, + "RS":{ + "city":"Белград", + "country":"Сербия" + }, + "SK":{ + "city":"Братислава", + "country":"Словакия" + }, + "SI":{ + "city":"Любляна", + "country":"Словения" + }, + "SE":{ + "city":"Стокгольм", + "country":"Швеция" + }, + "CH":{ + "city":"Берн", + "country":"Швейцария" + }, + "TR":{ + "city":"Анкара", + "country":"Турция" + }, + "UA":{ + "city":"Киев", + "country":"Украина" + }, + "VA":{ + "city":"Ватикан", + "country":"Ватикан" + }, + "AF":{ + "city":"Кабул", + "country":"Афганистан" + }, + "SA":{ + "city":"Аль-Риад", + "country":"Саудовская Аравия" + }, + "BH":{ + "city":"Манама", + "country":"Бахрейн" + }, + "BD":{ + "city":"Дака", + "country":"Бангладеш" + }, + "BT":{ + "city":"Тхимпху", + "country":"Бутан" + }, + "BN":{ + "city":"Андар Сери Бегаван", + "country":"Бруней" + }, + "KH":{ + "city":"Пном Пень", + "country":"Камбоджа" + }, + "CN":{ + "city":"Пекин", + "country":"Китай" + }, + "KP":{ + "city":"Пхеньян", + "country":"Северная Корея" + }, + "KR":{ + "city":"Сеул", + "country":"Южная Корея" + }, + "AE":{ + "city":"Абу Даби", + "country":"ОАЭ" + }, + "IN":{ + "city":"Дели", + "country":"Индия" + }, + "IR":{ + "city":"Тегеран", + "country":"Иран" + }, + "IQ":{ + "city":"Багдад", + "country":"Ирак" + }, + "IL":{ + "city":"Иерусалим", + "country":"Израиль" + }, + "JP":{ + "city":"Токио", + "country":"Япония" + }, + "JO":{ + "city":"Амман", + "country":"Иордания" + }, + "KZ":{ + "city":"Астана", + "country":"Казахстан" + }, + "KG":{ + "city":"Бишкек", + "country":"Кыргызстан" + }, + "KW":{ + "city":"Кувейт", + "country":"Кувейт" + }, + "LA":{ + "city":"Лаос", + "country":"Вьетнам" + }, + "LB":{ + "city":"Бейрут", + "country":"Ливан" + }, + "MY":{ + "city":"Куала Лумпур", + "country":"Малайзия" + }, + "MV":{ + "city":"Мале", + "country":"Мальдивы" + }, + "MN":{ + "city":"Улан-Батор", + "country":"Монголия" + }, + "MM":{ + "city":"Нейпьидо", + "country":"Мьянма" + }, + "NP":{ + "city":"Катманду", + "country":"Непал" + }, + "OM":{ + "city":"Мускат", + "country":"Оман" + }, + "UZ":{ + "city":"Ташкент", + "country":"Узбекистан" + }, + "PK":{ + "city":"Исламабад", + "country":"Пакистан" + }, + "PH":{ + "city":"Манила", + "country":"Филлипины" + }, + "QA":{ + "city":"Доха", + "country":"Катар" + }, + "RU":{ + "city":"Москва", + "country":"Россия" + }, + "SG":{ + "city":"Сингапур", + "country":"Сингапур" + }, + "LK":{ + "city":"Коломбо", + "country":"Шри Ланка" + }, + "SY":{ + "city":"Дамаск", + "country":"Сирия" + }, + "TJ":{ + "city":"Душанбе", + "country":"Таджикистан" + }, + "TH":{ + "city":"Бангкок", + "country":"Таиланд" + }, + "TL":{ + "city":"Дили", + "country":"Тимур" + }, + "TM":{ + "city":"Ашхабад", + "country":"Туркменистан" + }, + "VN":{ + "city":"Ханой", + "country":"Вьетнам" + }, + "YE":{ + "city":"Сана", + "country":"Йемен" + } + }, + "fr":{ + "capital":"Capitale", + "europe":"Europe", + "asia":"Asie", + "north_america":"Amérique du Nord", + "south_america":"Amérique du Sud", + "oceania":"Océanie", + "africa":"Afrique", + "eurasia": "Eurasie", + "MA":{ + "city":"Rabat", + "country":"Maroc" + }, + "DZ":{ + "city":"Alger", + "country":"Algérie" + }, + "TN":{ + "city":"Tunis", + "country":"Tunisie" + }, + "LY":{ + "city":"Tripoli", + "country":"Libye" + }, + "EG":{ + "city":"Le Caire", + "country":"Égypte" + }, + "Sahara_occidental":{ + "city":"", + "country":"Sahara occidental" + }, + "MR":{ + "city":"Nouakchott", + "country":"Mauritanie" + }, + "ML":{ + "city":"Bamako", + "country":"Mali" + }, + "NE":{ + "city":"Niamey", + "country":"Niger" + }, + "TD":{ + "city":"Ndjamena", + "country":"Tchad" + }, + "SD":{ + "city":"Khartoum", + "country":"Soudan" + }, + "ER":{ + "city":"Asmara", + "country":"Erythrée" + }, + "DJ":{ + "city":"Djibouti", + "country":"Djibouti" + }, + "ET":{ + "city":"Addis-Abeba", + "country":"Ethiopie" + }, + "SO":{ + "city":"Mogadiscio", + "country":"Somalie" + }, + "KE":{ + "city":"Nairobi", + "country":"Kenya" + }, + "UG":{ + "city":"Kampala", + "country":"Ouganda" + }, + "CD":{ + "city":"Kinshasa", + "country":"République démocratique du Congo" + }, + "CF":{ + "city":"Bangui", + "country":"République centrafricaine" + }, + "CM":{ + "city":"Yaoundé", + "country":"Cameroun" + }, + "NG":{ + "city":"Abuja", + "country":"Nigeria" + }, + "BJ":{ + "city":"Porto-Novo", + "country":"Bénin" + }, + "TG":{ + "city":"Lomé", + "country":"Togo" + }, + "GH":{ + "city":"Accra", + "country":"Ghana" + }, + "CI":{ + "city":"Yamoussoukro", + "country":"Côte d'Ivoire" + }, + "BF":{ + "city":"Ouagadougou", + "country":"Burkina Faso" + }, + "LR":{ + "city":"Monrovia", + "country":"Libéria" + }, + "SL":{ + "city":"Freetown", + "country":"Sierra Leone" + }, + "GN":{ + "city":"Conakry", + "country":"Guinée" + }, + "GW":{ + "city":"Bissau", + "country":"Guinée-Bissau" + }, + "SN":{ + "city":"Dakar", + "country":"Sénégal" + }, + "GM":{ + "city":"Banjul", + "country":"Gambie" + }, + "RW":{ + "city":"Kigali", + "country":"Rwanda" + }, + "BI":{ + "city":"Bujumbura", + "country":"Burundi" + }, + "CG":{ + "city":"Brazzaville", + "country":"République du Congo" + }, + "GA":{ + "city":"Libreville", + "country":"Gabon" + }, + "GQ":{ + "city":"Malabo", + "country":"Guinée Equatoriale" + }, + "TZ":{ + "city":"Dodoma", + "country":"Tanzanie" + }, + "MW":{ + "city":"Lilongwe", + "country":"Malawi" + }, + "ZM":{ + "city":"Lusaka", + "country":"Zambie" + }, + "AO":{ + "city":"Luanda", + "country":"Angola" + }, + "MZ":{ + "city":"Maputo", + "country":"Mozambique" + }, + "ZW":{ + "city":"Harare", + "country":"Zimbabwe" + }, + "BW":{ + "city":"Gaborone", + "country":"Botswana" + }, + "NA":{ + "city":"Windhoek", + "country":"Namibie" + }, + "ZA":{ + "city":"Pretoria", + "country":"Afrique du Sud" + }, + "LS":{ + "city":"Maseru", + "country":"Lesotho" + }, + "SZ":{ + "city":"Mbabane", + "country":"Swaziland" + }, + "MG":{ + "city":"Antananarivo", + "country":"Madagascar" + }, + "AR":{ + "city":"Buenos Aires", + "country":"Argentine" + }, + "CL":{ + "city":"Santiago", + "country":"Chili" + }, + "UY":{ + "city":"Montevideo", + "country":"Uruguay" + }, + "PY":{ + "city":"Asuncion", + "country":"Paraguay" + }, + "BO":{ + "city":"Sucre", + "country":"Bolivie" + }, + "BR":{ + "city":"Brasilia", + "country":"Brésil" + }, + "PE":{ + "city":"Lima", + "country":"Pérou" + }, + "EC":{ + "city":"Quito", + "country":"Equateur" + }, + "CO":{ + "city":"Bogota", + "country":"Colombie" + }, + "VE":{ + "city":"Caracas", + "country":"Vénézuéla" + }, + "GY":{ + "city":"Georgetown", + "country":"Guyana" + }, + "SR":{ + "city":"Paramaribo", + "country":"Suriname" + }, + "GF":{ + "city":"Cayenne", + "country":"Guyane française" + }, + "CA":{ + "city":"Ottawa", + "country":"Canada" + }, + "GL":{ + "city":"Nuuk", + "country":"Groënland" + }, + "US":{ + "city":"Washington", + "country":"États-Unis d'Amérique" + }, + "MX":{ + "city":"Mexico", + "country":"Mexique" + }, + "CU":{ + "city":"La Havane", + "country":"Cuba" + }, + "HT":{ + "city":"Port-au-Prince", + "country":"Haïti" + }, + "DO":{ + "city":"Saint-Domingue", + "country":"République Dominicaine" + }, + "JM":{ + "city":"Kingston", + "country":"Jamaïque" + }, + "BS":{ + "city":"Nassau", + "country":"Bahamas" + }, + "GT":{ + "city":"Guatemala", + "country":"Guatemala" + }, + "BZ":{ + "city":"Belmopan", + "country":"Belize" + }, + "SV":{ + "city":"San Salvador", + "country":"Salvador" + }, + "HN":{ + "city":"Tegucigalpa", + "country":"Honduras" + }, + "NI":{ + "city":"Managua", + "country":"Nicaragua" + }, + "CR":{ + "city":"San José", + "country":"Costa Rica" + }, + "PA":{ + "city":"Panama", + "country":"Panama" + }, + "AU":{ + "city":"Canberra", + "country":"Australie" + }, + "NZ":{ + "city":"Wellington", + "country":"Nouvelle-Zélande" + }, + "PG":{ + "city":"Port Moresby", + "country":"Papouasie-Nouvelle-Guinée" + }, + "ID":{ + "city":"Jakarta", + "country":"Indonésie" + }, + "SB":{ + "city":"Honiara", + "country":"Îles Salomon" + }, + "VU":{ + "city":"Port-Vila", + "country":"Vanuatu" + }, + "NC":{ + "city":"Nouméa", + "country":"Nouvelle-Calédonie" + }, + "AL":{ + "city":"Tirana", + "country":"Albanie" + }, + "DE":{ + "city":"Berlin", + "country":"Allemagne" + }, + "AD":{ + "city":"Andorre-la-Vieille", + "country":"Andorre" + }, + "AM":{ + "city":"Erevan", + "country":"Arménie" + }, + "AT":{ + "city":"Vienne", + "country":"Autriche" + }, + "AZ":{ + "city":"Bakou", + "country":"Azerbaïdjan" + }, + "BE":{ + "city":"Bruxelles", + "country":"Belgique" + }, + "BY":{ + "city":"Minsk", + "country":"Biélorussie" + }, + "BA":{ + "city":"Sarajevo", + "country":"Bosnie-Herzégovine" + }, + "BG":{ + "city":"Sofia", + "country":"Bulgarie" + }, + "CY":{ + "city":"Nicosie", + "country":"Chypre" + }, + "HR":{ + "city":"Zagreb", + "country":"Croatie" + }, + "DK":{ + "city":"Copenhague", + "country":"Danemark" + }, + "ES":{ + "city":"Madrid", + "country":"Espagne" + }, + "EE":{ + "city":"Tallinn", + "country":"Estonie" + }, + "FI":{ + "city":"Helsinki", + "country":"Finlande" + }, + "FR":{ + "city":"Paris", + "country":"France" + }, + "GE":{ + "city":"Tbilissi", + "country":"Géorgie" + }, + "EL":{ + "city":"Athènes", + "country":"Grèce" + }, + "HU":{ + "city":"Budapest", + "country":"Hongrie" + }, + "IE":{ + "city":"Dublin", + "country":"Irlande" + }, + "IS":{ + "city":"Reykjavik", + "country":"Islande" + }, + "IT":{ + "city":"Rome", + "country":"Italie" + }, + "LV":{ + "city":"Riga", + "country":"Lettonie" + }, + "LI":{ + "city":"Vaduz", + "country":"Liechtenstein" + }, + "LT":{ + "city":"Vilnius", + "country":"Lituanie" + }, + "LU":{ + "city":"Luxembourg", + "country":"Luxembourg" + }, + "MK":{ + "city":"Skopje", + "country":"Macédoine" + }, + "MT":{ + "city":"La Valette", + "country":"Malte" + }, + "MD":{ + "city":"Chisinau", + "country":"Moldavie" + }, + "MC":{ + "city":"Monaco", + "country":"Monaco" + }, + "ME":{ + "city":"Podgorica", + "country":"Monténégro" + }, + "NO":{ + "city":"Oslo", + "country":"Norvège" + }, + "NL":{ + "city":"Amsterdam", + "country":"Pays-Bas" + }, + "PL":{ + "city":"Varsovie", + "country":"Pologne" + }, + "PT":{ + "city":"Lisbonne", + "country":"Portugal" + }, + "CZ":{ + "city":"Prague", + "country":"République tchèque" + }, + "RO":{ + "city":"Bucarest", + "country":"Roumanie" + }, + "UK":{ + "city":"Londres", + "country":"Royaume-Uni" + }, + "SM":{ + "city":"Saint-Marin", + "country":"Saint-Marin" + }, + "RS":{ + "city":"Belgrade", + "country":"Serbie" + }, + "SK":{ + "city":"Bratislava", + "country":"Slovaquie" + }, + "SI":{ + "city":"Ljubljana", + "country":"Slovénie" + }, + "SE":{ + "city":"Stockholm", + "country":"Suède" + }, + "CH":{ + "city":"Berne", + "country":"Suisse" + }, + "TR":{ + "city":"Ankara", + "country":"Turquie" + }, + "UA":{ + "city":"Kiev", + "country":"Ukraine" + }, + "VA":{ + "city":"Cité du Vatican", + "country":"Vatican" + }, + "AF":{ + "city":"Kaboul", + "country":"Afghanistan" + }, + "SA":{ + "city":"Riyad", + "country":"Arabie Saoudite" + }, + "BH":{ + "city":"Manama", + "country":"Bahreïn" + }, + "BD":{ + "city":"Dacca", + "country":"Bangladesh" + }, + "BT":{ + "city":"Thimphou", + "country":"Bhoutan" + }, + "BN":{ + "city":"Bandar Seri Begawan", + "country":"Bruneï" + }, + "KH":{ + "city":"Phnom Penh", + "country":"Cambodge" + }, + "CN":{ + "city":"Pékin", + "country":"Chine" + }, + "KP":{ + "city":"Pyongyang", + "country":"Corée du Nord" + }, + "KR":{ + "city":"Séoul", + "country":"Corée du Sud" + }, + "AE":{ + "city":"Abou Dabi", + "country":"Emirats Arabes Unis" + }, + "IN":{ + "city":"New Delhi", + "country":"Inde" + }, + "IR":{ + "city":"Téhéran", + "country":"Iran" + }, + "IQ":{ + "city":"Bagdad", + "country":"Irak" + }, + "IL":{ + "city":"Jérusalem", + "country":"Israël" + }, + "JP":{ + "city":"Tokyo", + "country":"Japon" + }, + "JO":{ + "city":"Amman", + "country":"Jordanie" + }, + "KZ":{ + "city":"Astana", + "country":"Kazakhstan" + }, + "KG":{ + "city":"Bichkek", + "country":"Kirghizistan" + }, + "KW":{ + "city":"Koweït", + "country":"Koweït" + }, + "LA":{ + "city":"Vientiane", + "country":"Laos" + }, + "LB":{ + "city":"Beyrouth", + "country":"Liban" + }, + "MY":{ + "city":"Kuala Lumpur", + "country":"Malaisie" + }, + "MV":{ + "city":"Malé", + "country":"Maldives" + }, + "MN":{ + "city":"Oulan-Bator", + "country":"Mongolie" + }, + "MM":{ + "city":"Naypyidaw", + "country":"Birmanie" + }, + "NP":{ + "city":"Katmandou", + "country":"Népal" + }, + "OM":{ + "city":"Mascate", + "country":"Oman" + }, + "UZ":{ + "city":"Tachkent", + "country":"Ouzbékistan" + }, + "PK":{ + "city":"Islamabad", + "country":"Pakistan" + }, + "PH":{ + "city":"Manille", + "country":"Philippines" + }, + "QA":{ + "city":"Doha", + "country":"Qatar" + }, + "RU":{ + "city":"Moscou", + "country":"Russie" + }, + "SG":{ + "city":"Singapour", + "country":"Singapour" + }, + "LK":{ + "city":"Sri Jayawardenapura", + "country":"Sri Lanka" + }, + "SY":{ + "city":"Damas", + "country":"Syrie" + }, + "TJ":{ + "city":"Douchanbé", + "country":"Tadjikistan" + }, + "TH":{ + "city":"Bangkok", + "country":"Thaïlande" + }, + "TL":{ + "city":"Dili", + "country":"Timor-oriental" + }, + "TM":{ + "city":"Achgabat", + "country":"Turkménistan" + }, + "VN":{ + "city":"Hanoï", + "country":"Vietnam" + }, + "YE":{ + "city":"Sanaa", + "country":"Yémen" + } + }, + "sk":{ + "capital":"Hlavné mesto", + "europe":"Európa", + "asia":"Ázia", + "north_america":"Severná Amerika", + "south_america":"Južná Amerika", + "oceania":"Oceánia", + "africa":"Afrika", + "eurasia": "Eurázia", + "MA":{ + "city":"Rabat", + "country":"Maroko" + }, + "DZ":{ + "city":"Alžír", + "country":"Alžírsko" + }, + "TN":{ + "city":"Tunis", + "country":"Tunisko" + }, + "LY":{ + "city":"Tripolis", + "country":"Líbya" + }, + "EG":{ + "city":"Káhira", + "country":"Egypt" + }, + "Sahara_occidental":{ + "city":"Al-´Ajún (Laayoune)", + "country":"Západná Sahara" + }, + "MR":{ + "city":"Nouakchott", + "country":"Mauritánia" + }, + "ML":{ + "city":"Bamako", + "country":"Mali" + }, + "NE":{ + "city":"Niamey", + "country":"Niger" + }, + "TD":{ + "city":"N'Djamena", + "country":"Čad" + }, + "SD":{ + "city":"Chartúm", + "country":"Sudán" + }, + "ER":{ + "city":"Asmara", + "country":"Eritrea" + }, + "DJ":{ + "city":"Džibutsko", + "country":"Džibuti" + }, + "ET":{ + "city":"Addis Abeba", + "country":"Etiópia" + }, + "SO":{ + "city":"Mogadišo", + "country":"Somálsko" + }, + "KE":{ + "city":"Nairobi", + "country":"Keňa" + }, + "UG":{ + "city":"Kampala", + "country":"Uganda" + }, + "CD":{ + "city":"Kinshasa", + "country":"Demokratická republika Kongo" + }, + "CF":{ + "city":"Bangui", + "country":"Stredoafrická republika" + }, + "CM":{ + "city":"Yaoundé", + "country":"Kamerun" + }, + "NG":{ + "city":"Abuja", + "country":"Nigéria" + }, + "BJ":{ + "city":"Porto-Novo", + "country":"Benin" + }, + "TG":{ + "city":"Lomé", + "country":"Togo" + }, + "GH":{ + "city":"Akkra", + "country":"Ghana" + }, + "CI":{ + "city":"Yamoussoukro", + "country":"Pobrežie Slonoviny" + }, + "BF":{ + "city":"Ouagadougou", + "country":"Burkina Faso" + }, + "LR":{ + "city":"Monrovia", + "country":"Libéria" + }, + "SL":{ + "city":"Freetown", + "country":"Sierra Leone" + }, + "GN":{ + "city":"Conakry", + "country":"Guinea" + }, + "GW":{ + "city":"Bissau", + "country":"Guinea-Bissau" + }, + "SN":{ + "city":"Dakar", + "country":"Senegal" + }, + "GM":{ + "city":"Banjul", + "country":"Gambia" + }, + "RW":{ + "city":"Kigali", + "country":"Rwanda" + }, + "BI":{ + "city":"Bujumbura", + "country":"Burundi" + }, + "CG":{ + "city":"Brazzaville", + "country":"Kongo" + }, + "GA":{ + "city":"Libreville", + "country":"Gabon" + }, + "GQ":{ + "city":"Malabo", + "country":"Rovníková Guinea" + }, + "TZ":{ + "city":"Dodoma", + "country":"Tanzánia" + }, + "MW":{ + "city":"Lilongwe", + "country":"Malawi" + }, + "ZM":{ + "city":"Lusaka", + "country":"Zambia" + }, + "AO":{ + "city":"Luanda", + "country":"Angola" + }, + "MZ":{ + "city":"Maputo", + "country":"Mozambik" + }, + "ZW":{ + "city":"Harare", + "country":"Zimbabwe" + }, + "BW":{ + "city":"Gaborone", + "country":"Botswana" + }, + "NA":{ + "city":"Windhoek", + "country":"Namíbia" + }, + "ZA":{ + "city":"Pretória", + "country":"Juhoafrická republika" + }, + "LS":{ + "city":"Maseru", + "country":"Lesotho" + }, + "SZ":{ + "city":"Mbabane", + "country":"Svazijsko" + }, + "MG":{ + "city":"Antananarivo", + "country":"Madagascar" + }, + "AR":{ + "city":"Buenos Aires", + "country":"Argentína" + }, + "CL":{ + "city":"Santiago", + "country":"Čile" + }, + "UY":{ + "city":"Montevideo", + "country":"Uruguaj" + }, + "PY":{ + "city":"Asunción", + "country":"Paraguaj" + }, + "BO":{ + "city":"Sucre", + "country":"Bolívia" + }, + "BR":{ + "city":"Brazília", + "country":"Brazília" + }, + "PE":{ + "city":"Lima", + "country":"Peru" + }, + "EC":{ + "city":"Quito", + "country":"Ekvádor" + }, + "CO":{ + "city":"Bogota", + "country":"Kolumbia" + }, + "VE":{ + "city":"Caracas", + "country":"Venezuela" + }, + "GY":{ + "city":"Georgetown", + "country":"Guyana" + }, + "SR":{ + "city":"Paramaribo", + "country":"Surinam" + }, + "GF":{ + "city":"Cayenne", + "country":"Francúzska Guyana" + }, + "CA":{ + "city":"Ottawa", + "country":"Kanada" + }, + "GL":{ + "city":"Nuuk", + "country":"Grónsko" + }, + "US":{ + "city":"Washington", + "country":"Spojené štáty americké" + }, + "MX":{ + "city":"Mexiko", + "country":"Mexiko" + }, + "CU":{ + "city":"Havana", + "country":"Kuba" + }, + "HT":{ + "city":"Port-au-Prince", + "country":"Haiti" + }, + "DO":{ + "city":"Santo Domingo", + "country":"Dominikánska republika" + }, + "JM":{ + "city":"Kingston", + "country":"Jamajka" + }, + "BS":{ + "city":"Nassau", + "country":"Bahamy" + }, + "GT":{ + "city":"Guatemala", + "country":"Guatemala" + }, + "BZ":{ + "city":"Belmopan", + "country":"Belize" + }, + "SV":{ + "city":"Salvádor", + "country":"San Salvador" + }, + "HN":{ + "city":"Tegucigalpa", + "country":"Honduras" + }, + "NI":{ + "city":"Managua", + "country":"Nikaragua" + }, + "CR":{ + "city":"San José", + "country":"Kostarika" + }, + "PA":{ + "city":"Panama", + "country":"Panama" + }, + "AU":{ + "city":"Canberra", + "country":"Austrália" + }, + "NZ":{ + "city":"Wellington", + "country":"Nový Zéland" + }, + "PG":{ + "city":"Port Moresby", + "country":"Papua Nová Guinea" + }, + "ID":{ + "city":"Jakarta", + "country":"Indonézia" + }, + "SB":{ + "city":"Honiara", + "country":"Šalamúnove ostrovy" + }, + "VU":{ + "city":"Port-Vila", + "country":"Vanuatu" + }, + "NC":{ + "city":"Noumea", + "country":"Nová Kaledónia" + }, + "AL":{ + "city":"Tirana", + "country":"Albánsko" + }, + "DE":{ + "city":"Berlín", + "country":"Nemecko" + }, + "AD":{ + "city":"Andorra la Vella", + "country":"Andorra" + }, + "AM":{ + "city":"Jerevan", + "country":"Arménsko" + }, + "AT":{ + "city":"Viedeň", + "country":"Rakúsko" + }, + "AZ":{ + "city":"Baku", + "country":"Azerbajdžan" + }, + "BE":{ + "city":"Brusel", + "country":"Belgicko" + }, + "BY":{ + "city":"Minsk", + "country":"Bielorusko" + }, + "BA":{ + "city":"Sarajevo", + "country":"Bosna a Hercegovina" + }, + "BG":{ + "city":"Sofia", + "country":"Bulharsko" + }, + "CY":{ + "city":"Nikózia", + "country":"Cyprus" + }, + "HR":{ + "city":"Záhreb", + "country":"Chorvátsko" + }, + "DK":{ + "city":"Kodaň", + "country":"Dánsko" + }, + "ES":{ + "city":"Madrid", + "country":"Španielsko" + }, + "EE":{ + "city":"Talin", + "country":"Estónsko" + }, + "FI":{ + "city":"Helsinki", + "country":"Fínsko" + }, + "FR":{ + "city":"Paríž", + "country":"Francúzsko" + }, + "GE":{ + "city":"Tbilisi", + "country":"Gruzínsko" + }, + "EL":{ + "city":"Atény", + "country":"Grécko" + }, + "HU":{ + "city":"Budapešť", + "country":"Maďarsko" + }, + "IE":{ + "city":"Dublin", + "country":"Írsko" + }, + "IS":{ + "city":"Reykjavík", + "country":"Island" + }, + "IT":{ + "city":"Rím", + "country":"Taliansko" + }, + "LV":{ + "city":"Riga", + "country":"Lotyšsko" + }, + "LI":{ + "city":"Vaduz", + "country":"Lichtenštajnsko" + }, + "LT":{ + "city":"Vilnius", + "country":"Litva" + }, + "LU":{ + "city":"Luxembursko", + "country":"Luxemburg" + }, + "MK":{ + "city":"Skopje", + "country":"Macedónsko" + }, + "MT":{ + "city":"Valetta", + "country":"Malta" + }, + "MD":{ + "city":"Kišiňov", + "country":"Moldavsko" + }, + "MC":{ + "city":"Monako", + "country":"Monako" + }, + "ME":{ + "city":"Podgorica", + "country":"Čierna Hora" + }, + "NO":{ + "city":"Oslo", + "country":"Nórsko" + }, + "NL":{ + "city":"Amsterdam", + "country":"Holandsko" + }, + "PL":{ + "city":"Varšava", + "country":"Poľsko" + }, + "PT":{ + "city":"Lisabon", + "country":"Portugalsko" + }, + "CZ":{ + "city":"Praha", + "country":"Česká republika" + }, + "RO":{ + "city":"Bukurešť", + "country":"Rumunsko" + }, + "UK":{ + "city":"Londýn", + "country":"Veľká Británia" + }, + "SM":{ + "city":"San Marino", + "country":"San Marino" + }, + "RS":{ + "city":"Belehrad", + "country":"Srbsko" + }, + "SK":{ + "city":"Bratislava", + "country":"Slovensko" + }, + "SI":{ + "city":"Ľubľana", + "country":"Slovinsko" + }, + "SE":{ + "city":"Štokholm", + "country":"Švédsko" + }, + "CH":{ + "city":"Bern", + "country":"Švajčiarsko" + }, + "TR":{ + "city":"Ankara", + "country":"Turecko" + }, + "UA":{ + "city":"Kijev", + "country":"Ukrajina" + }, + "VA":{ + "city":"Vatikán", + "country":"Vatikán" + }, + "AF":{ + "city":"Kábul", + "country":"Afganistan" + }, + "SA":{ + "city":"Rijád", + "country":"Saudská Arábia" + }, + "BH":{ + "city":"Manama", + "country":"Bahrajn" + }, + "BD":{ + "city":"Dháka", + "country":"Bangladéš" + }, + "BT":{ + "city":"Thimphu", + "country":"Bhután" + }, + "BN":{ + "city":"Bandar Seri Begawan", + "country":"Brunej" + }, + "KH":{ + "city":"Phnom Penh", + "country":"Kambodža" + }, + "CN":{ + "city":"Peking", + "country":"Čína" + }, + "KP":{ + "city":"Pchjongjang", + "country":"Severná Kórea" + }, + "KR":{ + "city":"Soul", + "country":"Južná Kórea" + }, + "AE":{ + "city":"Abú Zabí", + "country":"Spojené arabské emiráty" + }, + "IN":{ + "city":"Dillí", + "country":"India" + }, + "IR":{ + "city":"Teherán", + "country":"Irán" + }, + "IQ":{ + "city":"Bagdad", + "country":"Irak" + }, + "IL":{ + "city":"Jeruzalem", + "country":"Izrael" + }, + "JP":{ + "city":"Tokio", + "country":"Japonsko" + }, + "JO":{ + "city":"Ammán", + "country":"Jordánsko" + }, + "KZ":{ + "city":"Astana", + "country":"Kazachstan" + }, + "KG":{ + "city":"Biškek", + "country":"Kirgizstan" + }, + "KW":{ + "city":"Kuvajt", + "country":"Kuvajt" + }, + "LA":{ + "city":"Vientiane", + "country":"Laos" + }, + "LB":{ + "city":"Bejrút", + "country":"Libanon" + }, + "MY":{ + "city":"Kuala Lumpur", + "country":"Malajzia" + }, + "MV":{ + "city":"Male", + "country":"Maldivy" + }, + "MN":{ + "city":"Ulanbátar", + "country":"Mongolsko" + }, + "MM":{ + "city":"Rangún", + "country":"Mjanmarsko" + }, + "NP":{ + "city":"Káthmandu", + "country":"Nepál" + }, + "OM":{ + "city":"Maskat", + "country":"Omán" + }, + "UZ":{ + "city":"Taškent", + "country":"Uzbekistan" + }, + "PK":{ + "city":"Islamabad", + "country":"Pakistan" + }, + "PH":{ + "city":"Manila", + "country":"Filipíny" + }, + "QA":{ + "city":"Dauha", + "country":"Katar" + }, + "RU":{ + "city":"Moskva", + "country":"Rusko" + }, + "SG":{ + "city":"Singapur", + "country":"Singapur" + }, + "LK":{ + "city":"Kolombo", + "country":"Srí Lanka" + }, + "SY":{ + "city":"DamasK", + "country":"Sýria" + }, + "TJ":{ + "city":"Dušanbe", + "country":"Tadžikistan" + }, + "TH":{ + "city":"Bangkok", + "country":"Thajsko" + }, + "TL":{ + "city":"Dili", + "country":"Východný Timor" + }, + "TM":{ + "city":"Ašchabat", + "country":"Turkménsko" + }, + "VN":{ + "city":"Hanoi", + "country":"Vietnam" + }, + "YE":{ + "city":"Saná", + "country":"Jemen" + } + } +}; diff --git a/resources/library/applications/GeoInfo.wgt/js/soapclient.js b/resources/library/applications/GeoInfo.wgt/js/soapclient.js new file mode 100644 index 0000000..66bc3d0 --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/js/soapclient.js @@ -0,0 +1,411 @@ +/*****************************************************************************\ + + Javascript "SOAP Client" library + + @version: 2.4 - 2007.12.21 + @author: Matteo Casati - http://www.guru4.net/ + +\*****************************************************************************/ + +function SOAPClientParameters() +{ + var _pl = new Array(); + this.add = function(name, value) + { + _pl[name] = value; + return this; + } + this.toXml = function() + { + var xml = ""; + for(var p in _pl) + { + switch(typeof(_pl[p])) + { + case "string": + case "number": + case "boolean": + case "object": + xml += "<" + p + ">" + SOAPClientParameters._serialize(_pl[p]) + ""; + break; + default: + break; + } + } + return xml; + } +} +SOAPClientParameters._serialize = function(o) +{ + var s = ""; + switch(typeof(o)) + { + case "string": + s += o.replace(/&/g, "&").replace(//g, ">"); break; + case "number": + case "boolean": + s += o.toString(); break; + case "object": + // Date + if(o.constructor.toString().indexOf("function Date()") > -1) + { + + var year = o.getFullYear().toString(); + var month = (o.getMonth() + 1).toString(); month = (month.length == 1) ? "0" + month : month; + var date = o.getDate().toString(); date = (date.length == 1) ? "0" + date : date; + var hours = o.getHours().toString(); hours = (hours.length == 1) ? "0" + hours : hours; + var minutes = o.getMinutes().toString(); minutes = (minutes.length == 1) ? "0" + minutes : minutes; + var seconds = o.getSeconds().toString(); seconds = (seconds.length == 1) ? "0" + seconds : seconds; + var milliseconds = o.getMilliseconds().toString(); + var tzminutes = Math.abs(o.getTimezoneOffset()); + var tzhours = 0; + while(tzminutes >= 60) + { + tzhours++; + tzminutes -= 60; + } + tzminutes = (tzminutes.toString().length == 1) ? "0" + tzminutes.toString() : tzminutes.toString(); + tzhours = (tzhours.toString().length == 1) ? "0" + tzhours.toString() : tzhours.toString(); + var timezone = ((o.getTimezoneOffset() < 0) ? "+" : "-") + tzhours + ":" + tzminutes; + s += year + "-" + month + "-" + date + "T" + hours + ":" + minutes + ":" + seconds + "." + milliseconds + timezone; + } + // Array + else if(o.constructor.toString().indexOf("function Array()") > -1) + { + for(var p in o) + { + if(!isNaN(p)) // linear array + { + (/function\s+(\w*)\s*\(/ig).exec(o[p].constructor.toString()); + var type = RegExp.$1; + switch(type) + { + case "": + type = typeof(o[p]); + case "String": + type = "string"; break; + case "Number": + type = "int"; break; + case "Boolean": + type = "bool"; break; + case "Date": + type = "DateTime"; break; + } + s += "<" + type + ">" + SOAPClientParameters._serialize(o[p]) + "" + } + else // associative array + s += "<" + p + ">" + SOAPClientParameters._serialize(o[p]) + "" + } + } + // Object or custom function + else + for(var p in o) + s += "<" + p + ">" + SOAPClientParameters._serialize(o[p]) + ""; + break; + default: + break; // throw new Error(500, "SOAPClientParameters: type '" + typeof(o) + "' is not supported"); + } + return s; +} + +function SOAPClient() {} + +SOAPClient.username = null; +SOAPClient.password = null; + +SOAPClient.invoke = function(url, method, parameters, async, callback) +{ + if(async) + SOAPClient._loadWsdl(url, method, parameters, async, callback); + else + return SOAPClient._loadWsdl(url, method, parameters, async, callback); +} + +// private: wsdl cache +SOAPClient_cacheWsdl = new Array(); + +// private: invoke async +SOAPClient._loadWsdl = function(url, method, parameters, async, callback) +{ + // load from cache? + var wsdl = SOAPClient_cacheWsdl[url]; + if(wsdl + "" != "" && wsdl + "" != "undefined") + return SOAPClient._sendSoapRequest(url, method, parameters, async, callback, wsdl); + // get wsdl + var xmlHttp = SOAPClient._getXmlHttp(); + xmlHttp.open("GET", url + "?wsdl", async); + if(async) + { + xmlHttp.onreadystatechange = function() + { + if(xmlHttp.readyState == 4) + SOAPClient._onLoadWsdl(url, method, parameters, async, callback, xmlHttp); + } + } + xmlHttp.send(null); + + if (!async) + return SOAPClient._onLoadWsdl(url, method, parameters, async, callback, xmlHttp); +} +SOAPClient._onLoadWsdl = function(url, method, parameters, async, callback, req) +{ + var wsdl = req.responseXML; + SOAPClient_cacheWsdl[url] = wsdl; // save a copy in cache + return SOAPClient._sendSoapRequest(url, method, parameters, async, callback, wsdl); +} +SOAPClient._sendSoapRequest = function(url, method, parameters, async, callback, wsdl) +{ + //alert(); + // get namespace + var ns = (wsdl.documentElement.attributes["targetNamespace"] + "" == "undefined") ? wsdl.documentElement.attributes.getNamedItem("targetNamespace").nodeValue : wsdl.documentElement.attributes["targetNamespace"].value; + // build SOAP request + var sr = + "" + + "" + + "" + + "" + + parameters.toXml() + + ""; + // send request + var xmlHttp = SOAPClient._getXmlHttp(); + if (SOAPClient.userName && SOAPClient.password){ + xmlHttp.open("POST", url, async, SOAPClient.userName, SOAPClient.password); + // Some WS implementations (i.e. BEA WebLogic Server 10.0 JAX-WS) don't support Challenge/Response HTTP BASIC, so we send authorization headers in the first request + xmlHttp.setRequestHeader("Authorization", "Basic " + SOAPClient._toBase64(SOAPClient.userName + ":" + SOAPClient.password)); + } + else + xmlHttp.open("POST", url, async); + var soapaction = ((ns.lastIndexOf("/") != ns.length - 1) ? ns + "/" : ns) + method; + xmlHttp.setRequestHeader("SOAPAction", soapaction); + xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); + if(async) + { + xmlHttp.onreadystatechange = function() + { + if(xmlHttp.readyState == 4) + SOAPClient._onSendSoapRequest(method, async, callback, wsdl, xmlHttp); + } + } + xmlHttp.send(sr); + if (!async) + return SOAPClient._onSendSoapRequest(method, async, callback, wsdl, xmlHttp); +} + +SOAPClient._onSendSoapRequest = function(method, async, callback, wsdl, req) +{ + var o = null; + var nd = SOAPClient._getElementsByTagName(req.responseXML, method + "Result"); + if(nd.length == 0) + nd = SOAPClient._getElementsByTagName(req.responseXML, "return"); // PHP web Service? + if(nd.length == 0) + { + if(req.responseXML.getElementsByTagName("faultcode").length > 0) + { + if(async || callback) + o = new Error(500, req.responseXML.getElementsByTagName("faultstring")[0].childNodes[0].nodeValue); + else + throw new Error(500, req.responseXML.getElementsByTagName("faultstring")[0].childNodes[0].nodeValue); + } + } + else + o = SOAPClient._soapresult2object(nd[0], wsdl); + if(callback) + callback(o, req.responseXML); + if(!async) + return o; +} +SOAPClient._soapresult2object = function(node, wsdl) +{ + var wsdlTypes = SOAPClient._getTypesFromWsdl(wsdl); + return SOAPClient._node2object(node, wsdlTypes); +} +SOAPClient._node2object = function(node, wsdlTypes) +{ + // null node + if(node == null) + return null; + // text node + if(node.nodeType == 3 || node.nodeType == 4) + return SOAPClient._extractValue(node, wsdlTypes); + // leaf node + if (node.childNodes.length == 1 && (node.childNodes[0].nodeType == 3 || node.childNodes[0].nodeType == 4)) + return SOAPClient._node2object(node.childNodes[0], wsdlTypes); + var isarray = SOAPClient._getTypeFromWsdl(node.nodeName, wsdlTypes).toLowerCase().indexOf("arrayof") != -1; + // object node + if(!isarray) + { + var obj = null; + if(node.hasChildNodes()) + obj = new Object(); + for(var i = 0; i < node.childNodes.length; i++) + { + var p = SOAPClient._node2object(node.childNodes[i], wsdlTypes); + obj[node.childNodes[i].nodeName] = p; + } + return obj; + } + // list node + else + { + // create node ref + var l = new Array(); + for(var i = 0; i < node.childNodes.length; i++) + l[l.length] = SOAPClient._node2object(node.childNodes[i], wsdlTypes); + return l; + } + return null; +} +SOAPClient._extractValue = function(node, wsdlTypes) +{ + var value = node.nodeValue; + switch(SOAPClient._getTypeFromWsdl(node.parentNode.nodeName, wsdlTypes).toLowerCase()) + { + default: + case "s:string": + return (value != null) ? value + "" : ""; + case "s:boolean": + return value + "" == "true"; + case "s:int": + case "s:long": + return (value != null) ? parseInt(value + "", 10) : 0; + case "s:double": + return (value != null) ? parseFloat(value + "") : 0; + case "s:datetime": + if(value == null) + return null; + else + { + value = value + ""; + value = value.substring(0, (value.lastIndexOf(".") == -1 ? value.length : value.lastIndexOf("."))); + value = value.replace(/T/gi," "); + value = value.replace(/-/gi,"/"); + var d = new Date(); + d.setTime(Date.parse(value)); + return d; + } + } +} +SOAPClient._getTypesFromWsdl = function(wsdl) +{ + var wsdlTypes = new Array(); + // IE + var ell = wsdl.getElementsByTagName("s:element"); + var useNamedItem = true; + // MOZ + if(ell.length == 0) + { + ell = wsdl.getElementsByTagName("element"); + useNamedItem = false; + } + for(var i = 0; i < ell.length; i++) + { + if(useNamedItem) + { + if(ell[i].attributes.getNamedItem("name") != null && ell[i].attributes.getNamedItem("type") != null) + wsdlTypes[ell[i].attributes.getNamedItem("name").nodeValue] = ell[i].attributes.getNamedItem("type").nodeValue; + } + else + { + if(ell[i].attributes["name"] != null && ell[i].attributes["type"] != null) + wsdlTypes[ell[i].attributes["name"].value] = ell[i].attributes["type"].value; + } + } + return wsdlTypes; +} +SOAPClient._getTypeFromWsdl = function(elementname, wsdlTypes) +{ + var type = wsdlTypes[elementname] + ""; + return (type == "undefined") ? "" : type; +} +// private: utils +SOAPClient._getElementsByTagName = function(document, tagName) +{ + try + { + // trying to get node omitting any namespaces (latest versions of MSXML.XMLDocument) + return document.selectNodes(".//*[local-name()=\""+ tagName +"\"]"); + } + catch (ex) {} + // old XML parser support + return document.getElementsByTagName(tagName); +} +// private: xmlhttp factory +SOAPClient._getXmlHttp = function() +{ + try + { + if(window.XMLHttpRequest) + { + var req = new XMLHttpRequest(); + // some versions of Moz do not support the readyState property and the onreadystate event so we patch it! + if(req.readyState == null) + { + req.readyState = 1; + req.addEventListener("load", + function() + { + req.readyState = 4; + if(typeof req.onreadystatechange == "function") + req.onreadystatechange(); + }, + false); + } + return req; + } + if(window.ActiveXObject) + return new ActiveXObject(SOAPClient._getXmlHttpProgID()); + } + catch (ex) {} + throw new Error("Your browser does not support XmlHttp objects"); +} +SOAPClient._getXmlHttpProgID = function() +{ + if(SOAPClient._getXmlHttpProgID.progid) + return SOAPClient._getXmlHttpProgID.progid; + var progids = ["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]; + var o; + for(var i = 0; i < progids.length; i++) + { + try + { + o = new ActiveXObject(progids[i]); + return SOAPClient._getXmlHttpProgID.progid = progids[i]; + } + catch (ex) {}; + } + throw new Error("Could not find an installed XML parser"); +} + +SOAPClient._toBase64 = function(input) +{ + var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + var output = ""; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + + do { + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + + enc1 = chr1 >> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + enc4 = chr3 & 63; + + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + + output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + + keyStr.charAt(enc3) + keyStr.charAt(enc4); + } while (i < input.length); + + return output; +} diff --git a/resources/library/applications/GeoInfo.wgt/js/tinyxmldom.js b/resources/library/applications/GeoInfo.wgt/js/tinyxmldom.js new file mode 100644 index 0000000..6e860ed --- /dev/null +++ b/resources/library/applications/GeoInfo.wgt/js/tinyxmldom.js @@ -0,0 +1,185 @@ +// ========================================================================= +// +// tinyxmldom.js - an XML DOM parser in JavaScript compressed for downloading +// +// This is the classic DOM that has shipped with XML for + + + + + diff --git a/resources/library/applications/GraphMe.wgt/Guide_Utilisateur.html b/resources/library/applications/GraphMe.wgt/Guide_Utilisateur.html new file mode 100644 index 0000000..a6e2d64 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Guide_Utilisateur.html @@ -0,0 +1,201 @@ + + + + + GraphMe - Guide utilisateur + + + +

    GraphMe

    + +

    Guide d'utilisation

    +
      +
    1. Introduction
    2. +
    3. Installation
    4. +
    5. Afficher le widget
    6. +
    7. Présentation de l'affichage
    8. +
    9. Dessiner une fonction
    10. +
    11. Se déplacer à travers la fonction
    12. +
    13. Le menu des options
    14. +
    15. Le menu des outils
    16. +
    17. Dessiner plusieurs fonctions
    18. +
    19. Mettre à jour GraphMe
    20. +
    21. Contact
    22. +
    +

    1. Introduction

    +

    + GraphMe est un traceur de fonctions mathématiques que j'ai programmé dans le cadre du travail de maturité gymnasiale. Il est codé en HTML, CSS et JavaScript. Ce grapheur est disponible sur un cd-rom accompagnant mon travail de maturité ainsi que sur internet à la page http://gyb.educanet2.ch/tm-widgets/.ws_gen/?15. Ce document a pour but d'expliquer comment utiliser GraphMe. Il présente ses différentes fonctions ainsi que quelques astuces utiles à l'utilisateur. +

    + +

    2. Installation

    +

    + Le widget que vous pouvez télécharger sur internet est compressé au format zip. Avant de l'utiliser, il est nécessaire de le décompresser. Si vous n'avez aucuns programmes permettant d'ouvrir les fichiers zip, vous pouvez télécharger 7zip sur http://www.7-zip.org/. GraphMe a été conçu pour s'utiliser dans un navigateur internet ou s'intégrer à Uniboard. Pour l'ajouter aux widgets d'Uniboard, il faut copier le dossier « GraphMe.wgt » dans « library/interactive/ ». Par exemple, sous Windows, le widget doit être dans : « C:/Program Files/Uniboard 4/library/interactive/GraphMe.wgt ». Si vous n'avez pas Uniboard, vous pouvez l'obtenir sur http://getuniboard.com/. +

    + +

    3. Afficher le widget

    +
    Image de GraphMe dans un navigateur internet
    +

    + A) Pour afficher le widget dans un navigateur, il faut simplement ouvrir le fichier « Grapheur.xhtml » qui se trouve dans le dossier « GraphMe.wgt » avec votre navigateur internet. Toutefois, certains navigateurs n'arrivent pas à afficher le widget. La liste suivante contient les navigateurs sur lesquels le widget a été testé : +

    +
      +
    • Mozilla Firefox (3.5) : tout fonctionne très bien.
    • +
    • Internet Explorer (8.0) : impossible d'ouvrir le widget, le format .xhtml n'est pas reconnu.
    • +
    • Internet Explorer (pré-version 9.0) : le widget est ouvrable mais seul l'affichage utilisant SVG fonctionne, « canvas » n'est toujours pas supporté.
    • +
    • Konqueror (4.3.4) : le widget s'ouvre mais il y a quelques problèmes d'affichage. Il est quand même utilisable en sélectionnant la méthode d'affichage « canvas » dans les options.
    • +
    • Rekonq (0.5) : le widget fonctionne très bien avec « canvas » mais est un peut lent en utilisant SVG.
    • +
    • Opera (10.51) : le widget est parfaitement utilisable
    • +
    • Google Chrome (4.1) : tout fonctionne également. L'affichage 3D est même très rapide comparé à d'autres navigateurs.
    • +
    +

    + B) Pour ouvrir le widget dans Uniboard, il faut tout d'abord cliquer sur le bouton « Bibliothèque » en haut de la fenêtre. Ensuite, allez dans l'onglet « Interactif » ou autrement, selon les version d'Uniboard, dans l'onglet « Applications ». Cliquez sur l'icône correspondant à « Traceur de fonctions mathématiques » et finalement sur « Ajouter à la page ». +

    +
    Image de GraphMe dans Uniboard
    + + +

    4. Présentation de l'affichage

    +
      +
    1. Champ permettant de définir la fonction à afficher.
    2. +
    3. Bouton affichant la fonction.
    4. +
    5. Bouton servant à ajouter une nouvelle fonction ou à accéder à l'historique des fonctions.
    6. +
    7. Zone d'affichage.
    8. +
    9. Options d'affichage permettant de définir la partie de la fonction à afficher.
    10. +
    11. Boutons de zoom.
    12. +
    13. Bouton servant à changer la couleur.
    14. +
    15. Boutons accédant aux différents menus.
    16. +
    17. Onglet choisissant entre les fonctions 2D et 3D.
    18. +
    19. Bouton de maximisation du widget.
    20. +
    + + +

    5. Dessiner une fonction

    +

    + Pour dessiner une fonction mathématique, il suffit d'entrer celle-ci dans le champ en haut du widget et de cliquer sur le bouton « Afficher ». On peut utiliser différentes fonctions et constantes prédéfinies: +

    +

    Les opérations de base

    +
      +
    • l'addition → +
    • +
    • la soustraction → -
    • +
    • la multiplication → *
    • +
    • la division → /
    • +
    • le modulo → %
    • +
    +

    Les fonctions trigonométriques

    +
      +
    • sin(x), cos(x), tan(x), cot(x)
    • +
    • asin(x), acos(x), atan(x), acot(x) ( ou arcsin(x), arccos(x), arctan(x), arccot(x) )
    • +
    +

    Les racines et les puissances

    +
      +
    • sqrt(x) fait la racine carrée de x
    • +
    • pow(x, y) élève un nombre x à une puissance y, par exemple :
      x² → pow(x, 2)
      (x+3)⁵ → pow((x+3), 5)
    • +
    • root(x, y) fait la racine yème d'un nombre x
    • +
    +

    Les exponentielles et logarithmes

    +
      +
    • exp(x)
    • +
    • ln(x) est le logarithme naturel
    • +
    • log(x) est le logarithme de base 10
    • +
    +

    Les arrondis

    +
      +
    • round(x) → arrondit à l'entier le plus proche
    • +
    • ceil(x) → arrondit à l'entier supérieur
    • +
    • floor(x) → arrondit à l'entier inférieur
    • +
    +

    Autres fonctions prédéfinies

    +
      +
    • abs(x) → la valeur absolue d'un nombre
    • +
    • random() → retourne un nombre aléatoire entre 0 et 1
    • +
    +

    Les constantes

    +
      +
    • pi = 4 * atan(1) ≈ 3.141592653589793
    • +
    • e = exp(1) ≈ 2.718281828459045
    • +
    +

    + Il n'est pas toujours facile de comprendre comment écrire la fonction désirée. En effet, une petite faute et elle ne s'affichera pas. De plus, il ne faut pas oublier de mettre un « * » entre les thermes à multiplier et d'utiliser le point « . » pour écrire des nombres à virgule. +

    +

    + Les fonctions en deux dimensions s'écrivent sous la forme : y=[...] et les fonctions en trois dimensions sous la forme : z=[...]. D'autres exemples sont disponibles dans le menu « aide » du widget si vous avez de la peine à entrer une fonction. +

    + +

    6. Se déplacer à travers la fonction

    +

    + Parfois, lorsqu'on dessine une fonction, la zone visible n'est pas très intéressante. Pour cela, il est utile de déplacer l'affichage ou de définir soi-même la zone à afficher. +

    + +

    + Pour déplacer la fonction, il suffit d'utiliser les flèches de navigation situées dans les quatre bords de l'affichage ou l'outil de déplacement à la souris (dans le menu « Outils »). +

    +

    + Pour définir la zone à afficher, il faut entrer des valeurs personnalisées dans les champs à gauche du widget. La valeur de gauche doit obligatoirement être plus petite que la valeur de droite. Dans le cas contraire, la fonction ne se dessinera pas. +

    +

    + Il est possible de zoomer ou dé-zoomer l'affichage en utilisant les boutons du menu de gauche pour voir une plus grande partie de la fonction. Le zoom peut être réinitialisé dans les options. On peut également cliquer deux fois sur le graphique pour zoomer ainsi que dé-zoomer en maintenant la touche « ctrl » appuyée et en cliquant deux fois. +

    + +

    + Cliquez sur le bouton « Options » à gauche du widget pour ouvrir ce menu. En cliquant à nouveau sur le bouton, cela ferme le menu. Plusieurs onglets permettent de naviguer entre les différentes options. Description des options : +

    +
      +
    • Le thème du widget change l'image de fond ainsi que différentes couleurs. Dans Uniboard, changer le thème permet de rendre le widget plus visible selon qu'il se trouve sur un fond noir ou un fond blanc.
    • +
    • La méthode d'affichage permet de définir la façon dont le graphique de la fonction sera dessiné. Il y a le choix entre six possibilités :
      +
        +
      1. SVG est un format d'image vectoriel qui peut être intégré dans une page HTML. Il est compatible dans la plupart des navigateurs Internet et est très bien supporté par Uniboard, c'est pourquoi il est choisi par défaut.
      2. +
      3. « SVG (une image) » ne présente que peu de différence avec la méthode d'affichage « SVG ». A moins d'un problème de compatibilité, il n'est pas très utile de la choisir.
      4. +
      5. Canvas est une nouvelle balise présente depuis HTML 5.0. Elle permet de définir une zone dans laquelle on peut faire des dessins. Cette méthode d'affichage est plus rapide que d'utiliser du SVG, cependant, elle n'est pas complètement compatible dans Uniboard. Il est conseillé de choisir cette option si vous utilisez le widget ailleurs que dans Uniboard.
      6. +
      7. Canvas (point) utilise aussi canvas, mais dessine des points à la place de lignes.
      8. +
      9. XPM est un format d'image très peu connu. De ce fait, il est compatible qu'avec une minorité de navigateur.
      10. +
      11. La méthode d'affichage « Uniboard » permet de dessiner directement sur la page d'Uniboard avec les outils de dessins.
      12. +
      + +
    • +
    • Le zoom par défaut ainsi que le bouton « réinitialiser le zoom » permettent de remettre l'affichage à l'état qu'il était à l'ouverture du widget. Cela permet aussi de centrer l'affichage sur l'origine.
    • +
    • Les options d'affichage permettent d'afficher ou non la grille, les axes ainsi que l'échelle. Elles sont utiles pour rendre l'affichage plus lisible. Il est également possible de modifier l'épaisseur du trait de la fonction.
    • +
    • Le décalage du graphique n'a en principe pas besoin d'être utilisé. Il permet de déplacer tout l'affichage dans un sens ou dans l'autre, s'il n'est pas centré à la bonne place. Cela peut arriver avec certains navigateurs Internet.
    • +
    • La précision des calculs du graphique permet d'augmenter ou de diminuer le nombre de points calculés. Plus le nombre est petit, plus la précision est grande. Il est utile de mettre cette valeur à « 0.01 » si vous dessinez des fonctions ressemblant à 0.5*sin(10*x*x).
    • +
    • Dans les options 3D, le style d'affichage permet de choisir comment la fonction est dessinée : avec des petits points ou avec des polygones (surfaces). La plupart des fonctions sont plus jolies en dessinant la surface entre les points calculés. Toutefois, c'est mieux de dessiner des points pour des fonctions comme la demi-sphère : sqrt(12-x*x-y*y).
    • +
    • Dans le dernier onglet, vous pouvez modifier d'autres options 3D, comme la précision des calculs ainsi que la couleur de la fonction.
    • +
    + +

    + Ce menu permet tout d'abord de choisir l'action de la souris sur le graphique. Il y a le choix entre trois possibilités : +

    +
      +
    • L'outil sélectionné par défaut est le point. En bougeant la souris, un point se déplace sur la fonction et les coordonnées de ce point sont indiquées en haut à gauche de l'affichage.
    • +
    • Le deuxième outil est le déplacement. Il permet de déplacer le graphique avec la souris. Il suffit de tenir cliqué sur l'affichage et de bouger la souris. Malheureusement, cet outil peut être lent sur certains navigateurs.
    • +
    • Le troisième outil est la tangente. Cet outil dessine la tangente à la fonction au point où se trouve la souris.
    • +
    +

    + Ensuite, ce menu permet aussi de calculer un point de la fonction. Il faut simplement entrer la coordonnée « x » du point dont on veut trouver la coordonnée « y », et appuyer sur le bouton « Évaluer ». Par exemple, si la fonction est « x*x » et qu'on défini « x=2 », alors le point dont la coordonnée sur l'axe des X est « 2 » aura comme coordonnée sur l'axe des Y « 4 ». +

    +

    + Un autre outil très utile est l'étude de fonction. Pour étudier la fonction entrée dans le champ en haut du widget, cliquez sur « démarrer l'étude ». Les études de fonction de ce widget ne sont pas fiables à 100% mais servent de complément à une étude de fonction que l'on fait soi-même. Il se peut que cet outil soit amélioré dans une prochaine version du widget. +

    +

    + Dans ce menu, on trouve également des tests d'affichage. Ils permettent d'essayer les différentes méthodes d'affichage et de voir si elles fonctionnent sur le navigateur internet utilisé. +

    +

    9. Dessiner plusieurs fonctions

    +

    + Pour dessiner plusieurs fonctions simultanément, cliquez sur le petit bouton « + » qui se situe à droite du bouton « Afficher » (point 1). Ensuite, un menu apparaît. +

    + +

    + Dans ce menu, des onglets permettent d'aller à l'historique ou aux fonctions supplémentaires (point 2). Pour ajouter une fonction, cliquez sur le bouton à droite de la fonction actuelle (point 3). En dessous, une liste contient toutes les fonctions affichées (point 4). Pour supprimer une fonction, il faut simplement cliquer sur le bouton « - » à coté de celle-ci. Il est également possible de modifier la couleur de chaque fonction séparément. +

    +

    + L'historique permet de revoir toutes les fonctions qui ont déjà été dessinées. Lorsque l'on clique sur une fonction de l'historique, celle qui est dessinée actuellement est remplacée par la fonction de l'historique. +

    +

    + Dessiner plusieurs fonctions simultanément est uniquement possible avec la méthode d'affichage « canvas » en deux dimensions. Par contre, l'historique est utilisable avec toutes les méthodes d'affichage. +

    +

    10. Mettre à jour GraphMe

    +

    + La dernière version du widget est téléchargeable sur la page suivante : http://gyb.educanet2.ch/tm-widgets/.ws_gen/?15. Pour mettre à jour GraphMe, vous pouvez aussi cliquer sur le bouton "Mise à jour" dans le menu des options. +

    +

    11. Contact

    +

    + Si vous voulez rapporter un bug, avez une suggestion par rapport au widget ou voulez simplement poser une question, merci de me contacter par e-mail à l'adresse : yannick.vessaz@gmail.com. +

    + + \ No newline at end of file diff --git a/resources/library/applications/GraphMe.wgt/Images/GraphMe.png b/resources/library/applications/GraphMe.wgt/Images/GraphMe.png new file mode 100644 index 0000000..e9a1740 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/GraphMe.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_AjouterWidget.png b/resources/library/applications/GraphMe.wgt/Images/Guide_AjouterWidget.png new file mode 100644 index 0000000..d500ab6 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_AjouterWidget.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Deplacement.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Deplacement.png new file mode 100644 index 0000000..bb954e7 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Deplacement.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Navigateur.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Navigateur.png new file mode 100644 index 0000000..7947c9e Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Navigateur.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Options.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Options.png new file mode 100644 index 0000000..fb02818 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Options.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Plus.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Plus.png new file mode 100644 index 0000000..f32b139 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Plus.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Presentation.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Presentation.png new file mode 100644 index 0000000..071a50a Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Presentation.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/Guide_Uniboard.png b/resources/library/applications/GraphMe.wgt/Images/Guide_Uniboard.png new file mode 100644 index 0000000..6139040 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/Guide_Uniboard.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/bottom-left.png b/resources/library/applications/GraphMe.wgt/Images/black/bottom-left.png new file mode 100644 index 0000000..8423b59 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/bottom-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/bottom-right.png b/resources/library/applications/GraphMe.wgt/Images/black/bottom-right.png new file mode 100644 index 0000000..915abc1 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/bottom-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/bottom.png b/resources/library/applications/GraphMe.wgt/Images/black/bottom.png new file mode 100644 index 0000000..d61623c Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/bottom.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/center.png b/resources/library/applications/GraphMe.wgt/Images/black/center.png new file mode 100644 index 0000000..8ce9055 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/center.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/left.png b/resources/library/applications/GraphMe.wgt/Images/black/left.png new file mode 100644 index 0000000..eeb4573 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/right.png b/resources/library/applications/GraphMe.wgt/Images/black/right.png new file mode 100644 index 0000000..ca19f46 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/top-left.png b/resources/library/applications/GraphMe.wgt/Images/black/top-left.png new file mode 100644 index 0000000..01fa7a6 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/top-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/top-right.png b/resources/library/applications/GraphMe.wgt/Images/black/top-right.png new file mode 100644 index 0000000..0fd8115 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/top-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/black/top.png b/resources/library/applications/GraphMe.wgt/Images/black/top.png new file mode 100644 index 0000000..1b2978f Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/black/top.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/bottom-left.png b/resources/library/applications/GraphMe.wgt/Images/blue/bottom-left.png new file mode 100644 index 0000000..59bd3d4 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/bottom-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/bottom-right.png b/resources/library/applications/GraphMe.wgt/Images/blue/bottom-right.png new file mode 100644 index 0000000..850fb3c Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/bottom-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/bottom.png b/resources/library/applications/GraphMe.wgt/Images/blue/bottom.png new file mode 100644 index 0000000..0ff3f4a Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/bottom.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/center.png b/resources/library/applications/GraphMe.wgt/Images/blue/center.png new file mode 100644 index 0000000..6b984a2 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/center.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/left.png b/resources/library/applications/GraphMe.wgt/Images/blue/left.png new file mode 100644 index 0000000..81b692b Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/right.png b/resources/library/applications/GraphMe.wgt/Images/blue/right.png new file mode 100644 index 0000000..db5ed62 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/top-left.png b/resources/library/applications/GraphMe.wgt/Images/blue/top-left.png new file mode 100644 index 0000000..e5f38e7 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/top-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/top-right.png b/resources/library/applications/GraphMe.wgt/Images/blue/top-right.png new file mode 100644 index 0000000..b27b6ec Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/top-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/blue/top.png b/resources/library/applications/GraphMe.wgt/Images/blue/top.png new file mode 100644 index 0000000..9538dd5 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/blue/top.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/cursor.png b/resources/library/applications/GraphMe.wgt/Images/cursor.png new file mode 100644 index 0000000..3170b04 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/cursor.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-left.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-left.png new file mode 100644 index 0000000..cd121e5 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-right.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-right.png new file mode 100644 index 0000000..7c32bb8 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom.png new file mode 100644 index 0000000..c9e7b15 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/bottom.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/center.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/center.png new file mode 100644 index 0000000..20e7370 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/center.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/left.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/left.png new file mode 100644 index 0000000..d88f7be Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/right.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/right.png new file mode 100644 index 0000000..c3994ad Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/top-left.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/top-left.png new file mode 100644 index 0000000..8b03ecc Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/top-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/top-right.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/top-right.png new file mode 100644 index 0000000..9db3c01 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/top-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/darkblue/top.png b/resources/library/applications/GraphMe.wgt/Images/darkblue/top.png new file mode 100644 index 0000000..7b06844 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/darkblue/top.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/gradient.png b/resources/library/applications/GraphMe.wgt/Images/gradient.png new file mode 100755 index 0000000..5fceffe Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/gradient.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/gradient1.png b/resources/library/applications/GraphMe.wgt/Images/gradient1.png new file mode 100755 index 0000000..2b4ba13 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/gradient1.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/gradient2.png b/resources/library/applications/GraphMe.wgt/Images/gradient2.png new file mode 100644 index 0000000..57d0779 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/gradient2.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/gradient3.png b/resources/library/applications/GraphMe.wgt/Images/gradient3.png new file mode 100644 index 0000000..441ccf5 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/gradient3.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/gradient4.png b/resources/library/applications/GraphMe.wgt/Images/gradient4.png new file mode 100644 index 0000000..c3449f7 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/gradient4.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/mini_icon.png b/resources/library/applications/GraphMe.wgt/Images/mini_icon.png new file mode 100644 index 0000000..bddfac5 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/mini_icon.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/move.png b/resources/library/applications/GraphMe.wgt/Images/move.png new file mode 100644 index 0000000..045554a Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/move.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/onglet1.png b/resources/library/applications/GraphMe.wgt/Images/onglet1.png new file mode 100644 index 0000000..1439a8c Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/onglet1.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/onglet2.png b/resources/library/applications/GraphMe.wgt/Images/onglet2.png new file mode 100644 index 0000000..5f1dd66 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/onglet2.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/tangent.png b/resources/library/applications/GraphMe.wgt/Images/tangent.png new file mode 100644 index 0000000..f08c37d Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/tangent.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/bottom-left.png b/resources/library/applications/GraphMe.wgt/Images/white/bottom-left.png new file mode 100644 index 0000000..8e8312e Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/bottom-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/bottom-right.png b/resources/library/applications/GraphMe.wgt/Images/white/bottom-right.png new file mode 100644 index 0000000..4e691af Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/bottom-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/bottom.png b/resources/library/applications/GraphMe.wgt/Images/white/bottom.png new file mode 100644 index 0000000..43ddff4 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/bottom.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/center.png b/resources/library/applications/GraphMe.wgt/Images/white/center.png new file mode 100644 index 0000000..4068e6f Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/center.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/left.png b/resources/library/applications/GraphMe.wgt/Images/white/left.png new file mode 100644 index 0000000..b2116a1 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/right.png b/resources/library/applications/GraphMe.wgt/Images/white/right.png new file mode 100644 index 0000000..c6e32ad Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/top-left.png b/resources/library/applications/GraphMe.wgt/Images/white/top-left.png new file mode 100644 index 0000000..7c3a576 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/top-left.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/top-right.png b/resources/library/applications/GraphMe.wgt/Images/white/top-right.png new file mode 100644 index 0000000..037ffc8 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/top-right.png differ diff --git a/resources/library/applications/GraphMe.wgt/Images/white/top.png b/resources/library/applications/GraphMe.wgt/Images/white/top.png new file mode 100644 index 0000000..1bd3bf4 Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/Images/white/top.png differ diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Affichage.js b/resources/library/applications/GraphMe.wgt/JavaScript/Affichage.js new file mode 100644 index 0000000..9407063 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Affichage.js @@ -0,0 +1,386 @@ + +// Convertir une coordonnée sur le graphique en position relative à l'affichage (ou à l'écran si ecran = true) +function coordToPosX(x, ecran){ + if(ecran){ + return coordToPosX(x, false)+affichage.offsetLeft; + } + else{ + return (x - affichage.xGauche) * affichage.multX; + } +} +function coordToPosY(y, ecran){ + if(ecran){ + return coordToPosY(y, false)+affichage.offsetTop; + } + else{ + return affichage.hauteur - (y - affichage.yBas) * affichage.multY; + } +} + +var affichage = { + // Options + id : "affichage", + largeur : 640, // Set by init + hauteur : 430, // Set by init + couleurFond : "rgba(0,0,0,0)", + + // Bornes (zone d'affichage) + xGauche : -5.5, // Set by init + xDroite : 5.5, // Set by init + yBas : -3.7, + yHaut : 3.7, + + multX : 1, + multY : 1, + + // Axes + axes : true, + couleurAxes : "rgba(0,0,0,0.5)", + widthAxes : 2, + // Grille + grille : true, + couleurGrille : "rgba(255,255,255,0.1)", + widthGrille : 2, + // Echelle + echelle : true, + couleurEchelle : "rgba(255,255,255,1)", + + // Précision + precision : 100, + precisionAmelioree : true, // false = fonction plus jolie lorsqu'on dé-zoom, true = affichage plus rapide lors du dé-zoom. + + // Méthode et style + methode : "canvas", + style : "continu", + + // Variable définies lors de l'initialisation + canvas : null, + ctx : null, + object : null, + offsetTop : null, // Position de l'affichage par rapport à la page + offsetLeft : null, + + init : function(element, width, height){ + this.setBornes(); + + // Supprimer le contenu de l'affichage + if(!element){ + element = document.getElementById(this.id); + } + if(element.hasChildNodes()){ + while(element.childNodes.length >= 1 ){ + element.removeChild(element.firstChild); + } + } + + // Définir la taille + this.largeur = width || element.clientWidth; + this.hauteur = height || element.clientHeight; + + // Set left and right proportionally to width, height, top and bottom + var centerX = this.xGauche + (this.xDroite - this.xGauche)/2; + var centerY = this.yBas + (this.yHaut - this.yBas)/2; + var dx = ((this.yHaut - this.yBas) / 2) * this.largeur / this.hauteur; + this.xGauche = Math.round((centerX - dx)*100)/100; + this.xDroite= Math.round((centerX + dx)*100)/100; + this.setBornes(); + + // Récupérer la position + var boundingClientRect = element.getBoundingClientRect(); + this.offsetTop = boundingClientRect.top; + this.offsetLeft = boundingClientRect.left; + + // Sélectionner la méthode d'affichage + if(this.methode == "svg"){ +// this.object = document.createElement("embed"); +// this.object.type = "image/svg+xml"; +// this.object.src = "AffichageSVG.svg"; + this.object = document.getElementById("embedSVG"); + this.object.width = this.largeur; + this.object.height = this.hauteur; + this.object.style.top = this.offsetTop +1 +"px"; + this.object.style.left = this.offsetLeft +1 +"px"; + this.object.style.display = "block"; +// element.appendChild(this.object); + +// affichage.ctx = svg; +// affichage.dessiner(); +// // Exécuter this.dessiner() maintenant ne va pas car svg n'est pas +// // encore défini dans cette fonction, il faut en lancer un nouvelle... + setTimeout("affichage.ctx = svg", 50); + setTimeout("affichage.dessiner()", 100); + } + else if(this.methode == "uniboard"){ + if(window.uniboard || window.sankore){ + try{ + initUniboard(); + this.ctx = uniboard; + this.dessiner(); + } + catch(err){ + alert(err.message); + } + } + else{ + this.methode = "canvas"; + this.setOptions(); + this.init(); + } + } + else{ + document.getElementById("embedSVG").style.display = "none"; + + this.canvas = document.createElement("canvas"); + this.canvas.width = this.largeur; + this.canvas.height = this.hauteur; + element.appendChild(this.canvas); + + this.ctx = this.canvas.getContext("2d"); + + this.dessiner(); + } + + // Événements + if(window.addEventListener){ + element = document.getElementById("eventAffichage"); + element.addEventListener('DOMMouseScroll', souris.wheel, false); + element.onmousewheel = souris.wheel; + element.oncontextmenu = ctxMenu.ouvrir; + } + }, + + calculer : function(){ + this.getBornes(); + this.getOptions(); + if(fonction3D){ + display3D.draw() + } + else{ + this.dessiner(); + } + saveOptions(); + }, + + dessiner : function(){ + try{ +// var ti = new Date().getTime(); + var precision; + if(this.precisionAmelioree){ + precision = 10/this.precision; + } + else{ + precision = Math.abs(this.xDroite - this.xGauche)/this.precision; + } + this.multX = this.largeur/Math.abs(this.xDroite - this.xGauche); + this.multY = this.hauteur/Math.abs(this.yHaut - this.yBas); + + var ctx = new Object(); + ctx = this.ctx; + ctx.clearRect(0,0,this.largeur,this.hauteur); + + ctx.fillStyle = this.couleurFond; + ctx.fillRect(0,0,this.largeur,this.hauteur); + + ctx.strokeOpacity = 1; // svg + + // Couleur pour l'aire sous la fonction + ctx.fillStyle = "rgba(0,180,255,0.3)"; + + // Fonctions + for(var i=0; i x : ajouter = 0.5") + } + + this.xGauche -= ajouter; + this.xDroite += ajouter; + + // Vertical + diffBornes = Math.abs(this.yHaut - this.yBas); + ajouter = Math.round(diffBornes * (facteur-1)*2)/4; + if(ajouter == 0){ + ajouter = 0.25; +// log("affichage.zoom -> y : ajouter = 0.5") + } + + this.yBas -= ajouter; + this.yHaut += ajouter; + + this.dessiner(); + this.setBornes(); + + saveOptions(); + } +}; diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Affichage3D.js b/resources/library/applications/GraphMe.wgt/JavaScript/Affichage3D.js new file mode 100755 index 0000000..9cf88b6 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Affichage3D.js @@ -0,0 +1,407 @@ + +var fonction3D = false; +var outilPrecedent = ""; + +function activer3D(){ + if(fonction3D){ // Si activé alors on le désative + fonction3D = false; + outil.choisir(outilPrecedent); + document.getElementById('onglet3D').innerHTML = "3D"; + document.getElementById('zoomButtons').style.display = "block"; + document.getElementById('toolButtons').style.display = "block"; + affichage.init(); + outil.init(); + affichage.initZoom2(document.getElementById('zoomDefaut').value); + } + else{ // Sinon on l'active + fonction3D = true; + outilPrecedent = outil.actuel; + outil.choisir("deplacement"); + document.getElementById('onglet3D').innerHTML = "2D"; + document.getElementById('zoomButtons').style.display = "none"; + document.getElementById('toolButtons').style.display = "none"; + display3D.init(); + outil.liste = []; + outil.init(); + message.supprimer(); + } + cacherMenu(); + if(fonction3D){ + if(document.getElementById('input3D').value == ""){ + afficherMenu('menuFonctions3D'); + } + else{ + display3D.draw(); + } + } + saveOptions(); +} + +var display3D = { + canvas: null, + ctx: null, + width: 0, + height: 0, + centerX: 0, + centerY: 0, + scale: 50, + linePrecision: 0.02, + functionPrecision: 0.2, + angle: Math.PI/8, + zoomValue: 1, + left: -6.5, + right: 6.5, + rouge3D: 0, + vert3D: 1, + bleu3D: 2, + couleurGenerale: 0, + background: "rgba(0, 0, 0, 0.5)", + + init: function(width, height){ + var displayElement = document.getElementById("affichage"); + + // Clear displayElement content + if(displayElement.hasChildNodes()){ + while(displayElement.childNodes.length >= 1 ){ + displayElement.removeChild(displayElement.firstChild); + } + } + + // Setup sizes + this.width = width || displayElement.clientWidth; + this.height = height || displayElement.clientHeight; + this.centerX = this.width / 2; + this.centerY = this.height / 2; + + // Create canvas + this.canvas = document.createElement("canvas"); + this.canvas.width = this.width; + this.canvas.height = this.height; + displayElement.appendChild(this.canvas); + + this.ctx = this.canvas.getContext('2d'); + this.clear(); + }, + + clear: function(){ + var ctx = this.ctx; + ctx.clearRect(0, 0, this.width, this.height); + ctx.fillStyle = this.background; + ctx.fillRect(0, 0, this.width, this.height); + this.axes(); + }, + + draw: function(){ + // var ti = new Date().getTime(); + // this.init(); + this.clear(); + + var txtFct = fct.remplacer(fct.verifier(document.getElementById("input3D").value)); + if(txtFct == ""){ + return; + } + + var func = new CartesianFunction(txtFct); + + if(document.getElementById("selectAffichage3D").value == "points"){ + var coordX, coordY, coordZ; + for(var x=this.left; xthis.left; x1-=this.functionPrecision){ + for(var y1=this.right; y1>this.left; y1-=this.functionPrecision){ + x = x1; + y = y1; + z1 = func.f(x,y); + x2 = x1 - this.functionPrecision; + y2 = y1; + x = x2; + //y = y2; + z2 = func.f(x,y); + x3 = x2; + y3 = y2 - this.functionPrecision; + //x = x3; + y = y3; + z3 = func.f(x,y); + x4 = x3 + this.functionPrecision; + y4 = y3; + x = x4; + //y = y4; + z4 = func.f(x,y); + if(isNaN(z1)||isNaN(z2)||isNaN(z3)||isNaN(z4)){ + continue; + } + this.polygone3D(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4); + } + } + } + } + // var tf = new Date().getTime(); + // window.console.log(tf-ti); + }, + + // Dessine un point à la position (x, y, z) + point3D: function(x, y, z){ + var posX = (Math.sin(this.angle)*x + Math.cos(this.angle)*y)*this.scale; + var posZ = -(z - Math.cos(this.angle)*x/2.6 + Math.sin(this.angle)*y/2.6)*this.scale; + + var opacity = Math.round((1-((5+y*Math.sin(this.angle)-x*Math.cos(this.angle)) / 450)*this.scale)*1000)/1000; + var couleur = new Array(); + couleur[0] = Math.round((5+z)*this.scale); + couleur[1] = Math.round(510 - (5+z)*this.scale); + couleur[2] = this.couleurGenerale; + if(opacity > 1){ opacity = 1; } + if(opacity < 0){ opacity = 0; } + if(couleur[0] > 255){ couleur[0] = 255; } + if(couleur[0] < 0){ couleur[0] = 0; } + if(couleur[1] > 255){ couleur[1] = 255; } + if(couleur[1] < 0){ couleur[1] = 0; } + + var ctx = this.ctx; + ctx.save(); + ctx.translate(this.centerX, this.centerY); + ctx.scale(this.zoomValue, this.zoomValue); + ctx.fillStyle = "rgba("+couleur[this.rouge3D]+","+couleur[this.vert3D]+", "+couleur[this.bleu3D]+", "+opacity+")"; + ctx.fillRect(posX-1, posZ-1, 2, 2); + ctx.restore(); + }, + + // Dessine un polygone qui a comme sommets : (x1, y1, z1) , (x2, y2, z2), (x3, y3, z3) et (x4, y4, z4) + polygone3D: function(x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4){ + var ctx = this.ctx; + ctx.save(); + ctx.translate(this.centerX, this.centerY); + ctx.scale(this.zoomValue, this.zoomValue); + ctx.beginPath(); + ctx.moveTo((Math.sin(this.angle)*x1 + Math.cos(this.angle)*y1)*this.scale , -(z1 - Math.cos(this.angle)*x1/2.6 + Math.sin(this.angle)*y1/2.6)*this.scale); + ctx.lineTo((Math.sin(this.angle)*x2 + Math.cos(this.angle)*y2)*this.scale , -(z2 - Math.cos(this.angle)*x2/2.6 + Math.sin(this.angle)*y2/2.6)*this.scale); + ctx.lineTo((Math.sin(this.angle)*x3 + Math.cos(this.angle)*y3)*this.scale , -(z3 - Math.cos(this.angle)*x3/2.6 + Math.sin(this.angle)*y3/2.6)*this.scale); + ctx.lineTo((Math.sin(this.angle)*x4 + Math.cos(this.angle)*y4)*this.scale , -(z4 - Math.cos(this.angle)*x4/2.6 + Math.sin(this.angle)*y4/2.6)*this.scale); + + var opacity = Math.round((1-((5+y1*Math.sin(this.angle)-x1*Math.cos(this.angle)) / 450)*this.scale)*1000)/1000; + var couleur = new Array(); + couleur[0] = Math.round((5+z1)*this.scale); + couleur[1] = Math.round(510 - (5+z1)*this.scale); + couleur[2] = this.couleurGenerale; + if(opacity > 1){ opacity = 1; } + if(opacity < 0){ opacity = 0; } + + // for(var i=0; i 255){ couleur[0] = 255; } + if(couleur[0] < 0){ couleur[0] = 0; } + if(couleur[1] > 255){ couleur[1] = 255; } + if(couleur[1] < 0){ couleur[1] = 0; } + + ctx.fillStyle = "rgba("+couleur[this.rouge3D]+","+couleur[this.vert3D]+", "+couleur[this.bleu3D]+", "+opacity+")"; + ctx.strokeStyle = "rgba(0,0,0,0.1)"; + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + ctx.restore(); + }, + + // Dessine les axes + axes: function(){ + for(var i=-5; i<5; i+=this.linePrecision){ + this.point3D(0, 0, i); + } + for(var i=-5.5; i<5.5; i+=this.linePrecision){ + this.point3D(i, 0, 0); + } + for(var i=-5.5; i<5.5; i+=this.linePrecision){ + this.point3D(0, i, 0); + } + }, + + cube: function(x, y, z, r){ + // Face de devant + for(var i=0; i 255){ + this.couleurGenerale = 255; + } + switch(document.getElementById("selectRouge3D").value){ + case "plus": + this.rouge3D = 0; + rouge = 255; + sensRouge = -1; + break; + case "moins": + this.rouge3D = 1; + rouge = 0; + sensRouge = 1; + break; + case "tout": + this.rouge3D = 2; + rouge = this.couleurGenerale; + sensRouge = 0; + break; + } + switch(document.getElementById("selectVert3D").value){ + case "plus": + this.vert3D = 0; + vert = 255; + sensVert = -1; + break; + case "moins": + this.vert3D = 1; + vert = 0; + sensVert = 1; + break; + case "tout": + this.vert3D = 2; + vert = this.couleurGenerale; + sensVert = 0; + break; + } + switch(document.getElementById("selectBleu3D").value){ + case "plus": + this.bleu3D = 0; + bleu = 255; + sensBleu = -1; + break; + case "moins": + this.bleu3D = 1; + bleu = 0; + sensBleu = 1; + break; + case "tout": + this.bleu3D = 2; + bleu = this.couleurGenerale; + sensBleu = 0; + break; + } + document.getElementById("apercuCouleur3D").innerHTML = "."; + for(var i=0; i."; + } + if(this.ctx){ + this.draw(); + } + }, + + zoom: function(value){ + if(!fonction3D){ + return; + } + this.zoomValue *= value; + this.left /= value; + this.right /= value; + this.functionPrecision /= value; + this.linePrecision /= value; + //alert(this.zoomValue+" ; "+this.left+" ; "+this.right+" ; "+this.functionPrecision+" ; "+this.linePrecision); + this.draw(); + }, + + move: function(value){ + this.angle += Math.PI/32 * value; + this.draw(); + }, + + initZoom: function(){ + this.angle = Math.PI/8; + this.zoomValue = 1; + this.left = -6.5; + this.right = 6.5; + this.draw(); + } +}; + diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/AffichageSVG.svg b/resources/library/applications/GraphMe.wgt/JavaScript/AffichageSVG.svg new file mode 100644 index 0000000..ac73b17 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/AffichageSVG.svg @@ -0,0 +1,100 @@ + + + + + + + \ No newline at end of file diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/AffichageUniboard.js b/resources/library/applications/GraphMe.wgt/JavaScript/AffichageUniboard.js new file mode 100755 index 0000000..11b3d0e --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/AffichageUniboard.js @@ -0,0 +1,299 @@ +// -------------------- Uniboard -------------------- +// Ces fonctions permettent de dessiner le graphique directement dans Uniboard. + +function colorToHex(color) { + var addZero = function(myString){ + if (myString.length == 1) return "0" + myString; + else return myString; + } + + var digits = /(.*?)rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(color); + if (digits == null){ + digits = /(.*?)rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(color); + } + if(digits == null){ + return ""; + } + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + var hexcode = addZero(red.toString(16)) + addZero(green.toString(16)) + addZero(blue.toString(16)); + return '#' + hexcode.toUpperCase(); +} + +function initUniboard(){ + if(!window.uniboard && window.sankore){ + uniboard = sankore; + } + uniboard.centerOn(337,245); +// uniboard.setTool("pen"); + + // Paramètres par défaut + uniboard.lineWidth = 1; + uniboard.fillStyle = "black"; + uniboard.strokeStyle = "black"; + + // Position du curseur pour écrire des nombres + uniboard.cursorX = 0; + uniboard.cursorY = 0; + + // Fonctions + uniboard.strokeColor = function(){ + this.setPenColor(colorToHex(this.strokeStyle)); + }; + + uniboard.fillColor = function(){ + this.setPenColor(colorToHex(this.fillStyle)); + }; + + uniboard.lineTo = function(x, y){ + if(y>-20 && y0){ + nonDefini--; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + nonDefini = 1; + } + } + } + else{ + nonDefini = 2; + } + } + if(this.style != "points"){ + ctx.stroke(); + } + } + + // Dérivée seconde + if(this.derivee2){ + ctx.beginPath(); + ctx.strokeStyle = this.couleurDerivee2; + ctx.fillStyle = this.couleurDerivee2; + ctx.moveTo(-100,-100); + nonDefini = 1; + var pente, pente2; + var x0 = affichage.xGauche-precision; + var y0 = this.f(x0); + var p0 = 0; + + for(x = affichage.xGauche-precision*3; x <= affichage.xDroite+precision; x+=precision){ + // Evaluer la valeur y du point x + y = this.f(x); + if(!isNaN(y)){ + // Transformation des coordonnées + p = (y-y0)/precision; + pente = (p-p0)/precision; + pointX = (x-precision/2 - affichage.xGauche) * affichage.multX; + pointY = affichage.hauteur - (pente - affichage.yBas) * affichage.multY; + y0 = y; + p0 = p; + + // Dessiner la dérivée seconde + if(nonDefini>0){ + nonDefini--; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + nonDefini = 1; + } + } + } + else{ + nonDefini = 3; + } + } + if(this.style != "points"){ + ctx.stroke(); + } + } + + // Primitive première + if(this.primitive1){ + ctx.beginPath(); + ctx.strokeStyle = this.couleurPrimitive1; + ctx.fillStyle = this.couleurPrimitive1; + ctx.moveTo(-affichage.xGauche*affichage.multX,affichage.hauteur-(this.conditionInitiale-affichage.yBas)*affichage.multY); + nonDefini = 0; + var pente, y0; + var conditionInitiale = this.conditionInitiale; +// precision /= 4; + + // Partie droite + y0 = conditionInitiale; + for(x = precision; x <= affichage.xDroite+precision; x+=precision){ + // Evaluer la valeur y du point x + pente = this.f(x); + if(!isNaN(pente)){ + // Transformation des coordonnées + y = y0 + pente * precision; + + pointX = (x - affichage.xGauche) * affichage.multX; + pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + y0 = y; + + // Dessiner la primitive + if(nonDefini>0){ + nonDefini--; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + nonDefini = 1; + } + } + } + else{ + nonDefini = 2; + } + } + if(this.style != "points"){ + ctx.stroke(); + } + // Partie gauche + ctx.beginPath(); + ctx.moveTo(-affichage.xGauche*affichage.multX,affichage.hauteur-(this.conditionInitiale-affichage.yBas)*affichage.multY); + nonDefini = 0; + y0 = conditionInitiale; + for(x = -precision; x >= affichage.xGauche-precision; x-=precision){ + // Evaluer la valeur y du point x + pente = this.f(x); + if(!isNaN(pente)){ + // Transformation des coordonnées + y = y0 - pente * precision; + + pointX = (x - affichage.xGauche) * affichage.multX; + pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + y0 = y; + + // Dessiner la primitive + if(nonDefini>0){ + nonDefini--; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + nonDefini = 1; + } + } + } + else{ + nonDefini = 2; + } + } + if(this.style != "points"){ + ctx.stroke(); + } + } + + // Fonction + ctx.beginPath(); + ctx.lineWidth = this.width; + if(affichage.methode == "uniboard"){ + ctx.lineWidth *= 3; + } + ctx.strokeStyle = this.couleur; + ctx.fillStyle = this.couleur; + ctx.moveTo(-100,-100); + nonDefini = true; + for(x = affichage.xGauche-precision; x <= affichage.xDroite+precision; x+=precision){ + // Evaluer la valeur y du point x + y = this.f(x); + if(!isNaN(y) && y <= affichage.yHaut+Math.abs(affichage.yHaut) && y >= affichage.yBas-Math.abs(affichage.yBas)){ + // Transformation des coordonnées + pointX = (x - affichage.xGauche) * affichage.multX; + pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + + // Dessiner la fonction + if(nonDefini){ + nonDefini = false; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + nonDefini = true; + } + } + + // Dessiner l'aire sous la fonction + if(this.aire){ + var zero = affichage.hauteur + affichage.yBas * affichage.multY; + var l = precision*affichage.multX; + ctx.fillStyle = "rgba(0,180,255,0.3)"; + ctx.fillRect(pointX-l/2, zero, l , pointY-zero); + ctx.fillStyle = this.couleur; + } + } + else{ + nonDefini = true; + } + } + if(this.style != "points"){ + ctx.stroke(); + } + + if(this.style == "points"){ + precision /= 2; + } + }; +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/ColorPicker.js b/resources/library/applications/GraphMe.wgt/JavaScript/ColorPicker.js new file mode 100644 index 0000000..ac4383e --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/ColorPicker.js @@ -0,0 +1,580 @@ + +// -------------------- Color Picker -------------------- + +var idColor = ""; + +// Différentes fonctions nécessaire au Color Picker (menu du choix de la couleur) + +var colorPicker = { + // Configuration + idSV : "canvasSV", // id du canvas affichant la saturation et la valeur + idT : "canvasT", // id du canvas affichant la teinte + idO : "canvasO", // id du canvas affichant l'opacité + width : 250, // largeur + height : 250, // hauteur + rayonRonds : 5, // rayon des ronds + ombreActive : "0px 0px 3px rgba(150,200,255,1), 0px 0px 8px rgba(64,190,255,1)", + ombreInactive : "0px 0px 5px rgba(64,64,64,0.4)", + + // Variables définies lors de l'initialisation + canvasSV : null, + canvasT : null, + canvasO : null, + ctxSV : null, + ctxT : null, + ctxO : null, + lingradS : null, + lingradV : null, + lingradT : null, + + // Couleurs + backgroundColor : "rgb(193,255,0)", + saturation : 100, + valeur : 100, + teinte : 75, + rouge : 193, + vert : 255, + bleu : 0, + opacity: 1, + // Couleurs RGB sans application de la saturation et de la valeur + r : 255, + g : 0, + b : 0, + + // Autres variables + sourisDown : false, // Indique si on clique sur le colorPicker ou pas + sourisDehors : true, // Indique si la souris est en-dehors du colorPicker lors d'un clique + idColor : null, + + // Fonction d'initialisation + init : function(id){ + // Récupérer les éléments + this.canvasSV = document.getElementById(this.idSV); + this.canvasT = document.getElementById(this.idT); + this.canvasO = document.getElementById(this.idO); + + // Définir la taille + this.canvasSV.width = this.width; + this.canvasSV.height = this.height; + this.canvasSV.style.width = this.width + "px"; + this.canvasSV.style.height = this.height + "px"; + + this.canvasT.width = this.width/10; + this.canvasT.height = this.height; + this.canvasT.style.width = this.width/10 + "px"; + this.canvasT.style.height = this.height + "px"; + + this.canvasO.width = this.width*1.15; + this.canvasO.height = this.height/10; + this.canvasO.style.width = this.width*1.15 + "px"; + this.canvasO.style.height = this.height/10 + "px"; + + // Initialisation canvas + this.ctxSV = this.canvasSV.getContext("2d"); + this.ctxT = this.canvasT.getContext("2d"); + this.ctxO = this.canvasO.getContext("2d"); + + // Création des dégradés + this.lingradV = this.ctxSV.createLinearGradient(0, 0, 0, this.height); + this.lingradV.addColorStop(0, 'rgba(255,255,255,0)'); + this.lingradV.addColorStop(1, 'rgba(255,255,255,1)'); + + this.lingradS = this.ctxSV.createLinearGradient(0, 0, this.width, 0); + this.lingradS.addColorStop(0, 'rgba(0,0,0,1)'); + this.lingradS.addColorStop(1, 'rgba(0,0,0,0)'); + + this.lingradT = this.ctxT.createLinearGradient(0, 0, 0, this.height); + this.lingradT.addColorStop(0, 'rgb(255,0,0)'); + this.lingradT.addColorStop(1/6, 'rgb(255,255,0)'); + this.lingradT.addColorStop(2/6, 'rgb(0,255,0)'); + this.lingradT.addColorStop(3/6, 'rgb(0,255,255)'); + this.lingradT.addColorStop(4/6, 'rgb(0,0,255)'); + this.lingradT.addColorStop(5/6, 'rgb(255,0,255)'); + this.lingradT.addColorStop(1, 'rgb(255,0,0)'); + + // Événements roulette (initialisé seulement une fois) + if(window.addEventListener && !this.idColor){ + this.canvasSV.addEventListener('DOMMouseScroll', function(event){colorPicker.eventWheel(event, colorPicker.idSV)}, false); + this.canvasSV.onmousewheel = function(event){colorPicker.eventWheel(event, colorPicker.idSV)}; + this.canvasT.addEventListener('DOMMouseScroll', function(event){colorPicker.eventWheel(event, colorPicker.idT)}, false); + this.canvasT.onmousewheel = function(event){colorPicker.eventWheel(event, colorPicker.idT)}; + this.canvasO.addEventListener('DOMMouseScroll', function(event){colorPicker.eventWheel(event, colorPicker.idO)}, false); + this.canvasO.onmousewheel = function(event){colorPicker.eventWheel(event, colorPicker.idO)}; + } + + // Définir la couleur + this.idColor = id; + var couleur = eval(document.getElementById(this.idColor).title); +// alert(id+" ; "+couleur) + document.getElementById("apercuCouleur").style.backgroundColor = couleur; + document.getElementById("apercuCouleur2").style.backgroundColor = couleur; + this.definirCouleur(couleur); + + // Dessiner + this.dessiner(); + this.dessinerApercu(); + + // Définir les valeurs des inputs + this.definirInputs(); + + // Définir le style de l'ombre + this.sourisOut(); + + }, + + definirCouleur : function(colorRGB){ + var table = /(.*?)rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(colorRGB); + if (table == null){ + table = /(.*?)rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(colorRGB); + } + if(table == null){ + return ""; + } + this.rouge = parseInt(table[2]); + this.vert = parseInt(table[3]); + this.bleu = parseInt(table[4]); + this.RGB_SVT(); + }, + + sourisClick : function(id){ + this.sourisDown = id; + if(id != this.idO){ + document.getElementById(id).style.boxShadow = this.ombreActive; + } + }, + + sourisOut : function(){ + this.canvasSV.style.boxShadow = this.ombreInactive; + this.canvasT.style.boxShadow = this.ombreInactive; + }, + + sourisOver : function(id){ + if(this.sourisDown == id && id != this.idO){ + document.getElementById(id).style.boxShadow = this.ombreActive; + } + }, + + sourisUp : function(){ + this.sourisDown = false; + this.canvasSV.style.boxShadow = this.ombreInactive; + this.canvasT.style.boxShadow = this.ombreInactive; + this.dessinerO(); + }, + + eventWheel : function(event, id){ + if(!event) event = window.event; + if(event.wheelDelta){ + if(event.wheelDelta < 0){ + colorPicker.sourisWheelUp(id); + } + else{ + colorPicker.sourisWheelDown(id); + } + } + else if(event.detail){ + if(event.detail > 0){ + colorPicker.sourisWheelUp(id); + } + else{ + colorPicker.sourisWheelDown(id); + } + } + }, + + sourisWheelUp : function(id){ + switch(id){ + case this.idT: + colorPicker.ajouterT(5); + break; + case this.idO: + colorPicker.ajouterO(0.1); + break; + case this.idSV: + colorPicker.ajouterS(-5); + break; + } + }, + + sourisWheelDown : function(id){ + switch(id){ + case this.idT: + colorPicker.ajouterT(-5); + break; + case this.idO: + colorPicker.ajouterO(-0.1); + break; + case this.idSV: + colorPicker.ajouterS(5); + break; + } + }, + + ajouterT : function(nbr){ + this.teinte += nbr; + if(this.teinte < 0){ + this.teinte = 0; + } + else if(this.teinte > 360){ + this.teinte = 360; + } + this.SVT_RGB(); + }, + + ajouterO : function(nbr){ + this.opacity = Math.round((this.opacity+nbr)*100)/100; + if(this.opacity < 0){ + this.opacity = 0; + } + else if(this.opacity > 1){ + this.opacity = 1; + } + this.SVT_RGB(); + }, + + ajouterS : function(nbr){ + this.saturation += nbr; + if(this.saturation < 0){ + this.saturation = 0; + } + else if(this.saturation > 100){ + this.saturation = 100; + } + this.SVT_RGB(); + }, + + // Lors du déplacement de la souris + moveSV : function(event){ + // Vérifie si on appuie sur la souris + if(this.sourisDown != this.idSV){ + return 0; + } + + var element = this.canvasSV; + var posDivY = 0; + var posDivX = 0; + + // Récupérer la position du canvas par rapport à la page + while(element){ + posDivY = posDivY + element.offsetTop; + posDivX = posDivX + element.offsetLeft; + element = element.offsetParent; + } + + // Définir la saturation et la valeur à partir de la position de la souris + this.saturation = 100-Math.round((event.clientY - posDivY -1)/(this.height+1)*100); + this.valeur = Math.round((event.clientX - posDivX -1)/(this.width+1)*100); + + this.SVT_RGB(); + }, + moveT : function(event){ + if(this.sourisDown != this.idT){ + return 0; + } + var element = this.canvasT; + var posDivY = 0; + + while(element){ + posDivY = posDivY + element.offsetTop; + element = element.offsetParent; + } + + this.teinte = Math.round( (event.clientY - posDivY -0) / (this.height+1)*360); + + this.SVT_RGB(); + }, + + SVT_RGB : function(){ + this.T_rgb(); + this.rouge = Math.round((this.r + (255-this.r) * (-1) * (this.saturation-100) / 100 )* this.valeur / 100); + this.vert = Math.round((this.g + (255-this.g) * (-1) * (this.saturation-100) / 100 )* this.valeur / 100); + this.bleu = Math.round((this.b + (255-this.b) * (-1) * (this.saturation-100) / 100 )* this.valeur / 100); + + this.definirInputs(); + this.dessinerApercu(); + this.dessiner(); + }, + + T_rgb : function(){ + var r,g,b = 0; + var T = this.teinte; + + if (T<60){ + r = 255; + g = T/60*255; + b = 0; + } + else if (T<120){ + r = (255-(T%60/60*255))%256; + g = 255; + b = 0; + } + else if (T<180){ + r = 0; + g = 255; + b = T%60/60*255; + } + else if (T<240){ + r = 0; + g = (255-(T%60/60*255))%256; + b = 255; + } + else if (T<300){ + r = T%60/60*255; + g = 0; + b = 255; + } + else if (T<360){ + r = 255; + g = 0; + b = (255-(T%60/60*255))%256; + } + else{ + r = 255; + g = 0; + b = 0; + } + + this.r = Math.round(r); + this.g = Math.round(g); + this.b = Math.round(b); + }, + + RGB_SVT : function(){ + // Voir http://fr.wikipedia.org/wiki/Teinte_Saturation_Valeur#Conversion_de_RVB_vers_TSV + var r = this.rouge/255; + var g = this.vert/255; + var b = this.bleu/255; + if(!isFinite(r)){ + r = 0; + } + if(!isFinite(g)){ + g = 0; + } + if(!isFinite(b)){ + b = 0; + } + var max = Math.max(r,g,b); + var min = Math.min(r,g,b); + var s, v, t; + // Teinte + switch(max){ + case r: + t = (60 * (g-b)/(max-min) + 360) % 360; + break; + case g: + t = 60 * (b-r)/(max-min) + 120; + break; + case b: + t = 60 * (r-g)/(max-min) + 240; + break; + default: /* case min: */ + t = 0; + break; + } + + // Saturation + if(max == 0){ + s = 0; + } + else{ + s = 1-(min/max); + } + + // Valeur + v = max; + + // Définir les variables + this.saturation = s*100; + this.valeur = v*100; + this.teinte = Math.round(t); + this.T_rgb(); + }, + + dessiner : function(){ + var ctxSV = this.ctxSV; + var ctxT = this.ctxT; + // Fond + ctxSV.fillStyle = "rgb("+this.r+","+this.g+","+this.b+")"; + ctxSV.fillRect(0, 0, this.width, this.height); + // Dégradés + ctxSV.fillStyle = this.lingradV; + ctxSV.fillRect(0, 0, this.width, this.height); + ctxSV.fillStyle = this.lingradS; + ctxSV.fillRect(0, 0, this.width, this.height); + // Souris + var x = Math.round(this.width*this.valeur/100); + var y = Math.round(this.height-this.height*this.saturation/100); + ctxSV.beginPath(); + ctxSV.arc(x, y, this.rayonRonds, 0, 2*Math.PI, true); + ctxSV.strokeStyle = "rgba(255,255,255,0.8)"; + ctxSV.shadowOffsetX = 1; + ctxSV.shadowOffsetY = 1; + ctxSV.shadowColor = "rgba(0,0,0,1)"; + ctxSV.shadowBlur = 2; + ctxSV.lineWidth = 1.5; + ctxSV.stroke(); + + // Fond Teinte + ctxT.fillStyle = this.lingradT; + ctxT.fillRect(0, 0, this.width/10, this.height); + // Souris Teinte + var pos = Math.round(0.99*this.height*this.teinte/360); + ctxT.fillStyle = "rgba(255,255,255,0.8)"; + ctxT.shadowOffsetX = 0; + ctxT.shadowOffsetY = 0; + ctxT.shadowColor = "rgba(0,0,0,1)"; + ctxT.shadowBlur = 3; + ctxT.fillRect(0, pos, this.width/10, 2); + + // Désactiver les ombres + ctxSV.shadowColor = "rgba(0,0,0,0)"; + ctxT.shadowColor = "rgba(0,0,0,0)"; + + this.dessinerO(); + }, + + dessinerApercu : function(){ + document.getElementById("apercuCouleur").style.backgroundColor = "rgba("+this.rouge+","+this.vert+","+this.bleu+","+this.opacity+")"; + }, + + definirInputs : function(){ + document.getElementById("inputValeur").value = this.valeur; + document.getElementById("inputSaturation").value = this.saturation; + document.getElementById("inputTeinte").value = this.teinte; + document.getElementById("inputRouge").value = this.rouge; + document.getElementById("inputVert").value = this.vert; + document.getElementById("inputBleu").value = this.bleu; + document.getElementById("inputOpacity").value = this.opacity; + }, + + recupererInputs : function(){ + this.valeur = parseInt(document.getElementById("inputValeur").value); + this.saturation = parseInt(document.getElementById("inputSaturation").value); + this.teinte = parseInt(document.getElementById("inputTeinte").value); + this.opacity = parseFloat(document.getElementById("inputOpacity").value); + this.SVT_RGB(); + + this.definirInputs(); + this.dessinerApercu(); + this.dessiner(); + }, + recupererInputs2 : function(){ + this.rouge = parseInt(document.getElementById("inputRouge").value); + this.vert = parseInt(document.getElementById("inputVert").value); + this.bleu = parseInt(document.getElementById("inputBleu").value); + this.RGB_SVT(); + + this.definirInputs(); + this.dessinerApercu(); + this.dessiner(); + }, + + moveO : function(event){ + if(this.sourisDown != this.idO){ + return 0; + } + + var element = this.canvasO; + var posDivX = 0; + while(element){ + posDivX = posDivX + element.offsetLeft; + element = element.offsetParent; + } + + this.opacity = Math.round( (event.clientX - posDivX -this.width/10) / (this.width*0.9)*100)/100; + if(this.opacity < 0){ + this.opacity = 0; + } + else if(this.opacity > 1){ + this.opacity = 1; + } + this.dessinerO(); + this.definirInputs(); + this.dessinerApercu(); + }, + + dessinerO : function(){ + var ctx = this.ctxO; + + ctx.shadowBlur = 2; + + // Ligne + if(this.sourisDown == this.idO){ + ctx.shadowColor = "rgba(0,50,100,1)"; + } + else{ + ctx.shadowColor = "rgba(0,0,0,1)"; + } + ctx.globalAlpha = 1; + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + ctx.fillStyle = "rgba("+this.rouge+","+this.vert+","+this.bleu+",1)"; + ctx.clearRect(0,0,this.width*1.15,this.height); + ctx.fillRect(this.width/10, this.height/20-1, this.width*0.9, 3); + + // Rond + var x = this.width/10 + this.width*0.9*this.opacity-1; + var y = this.height/20; + if(this.sourisDown == this.idO){ + ctx.fillStyle = "rgba(0,40,80,1)"; + ctx.strokeStyle = "rgba(230,250,255,0.8)"; + } + else{ + ctx.fillStyle = "rgba(0,0,0,1)"; + ctx.strokeStyle = "rgba(255,255,255,0.8)"; + } + ctx.globalAlpha = 0.1+this.opacity*0.9; + ctx.beginPath(); + ctx.arc(x, y, this.rayonRonds+1, 0, 2*Math.PI, true); + ctx.shadowColor = "rgba(0,0,0,1)"; + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 1; + ctx.lineWidth = 1; + ctx.fill(); + ctx.stroke(); + + // Petits ronds + ctx.globalAlpha = 1; + ctx.shadowColor = "rgba(0,0,0,1)"; + + ctx.beginPath(); + ctx.arc(8, this.height/20+0.5, this.rayonRonds, 0, 2*Math.PI, true); + ctx.strokeStyle = "rgba(0,0,0,0.5)"; + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + ctx.lineWidth = 1; + ctx.stroke(); + + ctx.beginPath(); + ctx.arc(this.width*1.08, this.height/20+0.5, this.rayonRonds, 0, 2*Math.PI, true); + ctx.strokeStyle = "rgba(0,0,0,0.8)"; + ctx.fillStyle = "rgba(0,0,0,0.6)"; + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + ctx.lineWidth = 1; + ctx.stroke(); + ctx.fill(); + }, + + exporterCouleur : function(){ + eval(document.getElementById(this.idColor).title+' = "rgba(" + this.rouge +", " + this.vert + ", " + this.bleu +", "+this.opacity+")"'); + document.getElementById(this.idColor).style.backgroundColor = eval(document.getElementById(this.idColor).title); + }, + + fermer : function(){ + colorPicker.exporterCouleur(); + if(colorPicker.idColor == 'buttonColor'){ + cacherMenu(); + } + else if(dernierMenu == "menuFonctions"){ + editeur.getOptions(); + afficherMenu(dernierMenu); + } + else{ + cacherMenu(); + } + actualiserGraph(); + } +}; + + diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Editeur.js b/resources/library/applications/GraphMe.wgt/JavaScript/Editeur.js new file mode 100644 index 0000000..ee9017d --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Editeur.js @@ -0,0 +1,216 @@ + +var editeur = { + idFct : 0, + fct : { + fct : "", + fctX : "", + fctY : "", + from : 0, + to : 2*Math.PI, + couleur : "", + couleurD1 : "", + couleurD2 : "", + couleurP1 : "", + width : 2, + style : "continu", + aire : false, + derivee1 : false, + derivee2 : false, + primitive1 : false, + conditionInitiale : 0 + }, + editer : function(id){ + this.idFct = id; + if(fct.list[this.idFct]){ + document.getElementById("editeurFonction").style.visibility = "visible"; + this.setOptions(); + } + else{ + document.getElementById("editeurFonction").style.visibility = "hidden"; + } + fct.updateList(); + }, + couleur : function(id){ + colorPicker.init(id); + afficherMenu('menuCouleur'); + }, + getOptions : function(){ + this.fct.fct = document.getElementById("editeurInput").value; + this.fct.fctX = document.getElementById("editeurFctX").value; + this.fct.fctY = document.getElementById("editeurFctY").value; + this.fct.from = document.getElementById("editeurFrom").value; + this.fct.to = document.getElementById("editeurTo").value; + this.fct.width = document.getElementById("editeurWidth").value; + this.fct.style = document.getElementById("editeurStyle").value; + this.fct.aire = document.getElementById("editeurAire").checked ? true : false; + this.fct.derivee1 = document.getElementById("editeurD1").checked ? true : false; + this.fct.derivee2 = document.getElementById("editeurD2").checked ? true : false; + this.fct.primitive1 = document.getElementById("editeurP1").checked ? true : false; + if(this.fct.primitive1){ + document.getElementById("editeurConditionInitiale").disabled = ""; + document.getElementById("editeurTexteConditionInitiale").style.color = "rgb(0,0,0)" + } + else{ + document.getElementById("editeurConditionInitiale").disabled = "disabled"; + document.getElementById("editeurTexteConditionInitiale").style.color = "rgb(128,128,128)" + } + this.fct.conditionInitiale = parseFloat(document.getElementById("editeurConditionInitiale").value); + + fct.list[this.idFct].set(this.fct); + + fct.updateList(); + historique.ajouter(fct.list[this.idFct]); + this.apercu(); + }, + setOptions : function(){ + var f = fct.list[this.idFct].get(); + for(var i in f){ + this.fct[i] = f[i]; + } + + this.setDisplayStyle(); + + document.getElementById("editeurInput").value = this.fct.fct; + document.getElementById("editeurFctX").value = this.fct.fctX; + document.getElementById("editeurFctY").value = this.fct.fctY; + document.getElementById("editeurFrom").value = this.fct.from; + document.getElementById("editeurTo").value = this.fct.to; + document.getElementById("editeurCouleur").style.backgroundColor = this.fct.couleur; + document.getElementById("editeurCouleurD1").style.backgroundColor = this.fct.couleurD1; + document.getElementById("editeurCouleurD2").style.backgroundColor = this.fct.couleurD2; + document.getElementById("editeurCouleurP1").style.backgroundColor = this.fct.couleurP1; + document.getElementById("editeurWidth").value = this.fct.width; + document.getElementById("editeurStyle").value = this.fct.style; + document.getElementById("editeurAire").checked = this.fct.aire ? "checked" : ""; + document.getElementById("editeurD1").checked = this.fct.derivee1 ? "checked" : ""; + document.getElementById("editeurD2").checked = this.fct.derivee2 ? "checked" : ""; + document.getElementById("editeurP1").checked = this.fct.primitive1 ? "checked" : ""; + if(this.fct.primitive1){ + document.getElementById("editeurConditionInitiale").disabled = ""; + document.getElementById("editeurTexteConditionInitiale").style.color = "rgb(0,0,0)" + } + else{ + document.getElementById("editeurConditionInitiale").disabled = "disabled"; + document.getElementById("editeurTexteConditionInitiale").style.color = "rgb(128,128,128)" + } + document.getElementById("editeurConditionInitiale").value = this.fct.conditionInitiale; + + document.getElementById("outputX").innerHTML = " "; + document.getElementById("outputAire").innerHTML = " "; + this.apercu(); + }, + setDisplayStyle : function(){ + if(fct.list[this.idFct] instanceof CartesianFunction){ + document.getElementById("editeurFctPrefix").textContent = "f(x) = "; + document.getElementById("editeurFctDiv").style.display = "block"; + document.getElementById("editeurFctXYDiv").style.display = "none"; + document.getElementById("editeurRangeDiv").style.display = "none"; + document.getElementById("editeurDeriveesDiv").style.display = "block"; + document.getElementById("editeurStyleDiv").style.display = "block"; + document.getElementById("editeurAireDiv").style.display = "block"; + } + else if(fct.list[this.idFct] instanceof ImplicitFunction){ + document.getElementById("editeurFctPrefix").textContent = ""; + document.getElementById("editeurFctDiv").style.display = "block"; + document.getElementById("editeurFctXYDiv").style.display = "none"; + document.getElementById("editeurRangeDiv").style.display = "none"; + document.getElementById("editeurDeriveesDiv").style.display = "none"; + document.getElementById("editeurStyleDiv").style.display = "none"; + document.getElementById("editeurAireDiv").style.display = "none"; + } + else if(fct.list[this.idFct] instanceof PolarFunction){ + document.getElementById("editeurFctPrefix").textContent = "r(t) = "; + document.getElementById("editeurFctDiv").style.display = "block"; + document.getElementById("editeurFctXYDiv").style.display = "none"; + document.getElementById("editeurRangeDiv").style.display = "block"; + document.getElementById("editeurDeriveesDiv").style.display = "none"; + document.getElementById("editeurStyleDiv").style.display = "block"; + document.getElementById("editeurAireDiv").style.display = "none"; + } + else if(fct.list[this.idFct] instanceof ParametricFunction){ + document.getElementById("editeurFctDiv").style.display = "none"; + document.getElementById("editeurFctXYDiv").style.display = "block"; + document.getElementById("editeurRangeDiv").style.display = "block"; + document.getElementById("editeurDeriveesDiv").style.display = "none"; + document.getElementById("editeurStyleDiv").style.display = "block"; + document.getElementById("editeurAireDiv").style.display = "none"; + } + }, + etudier : function(){ + fct.etudier(this.idFct); + }, + supprimer : function(){ + fct.enlever(this.idFct); + if(!fct.list[this.idFct]){ + this.editer(this.idFct - 1); + } + else{ + this.editer(this.idFct); + } + }, + dupliquer : function(){ + fct.dupliquer(this.idFct); + this.editer(this.idFct + 1); + }, + apercu : function(){ + editorPreview.drawFunction(fct.list[this.idFct]); + } +}; + + +var editorPreview = { + id : "editeurApercu", + + xGauche : -5, + xDroite : 5, + yBas : -4, + yHaut : 4, + + largeur : 0, + hauteur : 0, + multX : 1, + multY : 1, + + ctx: null, + + init : function(){ + var canvas = document.getElementById("editeurApercu"); + this.ctx = canvas.getContext("2d"); + this.largeur = canvas.width; + this.hauteur = canvas.height; + this.multX = this.largeur/Math.abs(this.xDroite - this.xGauche); + this.multY = this.hauteur/Math.abs(this.yHaut - this.yBas); + this.precision = Math.abs(this.xDroite - this.xGauche)/50; + }, + + drawFunction : function(func){ + var x, y, pointX, pointY; + var ctx = this.ctx; + ctx.clearRect(0,0,100,80); + ctx.globalAlpha = 0.7; + ctx.fillStyle = "rgba(0,0,0,0.5)" + ctx.fillRect(0,39.5, 100, 1); + ctx.fillRect(49.5,0, 1, 80); + ctx.beginPath(); +// ctx.lineWidth = func.width/1.8; +// ctx.strokeStyle = func.couleur; +// ctx.moveTo(-100,-100); +// for(x = -5; x <= 5; x+=0.2){ +// // Evaluer la valeur y du point x +// try{ +// y = func.f(x); +// } +// catch(e){} +// if(!isNaN(y)){ +// // Transformation des coordonnées +// pointX = x * 10 + 50; +// pointY = 40 - y * 10; +// +// // Dessiner la fonction +// ctx.lineTo(pointX, pointY); +// } +// } + func.plot(ctx, this.precision, this); +// ctx.stroke(); + } +}; diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Etudes.js b/resources/library/applications/GraphMe.wgt/JavaScript/Etudes.js new file mode 100644 index 0000000..ade1cf4 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Etudes.js @@ -0,0 +1,520 @@ + +// -------------------- Etudes de fonctions -------------------- + +function consoleInfos(){ + var table = []; + for(var i in arguments){ + table.push(arguments[i]); + } + document.getElementById("infos").innerHTML += table +"
    "; +} + +Array.prototype.first = function(){ + return this[0]; +} +Array.prototype.last = function(){ + return this[this.length-1]; +} +Array.prototype.removeDoubles = function(){ + // Sort numerically + this.sort(function(nbr1,nbr2){return nbr1-nbr2}); + // Remove doubles + for(var i=1; i' + } + else{ + txtSigne += ''+listeNbr[i][0]+'' + } + switch(b){ + case -1: + txtSigne += "-"; + dernierSigne = "-"; + break; + case 1: + txtSigne += "+"; + dernierSigne = "+"; + break; + } + } + document.getElementById("etudeSigneRow").innerHTML = txtSigne; +// consoleInfos(""+txtSigne+"
    Signe :
    "); + }, + + asymptotesNum : function(){ + var f = this.f; + // Verticales + var texteA = ""; + for(var i=0; i0){ + if(txtMinMax != ""){ + txtMinMax += "
    "; + } + txtMinMax += "Min("+this.listeX[i]+";"+this.round(this.listeY[i])+")"; + } + else if(a>0 && b<0){ + if(txtMinMax != ""){ + txtMinMax += "
    "; + } + txtMinMax += "Max("+this.listeX[i]+";"+this.round(this.listeY[i])+")"; + } + } +// consoleInfos(txtMinMax); + if(txtMinMax == ""){ + txtMinMax = "none"; + try{ + txtMinMax = languages.getText("none_m"); + } + catch(e){} + } + document.getElementById("etudeMinMax").innerHTML = txtMinMax; + }, + + pointI : function(){ + // Rechercher des zéros dans les points calculés + var listeID = []; +// for(var i=1; i("+this.listeX[i]+";"+this.round(this.listeY[i])+")"; + } +// consoleInfos(txtI); + if(txtI == ""){ + txtI = "none"; + try{ + txtI = languages.getText("none_m"); + } + catch(e){} + } + document.getElementById("etudeI").innerHTML = txtI; + }, + +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Fonction.js b/resources/library/applications/GraphMe.wgt/JavaScript/Fonction.js new file mode 100644 index 0000000..91e65de --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Fonction.js @@ -0,0 +1,226 @@ + +var fct = { + list : [], + couleur : "rgba(193,255,0,1)", + colorsList : ["rgba(255,0,0,1)","rgba(255,128,0,1)","rgba(255,255,0,1)","rgba(128,255,0,1)","rgba(0,255,0,1)","rgba(0,255,128,1)","rgba(0,255,255,1)","rgba(0,128,255,1)","rgba(0,0,255,1)","rgba(128,0,255,1)","rgba(255,0,255,1)","rgba(255,0,128,1)"], + interdit : [";", "interdit", "'", '"', "eval", "new", "uniboard", "sankore", "=", "document", "window", "alert", "fct", "affichage", "colorPicker", "languages"], + + functionFromObject: function(f){ + if(f.type == "cartesian"){ + return new CartesianFunction().set(f); + } + else if(f.type == "implicit"){ + return new ImplicitFunction().set(f); + } + else if(f.type == "polar"){ + return new PolarFunction().set(f); + } + else if(f.type == "parametric"){ + return new ParametricFunction().set(f); + } + console.err("Unknown function:", f); + }, + + addCartesian : function(txt){ + var txtFct = this.remplacer(this.verifier(txt)); + if(txtFct == ""){ + return false; + } + + var f = new CartesianFunction(txtFct); + this.add(f, true); + + return true; + }, + + addImplicit : function(txtFct){ + var equalPos = txtFct.indexOf("="); + if(equalPos >= 0){ + txtFct = txtFct.replace("=", "-(") + ")"; + } + txtFct = this.remplacer(this.verifier(txtFct)); + if(txtFct == ""){ + return false; + } + + var f = new ImplicitFunction(txtFct); + this.add(f, true); + + return true; + }, + + addPolar : function(txt){ + var txtFct = this.remplacer(this.verifier(txt)); + if(txtFct == ""){ + return false; + } + + var f = new PolarFunction(txtFct); + this.add(f, true); + + return true; + }, + + addParametric : function(txtX, txtY){ + var fctX = this.remplacer(this.verifier(txtX)); + var fctY = this.remplacer(this.verifier(txtY)); + if(fctX == "" || fctY == ""){ + return false; + } + + var f = new ParametricFunction(fctX, fctY); + this.add(f, true); + + return true; + }, + + add : function(f, useRandomColor){ + this.list.unshift(f); + if(useRandomColor){ + f.couleur = this.colorsList[alea(0,this.colorsList.length-1)]; + } + historique.ajouter(f); + this.updateList(); + editeur.editer(0); + }, + + ajouter : function(){ + var type = document.getElementById("functionType").value; + if(type == "cartesian"){ + var input = document.getElementById("input"); + if(this.addCartesian(input.value)){ + input.value = ""; + } + } + else if(type == "implicit"){ + var input = document.getElementById("implicitInput"); + if(this.addImplicit(input.value)){ + input.value = ""; + } + } + else if(type == "polar"){ + var input = document.getElementById("polarInput"); + if(this.addPolar(input.value)){ + input.value = ""; + } + } + else if(type == "parametric"){ + var inputX = document.getElementById("parametricInputX"); + var inputY = document.getElementById("parametricInputY"); + if(this.addParametric(inputX.value, inputY.value)){ + inputX.value = ""; + inputY.value = ""; + } + } + }, + + changeType : function(type){ + document.getElementById("cartesianDiv").style.display = "none"; + document.getElementById("implicitDiv").style.display = "none"; + document.getElementById("polarDiv").style.display = "none"; + document.getElementById("parametricDiv").style.display = "none"; + document.getElementById(type+"Div").style.display = "initial"; + }, + + enlever : function(id){ + this.list.splice(id, 1); + this.updateList(); + }, + + dupliquer : function(id){ + var newFct = this.functionFromObject(this.list[id].get()); + newFct.couleur = this.colorsList[alea(0,this.colorsList.length-1)]; + this.list.splice(id+1, 0, newFct); + this.updateList(); + }, + + etudier : function(id){ + etude.etudier(this.list[id].fct); + afficherMenu("menuEtude"); + }, + + updateList : function(){ + var texteFctSupp = ""; + for(var i=0; i'+this.list[i].fct+''; + } + document.getElementById("fonctionsSupp").innerHTML = texteFctSupp; + affichage.dessiner(); + saveOptions(); + }, + + verifier : function(txtFonction){ + for(var i=0; i 0){ + editeur.editer(0); + } + } +}; diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/ImplicitFunction.js b/resources/library/applications/GraphMe.wgt/JavaScript/ImplicitFunction.js new file mode 100644 index 0000000..4fcb90b --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/ImplicitFunction.js @@ -0,0 +1,79 @@ + +function ImplicitFunction(txtFct){ + + this.setFct = function(txt){ + this.fct = txt; + this.f = new Function("x", "y", "return "+this.fct); + } + + if(txtFct){ + this.setFct(txtFct); + } + this.couleur = fct.couleur; + this.width = document.getElementById("inputTaille").value; + this.style = document.getElementById("selectStyle").value; + + this.getX = function(x){ + return x; + }; + + this.getY = function(x){ + return -1000000; + }; + + this.set = function(f){ + var equalPos = f.fct.indexOf("="); + if(equalPos >= 0){ + f.fct = f.fct.replace("=", "-(") + ")"; + } + this.setFct(fct.remplacer(fct.verifier(f.fct))); + this.couleur = f.couleur; + this.width = f.width; + this.style = f.style; + return this; + }; + + this.get = function(){ + var f = {}; + f.type = "implicit"; + f.fct = this.fct; + f.couleur = this.couleur; + f.width = this.width; + f.style = this.style; + return f; + }; + + this.readableText = function(){ + return this.fct + " = 0"; + }; + + this.plot = function(ctx, precision, affichage){ + var epsilon = 0.01; + var width2 = this.width / 2; + precision /= 20; + + ctx.beginPath(); + ctx.lineWidth = this.width; + ctx.strokeStyle = this.couleur; + ctx.fillStyle = this.couleur; + ctx.moveTo(-100,-100); + for(var x = affichage.xGauche-precision; x <= affichage.xDroite+precision; x+=precision){ + for(var y = affichage.yBas-precision; y <= affichage.yHaut+precision; y+=precision){ + // Compute function for current (x, y) position + z = this.f(x, y); + // Check condition f(x, y) = 0 + if(!isNaN(z) && Math.abs(z) < epsilon){ + // Transform coordinates + var pointX = (x - affichage.xGauche) * affichage.multX; + var pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + + ctx.fillRect(pointX-width2, pointY-width2, this.width, this.width); +// ctx.beginPath(); +// ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); +// ctx.fill(); + } + } + } +// ctx.stroke(); + }; +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Interface.js b/resources/library/applications/GraphMe.wgt/JavaScript/Interface.js new file mode 100644 index 0000000..e90111e --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Interface.js @@ -0,0 +1,274 @@ + +// -------------------- Fonctions de l'interface -------------------- + + +var menuActuel = "divInputRapide" +var dernierMenu = "" + +var pleinEcran = false +var maximise = true +var tailleFenetreX = window.innerWidth +var tailleFenetreY = window.innerHeight +var AncienneMethodeAffichage = 0 + +// Cette fonction permet d'afficher le menu désiré. +// Il faut lui donner l'id du menu à afficher. +function afficherMenu(id){ + if (menuActuel == id){ + cacherMenu() + dernierMenu = false; + } + else { + if (menuActuel != ""){ + dernierMenu = menuActuel; + cacherMenu() + } + menuActuel = id + document.getElementById(id).style.display = "block" + message.supprimer(); + } +} + +// Permet de cacher le menu actuellement affiché +function cacherMenu(){ + if(menuActuel != ""){ + document.getElementById(menuActuel).style.display = "none" + menuActuel = "" + } +} + +// Affiche un message d'erreur +function afficherErreur(message){ + document.getElementById("spanErreurFct").innerHTML = message; + afficherMenu("erreurFct"); +} + +// Messages d'info + +var message = { + liste : [], + ajouter : function(x, y, contenu){ + var newDiv = document.createElement("div"); + newDiv.style.left = x + "px"; + newDiv.style.top = y + "px"; + + var textDiv = document.createElement("span"); + textDiv.innerHTML = contenu; + newDiv.appendChild(textDiv); + + document.getElementById("divMessages").appendChild(newDiv); + }, + supprimer : function(){ + var div = document.getElementById("divMessages"); + div.innerHTML = ""; + } +}; + + +// ---- Minimiser ou Maximiser le widget (pour Uniboard) ---- +function miniMax(){ + if (maximise){ + maximise = false + document.getElementById('affichage').style.display = "none" + document.getElementById('gauche').style.display = "none" + document.getElementById('miniMax').innerHTML = "+" + window.resizeTo(400,50) + AncienneMethodeAffichage = document.getElementById("selectMethodeAffichage").selectedIndex + document.getElementById("selectMethodeAffichage").selectedIndex = "3" + } + else{ + maximise = true + document.getElementById('affichage').style.display = "block" + document.getElementById('gauche').style.display = "block" + document.getElementById('miniMax').innerHTML = "-" + window.resizeTo(tailleFenetreX,tailleFenetreY) + document.getElementById("selectMethodeAffichage").selectedIndex = AncienneMethodeAffichage + } +} + +// Affiche le menu + +function menuFonctions(){ + if(fonction3D){ + afficherMenu('menuHistorique'); + } + else{ + afficherMenu('menuFonctions'); + editeur.editer(0); + } +} + +// Action des petits bouton + et - dans les options +function boutonPlus(id, nombre){ + var element = document.getElementById(id) + var valeurActuelle = Number(element.value) + element.value = valeurActuelle + nombre +} +function boutonMoins(id, nombre){ + var element = document.getElementById(id) + var valeurActuelle = Number(element.value) + if(valeurActuelle>=nombre*2){ + element.value = valeurActuelle - nombre + } +} + +// Changer de thème +function changerTheme(theme){ + var positions = [ + "top-left", + "top", + "top-right", + "right", + "bottom-right", + "bottom", + "bottom-left", + "left", + "center" + ]; + for(var i=0; i
    '; +// txtHTML += ''; +// txtHTML += ''; + } + document.getElementById("newVersion").innerHTML = txtHTML; + + afficherMenu("mAj"); +} + +function checkboxMaJ(){ + if(versionOnline()){ + afficherMenu('erreurMaJ') + document.getElementById("checkMaJ").checked = false + } + else{ + if(document.getElementById("checkMaJ").checked){ + loadOptions() + document.getElementById("checkMaJ").checked = true + saveOptions() + } + else{ + loadOptions() + document.getElementById("checkMaJ").checked = false + saveOptions() + } + } +} + +function majAuto(){ +// var audio = new Audio(); +// audio.src = "version.ogg"; +// audio.load(); +// setTimeout(function(){ +// window.console.log(" "+audio.duration); +// }, 0) + if(versionOnline()){ + document.getElementById("cacheMaJ").style.display = "block"; + document.getElementById("checkMaJ").disabled = true; + document.getElementById("checkMaJ").checked = true; + } + else{ + if(document.getElementById("checkMaJ").checked){ + afficherMenu('demandeMaJ'); + } + } +} +function majAccept(){ +// document.location.href='http://gyb.educanet2.ch/tm-widgets/yannick/GraphMe.wgt/Grapheur.html'; + for(var i=0; i
    ' + window.open(lien, "_blank") +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Languages.js b/resources/library/applications/GraphMe.wgt/JavaScript/Languages.js new file mode 100644 index 0000000..ad5f9f0 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Languages.js @@ -0,0 +1,508 @@ + +var languages = { + current: "en", + + init: function(){ + var lang = this.navigatorLanguage(); + if(lang){ + lang = lang.substr(0,2); + this.set(lang); + } + }, + + navigatorLanguage: function(){ + if(window.sankore){ + return sankore.locale(); + } + return navigator.language || navigator.userLanguage; + }, + + set: function(lang){ + if(lang in langTexts){ + this.current = lang; + this.setTexts(langTexts[lang]); + } + }, + + getText: function(id){ + return langTexts[this.current][id]; + }, + + setTexts: function(texts){ + this.id("graphMeButton").textContent = texts.widgetName; + this.id("functionsButton").textContent = texts.functions; + this.id("displayButton").textContent = texts.display; + this.id("helpButton").textContent = texts.help; + + this.id("boutonAgrandir").title = texts.fullscreen; + this.id("boutonSaveGraph").title = texts.save; + this.id("inputRapideButton").value = texts.displayAction; + + this.id("pointTool").title = texts.pointTool; + this.id("moveTool").title = texts.moveTool; + this.id("tangentTool").title = texts.tangentTool; + + this.id("menuExempleCloseButton").value = texts.close; + + this.id("menuGraphMeOptionsTab").textContent = texts.options; + this.id("menuGraphMeAboutTab").textContent = texts.about; + this.id("widgetOptions").textContent = texts.widgetOptions; + this.id("widgetTheme").textContent = texts.widgetTheme; + this.id("selectThemeDarkBlue").textContent = texts.darkBlue; + this.id("selectThemeBlack").textContent = texts.black; + this.id("selectThemeBlue").textContent = texts.blue; + this.id("selectThemeWhite").textContent = texts.white; + this.id("resetWidgetButton").value = texts.resetWidget; + this.id("checkForUpdateButton").value = texts.checkForUpdate; + this.id("menuGraphMeCloseButton").value = texts.close; + + this.id("menuCreditsOptionsTab").textContent = texts.options; + this.id("menuCreditsAboutTab").textContent = texts.about; + this.id("widgetDevelopedBy").textContent = texts.widgetDevelopedBy; + this.id("widgetContactInfo").textContent = texts.widgetContactInfo; + this.id("widgetBackgroundSource").textContent = texts.widgetBackgroundSource; + this.id("changelogButton").textContent = texts.changelogButton; + this.id("menuCreditsCloseButton").value = texts.close; + + this.id("changelogTitle").textContent = texts.changelogTitle; + this.id("menuChangelogBackButton").value = texts.back; + this.id("menuChangelogCloseButton").value = texts.close; + + this.id("menuAffichageDisplayParametersTab").textContent = texts.displayParameters; + this.id("menuAffichageFunctionsParametersTab").textContent = texts.functionsParameters; + this.id("plotRange").textContent = texts.plotRange; + this.id("xAxis").textContent = texts.xAxis; + this.id("yAxis").textContent = texts.yAxis; + this.id("xAxisTo").textContent = texts.to; + this.id("yAxisTo").textContent = texts.to; + this.id("defaultZoom").textContent = texts.defaultZoom; + this.id("defaultDisplayParameters").value = texts.defaultDisplayParameters; + this.id("displayOptions").textContent = texts.options; + this.id("displayMethod").textContent = texts.displayMethod; + this.id("showGrid").textContent = texts.showGrid; + this.id("showAxis").textContent = texts.showAxis; + this.id("showScale").textContent = texts.showScale; + this.id("graphAccuracy").textContent = texts.graphAccuracy; + this.id("improveAccuracy").textContent = texts.improveAccuracy; + this.id("menuAffichageOkButton").value = texts.ok; + + this.id("menuFunctionParametersDisplayParametersTab").textContent = texts.displayParameters; + this.id("menuFunctionParametersFunctionsParametersTab").textContent = texts.functionsParameters; + this.id("defaultFunctionParameters").textContent = texts.defaultFunctionParameters; + this.id("thickness").textContent = texts.thickness; + this.id("drawDerivativeAndPrimitive").textContent = texts.drawDerivativeAndPrimitive; + this.id("drawArea").textContent = texts.drawArea; + this.id("lineStyle").textContent = texts.lineStyle; + this.id("selectStyleLine").textContent = texts.styleLine; + this.id("selectStyleDotted").textContent = texts.styleDotted; + this.id("selectStyleDashed").textContent = texts.styleDashed; + this.id("menuFunctionParametersCloseButton").value = texts.close; + + this.id("display3D").textContent = texts.display3D; + this.id("displayStyle").textContent = texts.displayStyle; + this.id("displayStyleSurfaces").textContent = texts.styleSurfaces; + this.id("displayStyleDotted").textContent = texts.styleDotted; + this.id("resetDisplay3D").value = texts.resetDisplay; + this.id("graphAccuracy3D").textContent = texts.graphAccuracy; + this.id("colorsConfig").textContent = texts.colorsConfig; + this.id("useRedFor").textContent = texts.useRedFor; + this.id("useGreenFor").textContent = texts.useGreenFor; + this.id("useBlueFor").textContent = texts.useBlueFor; + this.id("redPositive").textContent = texts.positiveValues; + this.id("redNegative").textContent = texts.negativeValues; + this.id("redAlways").textContent = texts.always; + this.id("greenPositive").textContent = texts.positiveValues; + this.id("greenNegative").textContent = texts.negativeValues; + this.id("greenAlways").textContent = texts.always; + this.id("bluePositive").textContent = texts.positiveValues; + this.id("blueNegative").textContent = texts.negativeValues; + this.id("blueAlways").textContent = texts.always; + this.id("globalValue").textContent = texts.globalValue; + this.id("globalValueRange").textContent = texts.globalValueRange; + this.id("menuAffichage3dOk").value = texts.ok; + + this.id("menuAideUsageTab").textContent = texts.usage; + this.id("menuAideExamplesTab").textContent = texts.examples; + this.id("howItWorks").textContent = texts.howItWorks; + this.id("howItWorksText").textContent = texts.howItWorksText; + this.id("availableFunctionsText").textContent = texts.availableFunctionsText; + this.id("basicOperations").textContent = texts.basicOperations; + this.id("plus").textContent = texts.plus; + this.id("minus").textContent = texts.minus; + this.id("multiplication").textContent = texts.multiplication; + this.id("division").textContent = texts.division; + this.id("modulus").textContent = texts.modulus; + this.id("trigonometricFunctions").textContent = texts.trigonometricFunctions; + this.id("sine").textContent = texts.sine; + this.id("cosine").textContent = texts.cosine; + this.id("tangent").textContent = texts.tangent; + this.id("cotangent").textContent = texts.cotangent; + this.id("secant").textContent = texts.secant; + this.id("cosecant").textContent = texts.cosecant; + this.id("arcSine").textContent = texts.arcSine; + this.id("arcCosine").textContent = texts.arcCosine; + this.id("arcTangent").textContent = texts.arcTangent; + this.id("arcCotangent").textContent = texts.arcCotangent; + this.id("hyperbolicFunctions").textContent = texts.hyperbolicFunctions; + this.id("hypSine").textContent = texts.hypSine; + this.id("hypCosine").textContent = texts.hypCosine; + this.id("hypTangent").textContent = texts.hypTangent; + this.id("hypCotangent").textContent = texts.hypCotangent; + this.id("hypSecant").textContent = texts.hypSecant; + this.id("hypCosecant").textContent = texts.hypCosecant; + this.id("hypArcSine").textContent = texts.hypArcSine; + this.id("hypArcCosine").textContent = texts.hypArcCosine; + this.id("hypArcTangent").textContent = texts.hypArcTangent; + this.id("hypArcCotangent").textContent = texts.hypArcCotangent; + this.id("powerAndRoot").textContent = texts.powerAndRoot; + this.id("squareRoot").textContent = texts.squareRoot; + this.id("power").textContent = texts.power; + this.id("xPowY").textContent = texts.xPowY; + this.id("root").textContent = texts.root; + this.id("rootText").textContent = texts.rootText; + this.id("expAndLog").textContent = texts.expAndLog; + this.id("naturalLog").textContent = texts.naturalLog; + this.id("decimalLog").textContent = texts.decimalLog; + this.id("absValue").textContent = texts.absValue; + this.id("rounding").textContent = texts.rounding; + this.id("roundText").textContent = texts.roundText; + this.id("ceilText").textContent = texts.ceilText; + this.id("floorText").textContent = texts.floorText; + this.id("constants").textContent = texts.constants; + this.id("keyboardShortcuts").textContent = texts.keyboardShortcuts; + this.id("moveLeft").textContent = texts.moveLeft; + this.id("moveTop").textContent = texts.moveTop; + this.id("moveRight").textContent = texts.moveRight; + this.id("moveBottom").textContent = texts.moveBottom; + this.id("menuAideCloseButton").value = texts.close; + + this.id("menuAideExemplesUsageTab").textContent = texts.usage; + this.id("menuAideExemplesExamplesTab").textContent = texts.examples; + this.id("examplesText").textContent = texts.examplesText; + this.id("functions2d").textContent = texts.functions2d; + this.id("functions3d").textContent = texts.functions3d; + this.id("menuAideExemplesCloseButton").value = texts.close; + + this.id("functionStudyTitle").textContent = texts.functionStudy; + this.id("domainOfDefinition").textContent = texts.domainOfDefinition; + this.id("symmetry").textContent = texts.symmetry; + this.id("zeros").textContent = texts.zeros; + this.id("sign").textContent = texts.sign; + this.id("asymptotes").textContent = texts.asymptotes; + this.id("extremums").textContent = texts.extremums; + this.id("inflexionPoints").textContent = texts.inflexionPoints; + this.id("functionStudyText").textContent = texts.functionStudyText; + this.id("menuEtudeBackButton").value = texts.back; + this.id("menuEtudeCloseButton").value = texts.close; + + this.id("menuFonctionsFunctionsTab").textContent = texts.functions; + this.id("menuFonctionsHistoryTab").textContent = texts.history; + this.id("newFunction").textContent = texts.newFunction; + this.id("functionTypeCartesian").textContent = texts.cartesian; + this.id("functionTypeImplicit").textContent = texts.implicit; + this.id("functionTypePolar").textContent = texts.polar; + this.id("functionTypeParametric").textContent = texts.parametric; + this.id("addFunctionButton").value = texts.add; + this.id("functionsListText").textContent = texts.functionsListText; + + this.id("editorEditPageEditTab").textContent = texts.edit; + this.id("editorEditPageToolsTab").textContent = texts.tools; + this.id("editorRangeFrom").textContent = texts.from; + this.id("editorRangeTo").textContent = texts.to; + this.id("editorThickness").textContent = texts.thickness; + this.id("editorColor").textContent = texts.color; + this.id("editorDerivatives").textContent = texts.derivatives; + this.id("editorPrimitive").textContent = texts.primitive; + this.id("editorLineStyle").textContent = texts.lineStyle; + this.id("editorStyleLine").textContent = texts.styleLine; + this.id("editorStyleDotted").textContent = texts.styleDotted; + this.id("editorStyleDashed").textContent = texts.styleDashed; + this.id("editorDrawArea").textContent = texts.drawArea; + this.id("editorDuplicate").value = texts.duplicate; + this.id("editorRemove").value = texts.remove; + + this.id("editorToolsPageEditTab").textContent = texts.edit; + this.id("editorToolsPageToolsTab").textContent = texts.tools; + this.id("computePoint").textContent = texts.computePoint; + this.id("computePointButton").value = texts.compute; + this.id("computeArea").textContent = texts.computeArea; + this.id("areaFrom").textContent = texts.from; + this.id("areaTo").textContent = texts.to; + this.id("computeAreaButton").value = texts.compute; + this.id("functionStudy").textContent = texts.functionStudy; + this.id("functionStudyButton").value = texts.startStudy; + this.id("editorToolsDuplicate").value = texts.duplicate; + this.id("editorToolsRemove").value = texts.remove; + this.id("menuFonctionsCloseButton").value = texts.close; + + this.id("input3dDisplayButton").value = texts.displayAction; + + this.id("menuHistoriqueFunctionsTab").textContent = texts.functions; + this.id("menuHistoriqueHistoryTab").textContent = texts.history; + this.id("latestDisplayedFunctions").textContent = texts.latestDisplayedFunctions; + this.id("menuHistoriqueCloseButton").value = texts.close; + + this.id("chooseColor").textContent = texts.chooseColor; + this.id("colorPickerColor").textContent = texts.color; + this.id("colorPickerValue").textContent = texts.value; + this.id("colorPickerSaturation").textContent = texts.saturation; + this.id("colorPickerRed").textContent = texts.red; + this.id("colorPickerGreen").textContent = texts.green; + this.id("colorPickerBlue").textContent = texts.blue; + this.id("inputOpacity").textContent = texts.opacity; + this.id("apercuCouleur").title = texts.newColor; + this.id("apercuCouleur2").title = texts.oldColor; + this.id("colorPickerCancelButton").value = texts.cancel; + this.id("colorPickerOkButton").value = texts.ok; + + this.id("blackListError").textContent = texts.error; + this.id("cannotDrawFunction").textContent = texts.cannotDrawFunction; + this.id("invalidExpression").textContent = texts.invalidExpression; + this.id("blackListErrorOkButton").value = texts.ok; + this.id("fctError").textContent = texts.error; + this.id("checkTheFunction").textContent = texts.checkTheFunction; + this.id("errorMessage").textContent = texts.errorMessage; + this.id("youCanFindExamples").textContent = texts.youCanFindExamples; + this.id("fctErrorHelpButton").value = texts.help; + this.id("fctErrorOkButton").value = texts.ok; + + this.id("menuSaveGraphTitle").textContent = texts.saveGraph; + this.id("saveWidthText").textContent = texts.width; + this.id("saveHeightText").textContent = texts.height; + this.id("saveBackgroundColor").textContent = texts.backgroundColor; + this.id("imageFormat").textContent = texts.imageFormat; + this.id("menuSaveGraphCancelButton").value = texts.cancel; + this.id("menuSaveGraphOkButton").value = texts.ok; + + this.id("saveImageTitle").textContent = texts.saveImageTitle; + this.id("saveImageText").textContent = texts.saveImageText; + this.id("menuSaveImageCloseButton").value = texts.close; + + this.id("updateTitle").textContent = texts.update; + this.id("currentVersion").textContent = texts.currentVersion; + this.id("latestVersionAvailable").textContent = texts.latestVersionAvailable; +// this.id("useLatestVersionText").textContent = texts.useLatestVersionText; +// this.id("useLatestVersion").value = texts.useLatestVersion; + this.id("updateBackButton").value = texts.back; + this.id("updateOkButton").value = texts.ok; + + this.id("updateErrorTitle").textContent = texts.error; + this.id("updateErrorText").textContent = texts.updateErrorText; + this.id("updateErrorOkButton").value = texts.ok; + + this.id("ctxMenuDisplay").textContent = texts.display; + this.id("ctxMenuAxes").textContent = texts.axes; + this.id("ctxMenuScale").textContent = texts.scale; + this.id("ctxMenuGrid").textContent = texts.grid; + this.id("ctxMenuReset").value = texts.reset; + this.id("ctxMenuSave").value = texts.save; + }, + + class: function(className){ + return document.getElementsByClassName(className); + }, + + id: function(id){ + return document.getElementById(id); + } +}; + + +var langTexts = { + "fr": { + "widgetName": "GraphMe", + "functions": "Fonctions", + "display": "Affichage", + "help": "Aide", + "close": "Fermer", + "back": "Retour", + "ok": "Ok", + "fullscreen": "Plein écran", + "save": "Sauvegarder", + "displayAction": "Afficher", + "pointTool": "Outil point", + "moveTool": "Outil déplacement", + "tangentTool": "Outil tangente", + "options": "Options", + "about": "À propos", + "darkBlue": "Bleu foncé", + "black": "Noir", + "blue": "Bleu", + "white": "Blanc", + "widgetOptions": "Options du widget", + "widgetTheme": "Thème du widget", + "resetWidget": "Réinitialiser le widget", + "checkForUpdate": "Vérifier les mises à jour", + "widgetDevelopedBy": "Widget réalisé par", + "widgetContactInfo": "Si vous voulez rapporter un bug, avez une suggestion par rapport au widget ou voulez simplement poser une question, merci de me contacter par e-mail à l'adresse suivante", + "widgetBackgroundSource": "Les images d'arrière-plan viennent de l'environnement de bureau KDE", + "changelogButton": "qu'est-ce qui a changé?", + "changelogTitle": "Notes de version", + "displayParameters": "Paramètres d'affichage", + "functionsParameters": "Paramètres des fonctions", + "plotRange": "Zone d'affichage", + "xAxis": "Axe des X", + "yAxis": "Axe des Y", + "to": "à", + "defaultZoom": "Zoom par défaut", + "defaultDisplayParameters": "Réinitialiser l'affichage", + "displayMethod": "Méthode d'affichage du graphique", + "showGrid": "Afficher la grille", + "showAxis": "Afficher les axes", + "showScale": "Afficher l'échelle", + "graphAccuracy": "Précision du graphique, points calculés", + "improveAccuracy": "Améliorer la précision lors d'un zoom arrière (plus lent)", + "defaultFunctionParameters": "Paramètres par défaut des fonctions", + "thickness": "Épaisseur", + "drawDerivativeAndPrimitive": "Dessiner les dérivées et primitives", + "drawArea": "Dessiner l'aire sous la fonction", + "lineStyle": "Style de ligne", + "styleLine": "continu", + "styleDotted": "points", + "styleDashed": "traits", + "display3D": "Affichage 3D", + "displayStyle": "Style d'affichage", + "styleSurfaces": "surfaces", + "resetDisplay": "Réinitialiser l'affichage", + "colorsConfig": "Configuration des couleurs", + "useRedFor": "utiliser le rouge pour", + "useGreenFor": "utiliser le vert pour", + "useBlueFor": "utiliser le bleu pour", + "positiveValues": "valeur positive", + "negativeValues": "valeur négative", + "always": "toujours", + "globalValue": "Valeur générale", + "globalValueRange": "(entre 0 et 255)", + "usage": "Utilisation", + "examples": "Exemples", + "howItWorks": "Fonctionnement", + "howItWorksText": "Ce widget vous permet de dessiner des fonctions mathématiques. Entrez une première fonction dans le champ en haut du widget et cliquez sur le bouton \"Afficher\". Ouvrez le menu \"Fonctions\" pour modifier votre fonction ou en ajouter une nouvelle.", + "availableFunctionsText": "Vous pouvez saisir les fonctions mathématiques suivantes", + "basicOperations": "Les opérations de base", + "plus": "Addition", + "minus": "Soustraction", + "multiplication": "Multiplication", + "division": "Division", + "modulus": "Modulo", + "trigonometricFunctions": "Les fonctions trigonométriques", + "sine": "Sinus", + "cosine": "Cosinus", + "tangent": "Tangente", + "cotangent": "Cotangente", + "secant": "Secante", + "cosecant": "Cosecante", + "arcSine": "Arcsinus", + "arcCosine": "Arccosinus", + "arcTangent": "Arctangente", + "arcCotangent": "Arccotangente", + "hyperbolicFunctions": "Les fonctions hyperboliques", + "hypSine": "Sinus hyp", + "hypCosine": "Cosinus hyp", + "hypTangent": "Tangente hyp", + "hypCotangent": "Cotangente hyp", + "hypSecant": "Secante hyp", + "hypCosecant": "Cosecante hyp", + "hypArcSine": "Arcsinus hyp", + "hypArcCosine": "Arccosinus hyp", + "hypArcTangent": "Arctangente hyp", + "hypArcCotangent": "Arccotangente hyp", + "powerAndRoot": "Les racines et les puissances", + "squareRoot": "Racine carrée", + "power": "Puissances", + "xPowY": "Élève x à une puissance y", + "root": "Racines", + "rootText": "Racine y d'un nombre x", + "expAndLog": "Les exponentielles et logarithmes", + "naturalLog": "logarithme naturel", + "decimalLog": "logarithme de base", + "absValue": "La valeur absolue d'un nombre", + "rounding": "Les arrondis", + "roundText": "arrondit à l'entier le plus proche", + "ceilText": "arrondit à l'entier supérieur", + "floorText": "arrondit à l'entier inférieur", + "constants": "Constantes", + "keyboardShortcuts": "Raccourcis clavier", + "moveLeft": "déplacer le graphique à gauche", + "moveTop": "déplacer le graphique en haut", + "moveRight": "déplacer le graphique à droite", + "moveBottom": "déplacer le graphique en bas", + "examplesText": "(Vous pouvez cliquer sur un exemple pour l'afficher. Pensez à ajuster la précision du graphique dans les options si nécessaire.)", + "functions2d": "Fonctions 2D", + "functions3d": "Fonctions 3D", + "saveGraph": "Enregistrer le graphique", + "functionStudy": "Étude de fonction", + "domainOfDefinition": "Ensemble de définition", + "symmetry": "Parité", + "zeros": "Zéros de la fonction", + "sign": "Signe", + "asymptotes": "Asymptotes", + "extremums": "Extremums", + "inflexionPoints": "Points d'inflexion", + "functionStudyText": "L'outil permettant d'étudier les fonctions n'est pas fiable à 100%. Pensez à vérifier les résultats de l'étude avant d'en faire une quelconque utilisation.", + "history": "Historique", + "newFunction": "Nouvelle fonction", + "cartesian": "Cartésienne", + "implicit": "Implicite", + "polar": "Polaire", + "parametric": "Paramétrique", + "add": "Ajouter", + "functionsListText": "Fonction dessinées", + "edit": "Modifier", + "tools": "Outils", + "from": "de", + "to": "à", + "color": "Couleur", + "derivatives": "Dérivées", + "primitive": "Primitive", + "duplicate": "Dupliquer", + "remove": "Supprimer", + "computePoint": "Calculer un point de la fonction", + "compute": "Calculer", + "computeArea": "Calculer l'aire sous la fonction", + "startStudy": "Démarrer l'étude", + "latestDisplayedFunctions": "Dernières fonctions dessinées", + "chooseColor": "Choix de la couleur", + "value": "Valeur", + "saturation": "Saturation", + "red": "Rouge", + "green": "Vert", + "blue": "Bleu", + "opacity": "Opacité", + "oldColor": "Ancienne Couleur", + "newColor": "Nouvelle Couleur", + "cancel": "Annuler", + "error": "Erreur", + "cannotDrawFunction": "Impossible de dessiner la fonction", + "invalidExpression": "Expression ou caractère invalide", + "checkTheFunction": "Vérifiez la fonction que vous vouliez dessiner", + "errorMessage": "Message d'erreur", + "youCanFindExamples": "Une description ainsi que des exemples des différentes fonctions que vous pouvez dessiner se trouvent dans l'aide", + "width": "Largeur", + "height": "Hauteur", + "backgroundColor": "Couleur de fond", + "imageFormat": "Format de l'image", + "update": "Mise à jour", + "currentVersion": "Version en cours d'utilisation", + "latestVersionAvailable": "Dernière version disponible en ligne", + "useLatestVersionText": "Vous pouvez remplacer la version en cours d'utilisation par une version du widget en ligne. Notez que ceci ne met pas à jour le widget. Il faudra réitérer cette procédure la prochaine fois que vous l'utiliserez.", + "useLatestVersion": "Utiliser la dernière version", + "updateErrorText": "Il est impossible de mettre à jour le widget vers la version en ligne car vous utilisez déjà la version en ligne", + "axes": "Axes", + "scale": "Échelle", + "grid": "Grille", + "reset": "Réinitialiser", + "saveImageTitle": "Sauvegarder l'image", + "saveImageText": "Cliquez avec le bouton de droite sur l'image et sélectionnez \"Enregistrer l'image\". Il est aussi possible de choisir \"Copier l'image\" et ensuite la coller dans une autre application.", + + /* Inside code */ + "even": "paire", + "odd": "impaire", + "none_f": "aucune", + "none_m": "aucun", + "clickHereToModify": "Cliquez ici pour modifier les fonctions ou en ajouter une nouvelle.", + "enterFunction": "Entrez une fonction à dessiner", + "needHelp": "Consulter l'aide", + "unableLoadParameters": "Impossible de charger les paramètres enregistrés..." + } +}; + diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Outils.js b/resources/library/applications/GraphMe.wgt/JavaScript/Outils.js new file mode 100755 index 0000000..82f9aa9 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Outils.js @@ -0,0 +1,550 @@ + +// -------------------- Fonctions des outils -------------------- + + +// Permet d'afficher la valeur en "y" pour un point donné en "x" +function calculerPoint() { + x = document.getElementById("inputX").value; + document.getElementById("outputX").innerHTML = " f(x) = "+fct.list[editeur.idFct].f(x)+""; + //alert("Si x = "+x+" \nf(x) = "+eval(fonction)+"") +} + + +// Historique + +var historique = { + liste : [], + + actualiser : function(){ + var texteHistorique = "" + for(var i=0; i'; + texteHistorique += this.liste[i].readableText(); + texteHistorique += '
    '; + } + document.getElementById("spanHistorique").innerHTML = texteHistorique + document.getElementById("divHistorique").scrollTop = 0 + }, + + use : function(index){ + fct.add(this.liste[index]); + }, + + ajouter : function(func){ + if(func.fct == ""){ + return; + } + for(var i=0; i= 1 ){ + element.removeChild(element.firstChild); + } + } + + this.width = width || element.clientWidth; + this.height = height || element.clientHeight; + +// element.style.width = affichage.largeur +"px"; +// element.style.height = affichage.hauteur +"px"; +// element.style.left = document.getElementById(affichage.id).offsetLeft+1 +"px"; +// element.style.top = document.getElementById(affichage.id).offsetTop+1 +"px"; + + this.canvas = document.createElement("canvas"); + this.canvas.width = this.width; + this.canvas.height = this.height; + element.appendChild(this.canvas); + this.ctx = this.canvas.getContext('2d'); + }, + + // Permet de changer d'outil et de faire différentes actions lors du choix de l'outil + choisir : function(nom){ + document.getElementById("pointTool").className = "toolButton"; + document.getElementById("moveTool").className = "toolButton"; + document.getElementById("tangentTool").className = "toolButton"; + switch(nom){ + case 'point': + document.getElementById("pointTool").className += " selectedTool"; + break; + case 'deplacement': + document.getElementById("moveTool").className += " selectedTool"; + break; + case 'tangente': + document.getElementById("tangentTool").className += " selectedTool"; + break; + } + if(nom == 'deplacement'){ + document.getElementById("eventAffichage").style.cursor = "move"; + } + else{ + document.getElementById("eventAffichage").style.cursor = "auto"; + } + this.dessinerListe(); + this.actuel = nom; + saveOptions(); + }, + + // Gestion des événements reçus de l'objet souris + move : function(x, y, xInit, yInit, active){ + switch(this.actuel){ + case "deplacement": + if(active){ + this.deplacement(x, y, xInit, yInit); + } + break; + case "point": + this.point(x, y); + break; + case "tangente": + this.tangente(x, y); + break; + } + }, + + down : function(x, y){ + switch(this.actuel){ + case "point": + this.point(x, y, true) + break; + case "tangente": + this.tangente(x, y, true); + break; + } + }, + + // Fonctions des outils + deplacement : function(x, y, xInit, yInit){ + var valeurX = (x-xInit)/affichage.multX; + var valeurY = (yInit-y)/affichage.multY; + if(Math.round(Math.abs(valeurX)) > 0){ + if(fonction3D){ + affichage.deplacerX(Math.round(2*valeurX)/2); + } + else{ + affichage.deplacerX(-Math.round(2*valeurX)/2); + } + souris.xInit = x; + } + if(Math.round(Math.abs(valeurY)) > 0){ + affichage.deplacerY(-Math.round(2*valeurY)/2); + souris.yInit = y; + } + }, + + point : function(sourisX, sourisY, ajouterDansListe){ + var ctx = new Object(); + ctx = this.ctx; + + // Dessiner les points et tangentes supplémentaires + this.dessinerListe(); + + for(var i=0; i func.endAngle){ + continue; + } + } + var x = func.getX(t); + var y = func.getY(t); + + // Afficher les coordonnées et le point sous la souris + if(!isNaN(x) && !isNaN(y)){ + if(ajouterDansListe){ + this.ajouterPoint(x, y, func.couleur); + } + this.dessinerPoint(x, y, func.couleur); + } + } + }, + dessinerPoint : function(x, y, couleur){ + var ctx = new Object(); + ctx = this.ctx; + + // Conversion des coordonnées + var posX = coordToPosX(x) + 1; + var posY = coordToPosY(y) + 1; + + ctx.shadowColor = couleur; + ctx.shadowBlur = 4; + + // Texte + var txtPos = "("+Math.round(x*100)/100+";"+Math.round(y*100)/100+")"; + ctx.fillStyle = "rgba(255,255,255,0.5)"; + try{ + ctx.bulle(posX+7, posY-7, txtPos.length*5.5, 20); + } + catch(err){ + ctx.fillRect(posX+7, posY-27, txtPos.length*5.5, 20); + } + + ctx.fillStyle = "black"; + ctx.shadowColor = "black"; + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 1; + ctx.shadowBlur = 2; + ctx.fillText(txtPos, posX+8+txtPos.length/4, posY-13); + + // Rond + ctx.beginPath(); + ctx.arc(posX, posY, 4, 0, 2*Math.PI, true); + + ctx.shadowColor = couleur; + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + ctx.shadowBlur = 4; + + ctx.fillStyle = "rgba(0,0,0,1)"; + ctx.strokeStyle = "rgba(255,255,255,0.8)"; + ctx.lineWidth = 1; + ctx.fill() + ctx.stroke(); + }, + + tangente : function(sourisX, sourisY, ajouterDansListe){ + var delta = 0.001; + + var ctx = new Object(); + ctx = this.ctx; + + // Dessiner les points et tangentes supplémentaires + this.dessinerListe(); + + // Dessiner les tangentes des fonctions + for(var i=0; i func.endAngle){ + continue; + } + } + var t1 = t + delta; + var x = func.getX(t); + var x1 = func.getX(t1); + // Calcul de deux valeurs y et de la pente + var y = func.getY(t); + var y1 = func.getY(t1); + var pente; + if(x1 != x){ + pente = (y1-y)/(x1-x); + } + else{ + pente = Number.POSITIVE_INFINITY; + } + + // Dessiner la pente; + if(!isNaN(x) && !isNaN(y) && !isNaN(y1)){ + if(ajouterDansListe){ + this.ajouterTangente(x, y, pente, func.couleur); + } + this.dessinerTangente(x, y, pente, func.couleur); + } + } + }, + dessinerTangente : function(x, y, pente, couleur){ + var ctx = new Object(); + ctx = this.ctx; + + // Conversion des coordonnées + var posX = coordToPosX(x) + 1; + var posY = coordToPosY(y) + 1; + + // Carré + ctx.shadowColor = couleur; + ctx.shadowBlur = 4; + + ctx.fillStyle = "white"; + ctx.fillRect(posX-3, posY-3, 6, 6); + + // Pente + ctx.strokeStyle = "white"; + ctx.lineWidth = 2; + ctx.beginPath(); + var pente2 = pente * (affichage.hauteur/affichage.largeur) * (affichage.xDroite-affichage.xGauche)/(affichage.yHaut-affichage.yBas); + ctx.moveTo(0, posY+posX*pente2); + ctx.lineTo(affichage.largeur, posY+posX*pente2-affichage.largeur*pente2); + ctx.stroke(); + + // Texte + var txtPente; + if(isFinite(pente)){ + txtPente = pente.toFixed(2); + } + else{ + txtPente = "∞" + } + ctx.fillStyle = "rgba(255,255,255,0.5)"; + try{ + ctx.bulle(posX+7, posY-7, txtPente.length*5.5+1, 20); + } + catch(err){ + ctx.fillRect(posX+7, posY-27, txtPente.length*5.5, 20); + } + + ctx.fillStyle = "black"; + ctx.shadowColor = "black"; + ctx.shadowOffsetX = 1; + ctx.shadowOffsetY = 1; + ctx.shadowBlur = 2; + ctx.fillText(txtPente, posX+8+txtPente.length/4, posY-13); + }, + + ajouterPoint : function(x, y, couleur){ + var newPoint = { + x : x, + y : y, + couleur : couleur, + dessiner : function(){ + outil.dessinerPoint(this.x, this.y, this.couleur); + } + }; + this.liste.push(newPoint); + }, + ajouterTangente : function(x, y, pente, couleur){ + var newTangente = { + x : x, + y : y, + pente : pente, + couleur : couleur, + dessiner : function(){ + outil.dessinerTangente(this.x, this.y, this.pente, this.couleur); + } + }; + this.liste.push(newTangente); + }, + dessinerListe : function(){ + if(!this.ctx){ + return; + } + this.ctx.clearRect(0,0,affichage.largeur*2,affichage.hauteur*2); + for(var i=0; i affichage.largeur+affichage.offsetLeft || posX < affichage.offsetLeft || posY > affichage.hauteur+affichage.offsetTop || posX < affichage.offsetTop){ + continue; + } + var txt = '
    '; + afficherMenu('menuSaveImage'); + + display3D.background = background; + setTimeout(function(){ + display3D.init(); + display3D.draw(); + }, 1); + } + else{ + if(affichage.methode == "canvas"){ + var l = affichage.largeur; + var h = affichage.hauteur; + var c = affichage.couleurFond; + + affichage.largeur = parseInt(document.getElementById("saveWidth").value); + affichage.hauteur = parseInt(document.getElementById("saveHeight").value); + affichage.couleurFond = backgroundSauvegarde; + + var newDiv = document.createElement("div"); + affichage.init(newDiv, userWidth, userHeight); + + outil.init(); + outil.dessinerListe(); + affichage.ctx.drawImage(outil.canvas,0,0); + + var dataURL; + if(document.getElementById("selectSaveType").value == "jpg"){ + dataURL = affichage.canvas.toDataURL("image/jpeg"); + } + else{ + dataURL = affichage.canvas.toDataURL(); + } + document.getElementById("saveImageContent").innerHTML = ''; + afficherMenu('menuSaveImage'); + + affichage.largeur = l; + affichage.hauteur = h; + affichage.couleurFond = c; + affichage.init(); + outil.init(); + } + else if(affichage.methode == "svg"){ + window.open("JavaScript/AffichageSVG.svg"); + } + } +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/ParametricFunction.js b/resources/library/applications/GraphMe.wgt/JavaScript/ParametricFunction.js new file mode 100644 index 0000000..30ed427 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/ParametricFunction.js @@ -0,0 +1,116 @@ + + +function ParametricFunction(fctX, fctY){ + + this.setFct = function(fctX, fctY){ + this.fct = "x(t) = " + fctX + " ; y(t) = " + fctY; + this.fctX = fctX; + this.fctY = fctY; + this.fx = new Function("t", "return "+this.fctX); + this.fy = new Function("t", "return "+this.fctY); + } + + if(fctX && fctY){ + this.setFct(fctX, fctY); + } + this.couleur = fct.couleur; + this.width = document.getElementById("inputTaille").value; + this.startAngle = 0; + this.endAngle = 2*Math.PI; + this.from = "0"; + this.to = "2*pi"; + this.style = document.getElementById("selectStyle").value; + + this.getX = function(t){ + return this.fx(t); + }; + + this.getY = function(t){ + return this.fy(t); + }; + + this.set = function(f){ + var fctX = fct.remplacer(fct.verifier(f.fctX)); + var fctY = fct.remplacer(fct.verifier(f.fctY)); + this.setFct(fctX, fctY); + this.couleur = f.couleur; + this.width = f.width; + this.style = f.style; + this.from = f.from; + this.to = f.to; + this.startAngle = eval(fct.remplacer(fct.verifier(f.from))); + this.endAngle = eval(fct.remplacer(fct.verifier(f.to))); + return this; + }; + + this.get = function(){ + var f = {}; + f.type = "parametric"; + f.fctX = this.fctX; + f.fctY = this.fctY; + f.couleur = this.couleur; + f.width = this.width; + f.style = this.style; + f.from = this.from; + f.to = this.to; + return f; + }; + + this.readableText = function(){ + return "x(t) = " + this.fctX + "; y(t) = " + this.fctY; + }; + + this.setStartEnd = function(start, end){ + if(start > end){ + var tmp = start; + start = end; + end = start; + } + this.startAngle = start; + this.endAngle = end; + }; + + this.plot = function(ctx, precision, affichage){ + if(this.style == "points"){ + precision *= 2; + } + + ctx.beginPath(); + ctx.lineWidth = this.width; + ctx.strokeStyle = this.couleur; + ctx.fillStyle = this.couleur; + notDefined = true; + for(var t = this.startAngle; t <= this.endAngle; t+=precision){ + var x = this.fx(t); + var y = this.fy(t); + if(!isNaN(x) && !isNaN(y)){ + // Transform coordinates + var pointX = (x - affichage.xGauche) * affichage.multX; + var pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + + // Draw point + if(notDefined){ + notDefined = false; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + notDefined = true; + } + } + } + } + if(this.style != "points"){ + ctx.stroke(); + } + }; +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/PolarFunction.js b/resources/library/applications/GraphMe.wgt/JavaScript/PolarFunction.js new file mode 100644 index 0000000..52dd7e7 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/PolarFunction.js @@ -0,0 +1,112 @@ + +function PolarFunction(txtFct){ + + this.setFct = function(txt){ + this.fct = txt; + this.f = new Function("t", "return "+this.fct); + }; + + if(txtFct){ + this.setFct(txtFct); + } + this.couleur = fct.couleur; + this.width = document.getElementById("inputTaille").value; + this.startAngle = 0; + this.endAngle = 2*Math.PI; + this.from = "0"; + this.to = "2*pi"; + this.style = document.getElementById("selectStyle").value; + + this.getX = function(t){ + var r = this.f(t); + return r * Math.cos(t); + }; + + this.getY = function(t){ + var r = this.f(t); + return r * Math.sin(t); + }; + + this.set = function(f){ + this.setFct(fct.remplacer(fct.verifier(f.fct))); + this.couleur = f.couleur; + this.width = f.width; + this.style = f.style; + this.from = f.from; + this.to = f.to; + this.startAngle = eval(fct.remplacer(fct.verifier(f.from))); + this.endAngle = eval(fct.remplacer(fct.verifier(f.to))); + return this; + }; + + this.get = function(){ + var f = {}; + f.type = "polar"; + f.fct = this.fct; + f.couleur = this.couleur; + f.width = this.width; + f.style = this.style; + f.from = this.from; + f.to = this.to; + return f; + }; + + this.readableText = function(){ + return "r(t) = " + this.fct; + }; + + this.setStartEnd = function(start, end){ + if(start > end){ + var tmp = start; + start = end; + end = start; + } + this.startAngle = start; + this.endAngle = end; + }; + + this.plot = function(ctx, precision, affichage){ + if(this.style == "points"){ + precision *= 2; + } + + ctx.beginPath(); + ctx.lineWidth = this.width; + ctx.strokeStyle = this.couleur; + ctx.fillStyle = this.couleur; + notDefined = true; + for(var t = this.startAngle; t <= this.endAngle; t+=precision){ + var r = this.f(t); + if(!isNaN(r)){ + // Transform coordinates + var x = r * Math.cos(t); + var y = r * Math.sin(t); + var pointX = (x - affichage.xGauche) * affichage.multX; + var pointY = affichage.hauteur - (y - affichage.yBas) * affichage.multY; + + // Draw point + if(notDefined){ + notDefined = false; + ctx.moveTo(pointX, pointY); + } + else{ + if(this.style == "continu"){ + ctx.lineTo(pointX, pointY); + } + else if(this.style == "points"){ + ctx.beginPath(); + ctx.arc(pointX, pointY, this.width, 0, 2*Math.PI, true); + ctx.fill(); + } + else{ + ctx.lineTo(pointX, pointY); + notDefined = true; + } + } + } + } + if(this.style != "points"){ + ctx.stroke(); + } + }; +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Sauvegardes.js b/resources/library/applications/GraphMe.wgt/JavaScript/Sauvegardes.js new file mode 100644 index 0000000..54b3829 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Sauvegardes.js @@ -0,0 +1,106 @@ +// Fonctions permettant de sauvegarder les options + +var optionsLoaded = false; + +function setCookie(nom,valeur){ + var jours = 545; // Durée de validité des cookies + var date = new Date(); + date.setDate(date.getDate()+jours); + document.cookie = nom + "=" + escape(valeur) + "; expires="+date.toGMTString(); +} + +function getCookie(nom){ + var start = 0; + var end = 0; + if(document.cookie.length>0){ + start = document.cookie.indexOf(nom + "="); + if(start!=-1){ + start = start + nom.length+1; + end = document.cookie.indexOf(";",start); + if(end==-1){ + end = document.cookie.length; + } + return unescape(document.cookie.substring(start,end)); + } + } + return ""; +} + +function delCookie(nom){ + var date = new Date(); + date.setDate(date.getDate()-1); + document.cookie = nom + "=; expires="+date.toGMTString(); +} + +function saveOptions(){ + if(!optionsLoaded){ + return; + } + var state = JSON.stringify(widget.getState()); + if(window.sankore){ + sankore.setPreference("state", state); + } + else if(navigator.cookieEnabled){ + setCookie("state", state); + } +} + +function loadOptions(){ + var state; + if(window.sankore){ + state = sankore.preference("state", null); + } + else if(navigator.cookieEnabled){ + state = getCookie("state"); + } + if(!state){ + optionsLoaded = true; + return; + } + var stateObject = JSON.parse(state); + var goodState = widget.getState(); + if(!checkState(stateObject, goodState)){ + loadOptionsFailed(); + } + try{ + widget.setState(stateObject); + optionsLoaded = true; + } + catch(e){ + loadOptionsFailed(); + } +} + +function loadOptionsFailed(){ + var text = "Unable to load the saved parameters..."; + try{ + text = languages.getText("unableLoadParameters"); + } + catch(e){} + alert(text); + delOptions(); +} + +function checkState(state, goodState){ + for(var i in goodState){ + if(! i in state){ + return false; + } + } + return true; +} + +function delOptions(){ + if(window.sankore){ + sankore.setPreference("state", ""); + } + else if(navigator.cookieEnabled){ + delCookie("state"); + } +} + +function alertOptions(){ +// alert("Options actuellement sauvegardées\n------------------------------------------------------------\n"+document.cookie); + document.getElementById("divAlertCookies").innerHTML = document.cookie; + afficherMenu("menuAlertCookies"); +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Souris.js b/resources/library/applications/GraphMe.wgt/JavaScript/Souris.js new file mode 100644 index 0000000..3f1c211 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Souris.js @@ -0,0 +1,92 @@ + +var souris = { + active : false, + xInit : 0, + yInit : 0, + + down : function(event){ + var x = event.clientX; + var y = event.clientY; + this.active = true; + this.xInit = x; + this.yInit = y; + if(event.button != 2 && !ctxMenu.ouvert){ + outil.down(x, y); + } + ctxMenu.fermer(); + }, + up : function(){ + this.active = false; + }, + move : function(event){ + var x = event.clientX; + var y = event.clientY; + outil.move(x, y, souris.xInit, souris.yInit, souris.active); + }, + out : function(event){ + outil.dessinerListe(); + if(event.relatedTarget && event.relatedTarget.className != "flecheDeplacement"){ + this.active = false; + } + }, + wheel : function(event){ + if(!event) event = window.event; + if(event.wheelDelta){ + if(event.wheelDelta < 0){ + affichage.zoom(1.25); + } + else{ + affichage.zoom(0.8); + } + } + else if(event.detail){ + if(event.detail > 0){ + affichage.zoom(1.25); + } + else{ + affichage.zoom(0.8); + } + } + }, + dblClick : function(event){ + if(event.ctrlKey){ + affichage.zoom(1.25) + display3D.zoom(1.25) + } + else{ + affichage.zoom(0.8) + display3D.zoom(0.8) + } + } +} + +var ctxMenu = { + id : "ctxMenu", + ouvert : false, + + ouvrir : function(){ + if(!fonction3D){ + ctxMenu.ouvert = true; + + var element = document.getElementById("ctxMenu"); + var x = souris.xInit; + var y = souris.yInit; + // var x = 300; + // var y = 300; + element.style.display = "block"; + element.style.left = (x+1)+"px"; + element.style.top = (y+1)+"px"; + + // Désactive le menu du navigateur + return false; + } + }, + + fermer : function(){ + ctxMenu.ouvert = false; + + var element = document.getElementById("ctxMenu"); + element.style.display = "none"; + } +} + diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Utils.js b/resources/library/applications/GraphMe.wgt/JavaScript/Utils.js new file mode 100644 index 0000000..f7dcbf7 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Utils.js @@ -0,0 +1,228 @@ + +// Lance la procédure pour dessiner la fonction qui se trouve dans l'input en haut du widget. +// Permet aussi d'actualiser le graphique. +function actualiserGraph(){ + affichage.calculer(); +} + +// Retourne l'index du dernier endroit où se trouve listCharacter dans une chaîne de caractère. +String.prototype.getLastIndexOf = function(listCharacter, minPos, maxPos){ + var count = 0; + var parenthese = false; + if(!maxPos){ + maxPos = this.length; + } + for(var i=maxPos; i>=minPos; i--){ + if(this.charAt(i) == ")"){ + count++; + parenthese = true; + } + else if(this.charAt(i) == "("){ + count--; + } +// window.console.log(this.charAt(i)+" ; "+count); + for(var j=0; j0){ + return 1; + } + else{ + return undefined; + } +} + +function round(valeur){ + return Math.round(valeur); +} +function ceil(valeur){ + return Math.ceil(valeur); +} +function floor(valeur){ + return Math.floor(valeur); +} +function random(){ + return Math.random(); +} diff --git a/resources/library/applications/GraphMe.wgt/JavaScript/Widget.js b/resources/library/applications/GraphMe.wgt/JavaScript/Widget.js new file mode 100644 index 0000000..100d109 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/JavaScript/Widget.js @@ -0,0 +1,186 @@ +var listeServeurs = [ + 'http://yannick.vessaz.net/GraphMe/GraphMe.wgt/' + /*'http://gyb.educanet2.ch/tm-widgets/yannick/GraphMe.wgt/'*/ +]; + +var widget = { + init: function(){ +// try{ + document.getElementById('inputRapide').value = ""; + document.getElementById('selectTheme').value = "darkblue"; + affichage.setOptions(); + document.getElementById('zoomDefaut').value = "3.7"; + document.getElementById('functionType').value = "cartesian"; + document.getElementById('inputTaille').value = "3"; + document.getElementById('checkDerivee1').checked = false; + document.getElementById('checkDerivee2').checked = false; + document.getElementById('checkPrimitive1').checked = false; + document.getElementById('checkAire').checked = false; + document.getElementById('selectStyle').value = "continu"; + document.getElementById('input3D').value = ""; + document.getElementById('inputPrecision3D').value = "0.2"; + document.getElementById('selectAffichage3D').value = "surfaces"; + document.getElementById('selectRouge3D').value = "plus"; + document.getElementById('selectVert3D').value = "moins"; + document.getElementById('selectBleu3D').value = "tout"; + document.getElementById('couleur3Dgenerale').value = "0"; + + affichage.init(); + outil.init(); + editorPreview.init(); + display3D.checkCouleurs3D(); + loadOptions(); + + if(!fonction3D){ + if(fct.list.length == 0){ + this.displayStartInput(); + } + else if(!window.sankore){ + this.displayFunctionsHelp(); + } + } +// } +// catch(err){ +// alert(err+'\n'+err.stack); +// } + }, + + displayStartInput: function(){ + document.getElementById('divInputRapide').style.display = "block"; + var textEnterFunction = "Enter a cartesian function"; + try{ + textEnterFunction = languages.getText("enterFunction"); + } + catch(e){} + var textNeedHelp = "Need help ?"; + try{ + textNeedHelp = languages.getText("needHelp"); + } + catch(e){} + + var text = textEnterFunction + '. '+ textNeedHelp +'' + + message.ajouter(275,75,text); + setTimeout(message.supprimer, 15000); + + document.getElementById('inputRapide').focus(); + }, + + addStartFunction: function(){ + message.supprimer(); + document.getElementById('divInputRapide').style.display = 'none'; + document.getElementById('input').value = document.getElementById('inputRapide').value; + fct.ajouter(); + this.displayFunctionsHelp(); + }, + + displayFunctionsHelp: function(){ + var text = "Click here to modify the functions or add a new function."; + try{ + text = languages.getText("clickHereToModify"); + } + catch(e){} + setTimeout(function(){message.ajouter(220,35,text)}, 50); + setTimeout(message.supprimer, 5000); + }, + + resize: function(){ + if(fonction3D){ + display3D.init(); + display3D.draw(); + } + else{ + affichage.init(); + } + outil.init(); + }, + + reset: function(){ + delOptions(); + window.location.reload(); + }, + + getState: function(){ + var state = { + theme: document.getElementById("selectTheme").value, + displayMethod: document.getElementById("selectMethodeAffichage").value, + defaultZoom: document.getElementById("zoomDefaut").value, + displayGrid: document.getElementById("checkGrille").checked, + displayAxes: document.getElementById("checkAxes").checked, + displayScale: document.getElementById("checkEchelle").checked, + accuracy: document.getElementById("inputPrecision").value, + improvedAccuracy: document.getElementById("checkPrecision").checked, + thickness: document.getElementById("inputTaille").value, + lineStyle: document.getElementById("selectStyle").value, + derivative1: document.getElementById("checkDerivee1").checked, + derivative2: document.getElementById("checkDerivee2").checked, + primitive: document.getElementById("checkPrimitive1").checked, + drawArea: document.getElementById("checkAire").checked, + lineStyle3D: document.getElementById("selectAffichage3D").value, + accuracy3D: document.getElementById("inputPrecision3D").value, + plotHistory: historique.get(), + functions: fct.get(), + display3D: fonction3D, + input3D: document.getElementById('input3D').value, + currentTool: outil.actuel + }; + if(window.sankore){ + state.fullScreen = pleinEcran; + state.displayLeft = affichage.xGauche; + state.displayRight = affichage.xDroite; + state.displayUp = affichage.yHaut; + state.displayDown = affichage.yBas; + } + return state; + }, + + setState: function(state){ + document.getElementById("selectTheme").value = state.theme; + document.getElementById("selectMethodeAffichage").value = state.displayMethod; + document.getElementById("zoomDefaut").value = state.defaultZoom; + document.getElementById("checkGrille").checked = state.displayGrid; + document.getElementById("checkAxes").checked = state.displayAxes; + document.getElementById("checkEchelle").checked = state.displayScale; + document.getElementById("inputPrecision").value = state.accuracy; + document.getElementById("checkPrecision").checked = state.improvedAccuracy; + document.getElementById("inputTaille").value = state.thickness; + document.getElementById("selectStyle").value = state.lineStyle; + document.getElementById("checkDerivee1").checked = state.derivative1; + document.getElementById("checkDerivee2").checked = state.derivative2; + document.getElementById("checkPrimitive1").checked = state.primitive; + document.getElementById("checkAire").checked = state.drawArea; + document.getElementById("selectAffichage3D").value = state.lineStyle3D; + document.getElementById("inputPrecision3D").value = state.accuracy3D; + historique.set(state.plotHistory); + fct.set(state.functions); + document.getElementById('input3D').value = state.input3D || ""; + if(state.display3D){ + activer3D(); + } + + if(window.sankore){ + if(state.fullScreen){ + agrandirAffichage(); + } + affichage.xGauche = state.displayLeft; + affichage.xDroite = state.displayRight; + affichage.yHaut = state.displayUp; + affichage.yBas = state.displayDown; + affichage.setBornes(); + } + + affichage.getOptions(); + if(!window.sankore){ + affichage.initZoom2(document.getElementById('zoomDefaut').value); + } + changerTheme(document.getElementById("selectTheme").value); + if(state.display3D){ + display3D.draw(); + } + else{ + affichage.dessiner(); + } + + outil.choisir(state.currentTool); + } +}; diff --git a/resources/library/applications/GraphMe.wgt/Style/ColorPicker.css b/resources/library/applications/GraphMe.wgt/Style/ColorPicker.css new file mode 100644 index 0000000..8ec2103 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Style/ColorPicker.css @@ -0,0 +1,56 @@ +/* ColorPicker */ +#canvasSV{ + width: 250px; + height: 250px; + border: 1px solid black; +} +#canvasT{ + width: 25px; + height: 250px; + border: 1px solid black; + position: relative; + left: 10px; +} +#canvasO{ + width: 290px; + height: 25px; + position: relative; + top: 5px; +} + +/* Valeurs de la couleur dans le ColorPicker */ +#colorValues{ + position: relative; + left: 10px; + font-size: 11px; + float: right; +} +#colorValues td{ + vertical-align: middle; + text-align: right; +} + +/* Aperçus dans le ColorPicker */ +#apercuCouleur{ + position: absolute; + right: 20px; + bottom: 40px; + width: 40px; + height: 30px; + border: 1px white solid; + border-radius: 5px; + -webkit-border-radius: 5px; + background-color: rgb(193,255,0); +} + +#apercuCouleur2{ + position: absolute; + right: 65px; + bottom: 40px; + width: 40px; + height: 30px; + border: 1px white solid; + border-radius: 5px; + -webkit-border-radius: 5px; + background-color: rgb(193,255,0); +} diff --git a/resources/library/applications/GraphMe.wgt/Style/Guide_Utilisateur.css b/resources/library/applications/GraphMe.wgt/Style/Guide_Utilisateur.css new file mode 100644 index 0000000..166f2cf --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Style/Guide_Utilisateur.css @@ -0,0 +1,41 @@ +body{ + background-color: rgba(255,255,255,0.6); +} +h1{ + font-size: 250%; + text-align: center; + text-decoration: underline; +} +h2{ + margin-top: 40px; +} +h4{ + margin-top: 20px; + margin-bottom: 0px; +} +img{ + display: block; + margin-left: auto; + margin-right: auto; +} +p{ + text-align: justify; +} +li{ + text-align: justify; +} +.droite{ + float: right; + font-size: 80%; + font-style: italic; + margin: 5px; +} +.gauche{ + float: left; + font-size: 80%; + font-style: italic; +} +#Sommaire{ + margin-top: 100px; + margin-bottom: 100px; +} \ No newline at end of file diff --git a/resources/library/applications/GraphMe.wgt/Style/Haut.css b/resources/library/applications/GraphMe.wgt/Style/Haut.css new file mode 100644 index 0000000..329a839 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Style/Haut.css @@ -0,0 +1,341 @@ +/* Boutons qui sont en haut du widget */ +#haut{ + position: absolute; + top: 0px; + left: 8px; + right: 0px; + height: 30px; + z-index: 2; + pointer-events: none; +} + +#haut > *{ + pointer-events: auto; +} + +/* Onglets */ +.ongletHaut{ +/* background-color: rgba(255, 255, 255, 0.3); */ + background-image: url('../Images/gradient2.png'); + border-color: rgba(255, 255, 255, 0.2); + border-style: none solid solid solid; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-width: 1px; + box-shadow: 0px 0px 2px rgba(0,0,0,0.5); + color: white; + font-size: 16px; + text-align: center; + display: inline-block; + min-width: 90px; + height: 19px; + margin-right: 5px; + padding: 2px 8px; + opacity: 0.9; + cursor: pointer; + vertical-align: bottom; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ongletHaut:hover{ + background-color: rgba(0,180,255,0.3); +/* border-color: rgba(255, 255, 255, 0.6); */ + box-shadow:0px 0px 6px rgba(0,180,255,1), 0px 0px 3px rgba(0,0,0,1); + opacity: 1; +} +.ongletHaut:active{ + background-color: rgba(0,90,128,0.3); + box-shadow:0px 0px 6px rgba(0,90,128,1), 0px 0px 3px rgba(0,0,0,1); + position: relative; + color: rgba(255,255,255,0.8); + padding-top: 1px; + bottom: 1px; +} +.premierOngletHaut{ + font-weight: bold; + background-color: rgba(255,160,0,0.3); +} +.premierOngletHaut:hover{ + background-color: rgba(255,160,0,0.5); + box-shadow:0px 0px 6px rgba(255,160,0,1), 0px 0px 3px rgba(0,0,0,1); +} +.premierOngletHaut:active{ + background-color: rgba(128,80,0,0.5); + box-shadow:0px 0px 6px rgba(128,80,0,1), 0px 0px 3px rgba(0,0,0,1); +/* position: relative; */ +/* bottom: 1px; */ +} + +/* Bouton qui sert à choisir entre l'affichage 3D et 2D */ +#onglet3D{ + position: absolute; + top: 8px; + left: 538px; + width: 40px; + height: 19px; + padding-top: 2px; + color: white; + font-size: 16px; + text-align: center; + background-color: rgba(255,255,255,0); + background-image: url('../Images/gradient2.png'); +/* background-image: url("../Images/onglet1.png"); */ + border: 1px solid rgba(255,255,255,0.2); + border-bottom: none; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + box-shadow: 0px 0px 2px rgba(0,0,0,0.2); + cursor: pointer; + opacity: 0.8; + z-index: 3; +} +#onglet3D:hover{ + background-color: rgba(255, 255, 255, 0.2); + box-shadow: 0px 0px 4px rgba(255,255,255,1); + opacity: 1; +} +#onglet3D:active{ + background-color: rgba(255, 255, 255, 0.1); + box-shadow: 0px 0px 4px rgba(255,255,255,0.5); + top: 9px; + color: rgba(255,255,255,0.8); +} + +/* Petits boutons en haut à droite du widget */ +#topRightButtons{ + position: absolute; + right: 10px; + top: 3px; + z-index: 4; +} +.miniBouton{ + display: inline-block; + width: 12px; + height: 12px; + color: white; + font-size: 12px; + text-align: center; + background-color: rgba(255,255,255,0); + background-image: url('../Images/gradient.png'); + background-position: 0px 0px; + border: 1px solid rgba(255,255,255,0.5); + border-radius: 6px; + -webkit-border-radius: 6px; + box-shadow: 0px 0px 2px rgba(0,0,0,1); + cursor: pointer; + opacity: 0.5; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.miniBouton:hover{ + opacity: 1; + box-shadow: 0px 0px 4px rgba(255,255,255,1); +} +.miniBouton:active{ + box-shadow: 0px 0px 4px rgba(255,255,255,0.5); + border: 1px solid rgba(255,255,255,0.4); + width: 11px; + height: 11px; + font-size: 11px; + margin-left: 1px; +} + +/* Bouton permettant de minimiser et maximiser le widget */ +/* Non utilisé pour le moment...*/ +#miniMax{ + position: absolute; + left: 564px; + top: 3px; + z-index: 3; +} + +/* Boutons pour changer l'action de la souris*/ +#zoomButtons{ + position: absolute; + left: 13px; + top: 70px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#toolButtons{ + position: absolute; + left: 23px; + top: 103px; + padding: 2px; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +#toolButtons .toolButton{ + margin-bottom: 5px; + margin-top: 0px; +} +#toolButtons .toolButton:active{ + margin-bottom: 7px; +} + +.toolButton{ + margin-left: auto; + margin-right: auto; + width: 16px; + height: 16px; + color: white; + font-size: 14px; + text-align: center; + font-weight: bold; + background-color: rgba(255,255,255,0); + background-image: url('../Images/gradient.png'); + background-position: 0px 0px; + border: 1px solid rgba(255,255,255,0.5); + border-radius: 100%; + -webkit-border-radius: 10px; + box-shadow: 0px 0px 2px rgba(0,0,0,1); + cursor: pointer; + opacity: 0.5; +} +.toolButton:hover{ + opacity: 1; + box-shadow: 0px 0px 4px rgba(255,255,255,1); +} +.toolButton:active{ + box-shadow: 0px 0px 4px rgba(255,255,255,0.5); + border: 1px solid rgba(255,255,255,0.4); + width: 14px; + height: 14px; + font-size: 12px; + position: relative; + top: 1px; +} + +.toolButton.selectedTool{ +/* background-color: rgba(255,255,255,0); */ + background-color: rgba(0,180,255,0.3); + box-shadow:0px 0px 6px rgba(0,180,255,1), 0px 0px 3px rgba(0,0,0,1); + opacity: 0.7; +} + +.zoomButton{ + display: inline-block; + width: 22px; + height: 22px; + border-radius: 6px; + box-sizing: border-box; + padding: 2px; +} +.zoomButton:active{ + width: 20px; + height: 20px; + top: 0px; +} + +#zoomOut{ + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} +#zoomOut:active{ + margin-left: 2px; +} + +#zoomIn{ + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +.toolButton > .icon{ + background-size: 100%; + width: 100%; + height: 100%; +} + +#moveTool > .icon{ + background-image: url('../Images/move.png'); +} + +#tangentTool> .icon{ + background-image: url('../Images/tangent.png'); +} + +/* Joystick de déplacement */ +#zoneJoystick{ + position: absolute; + left: 8px; + top: 8px; + width: 50px; + height: 50px; + padding-left: 6px; + padding-top: 6px; +/* border: 1px solid green; */ + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + +} + +#joystick{ + width: 40px; + height: 40px; + color: white; + font-size: 14px; + text-align: center; + font-weight: bold; + background-color: rgba(255,255,255,0.2); + background-image: url('../Images/gradient4.png'); + background-position: 0px 0px; + border: 1px solid rgba(255,255,255,0.5); + border-radius: 25px; /*100% bug dans uniboard*/ + -webkit-border-radius: 25px; + box-shadow: 0px 0px 2px rgba(0,0,0,1); + cursor: pointer; + opacity: 0.5; +} +#joystick:hover{ + opacity: 1; + box-shadow: 0px 0px 2px rgba(255,255,255,1); +} +#joystick:active{ +/* box-shadow: 0px 0px 4px rgba(255,255,255,0.5); */ +/* border: 1px solid rgba(255,255,255,0.4); */ +/* width: 38px; */ +/* height: 38px; */ +/* font-size: 12px; */ +/* position: relative; */ +/* top: 1px; */ +/* left: 1px; */ +/* margin-bottom: 7px; */ +} +#joystick table{ + border-collapse: collapse; + width: 40px; + height: 40px; + font-size: 11px; +} +#joystick table tr td{ + padding: 0px; + text-shadow: 0px 0px 5px black; +/* border: 1px solid orange; */ + opacity: 0.5; +} +#joystick table tr td:hover{ + text-shadow: 0px 0px 3px white; + opacity: 1; +} +#joystick table tr td:active{ + opacity: 0.8; +} diff --git a/resources/library/applications/GraphMe.wgt/Style/Menus.css b/resources/library/applications/GraphMe.wgt/Style/Menus.css new file mode 100644 index 0000000..5a04ab6 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Style/Menus.css @@ -0,0 +1,238 @@ +/* Style pour les menus */ +.menu{ + position: absolute; + top: 0%; + width: 100%; + max-width: 800px; + min-height: 411px; + max-height: 100%; + overflow: auto; + background-color: rgba(255, 255, 255, 0.7); + border-style: none; + border-width: 1px; + border-color: rgba(0,70,128, 0.9); + border-radius: 4px; + -webkit-border-radius: 4px; + z-index: 2; + display: none; + box-sizing: border-box; +} +.barreBasMenu{ + position: absolute; + bottom: 0px; +/* right: 0px; */ +} +.barreBasMenu > div{ + position: fixed; + width: 100%; + max-width: 800px; + box-sizing: border-box; + /* right: 0px; */ +/* bottom: 14px; */ +} +.barreBasMenu > div > div{ + position: absolute; + bottom: 0px; + right: 0px; + width: 100%; + box-sizing: border-box; + padding-right: 28px; +/* background-color: rgba(255,0,0,0.3); */ + text-align: right; +} +.contenuMenu{ + font-size: 14px; + padding: 15px; + padding-top: 40px; +/* overflow: auto; */ +/* height: 100%; */ +/* position: absolute; */ +/* top: 0px; */ +/* bottom: 0px; */ +} +.avecBordures{ +/* border-top: 1px solid rgba(255, 255, 255, 0.4); */ +/* height: 80% */ +} +.ongletMenu{ + position: fixed; +/* top: 0px; */ + width: 100%; + max-width: 800px; +/* height: 50px; */ +/* background-color: rgba(255,0,0,0.3); */ +/* border-spacing: 15px; */ + box-sizing: border-box; + padding-right: 14px; + text-align: center; + z-index: 1; +} +.ongletMenu > div{ +/* position: fixed; */ +/* width: inherit; */ +/* top: 0px; */ +/* left: 0px; */ +/* right: 0px; */ +} +.deuxOnglets span{ + width: 44%; +} +.troisOnglets span{ + width: 28%; +} +.ongletMenu span{ + display: inline-block; + min-width: 150px; + padding: 5px; + margin: 0px 7px; + text-align: center; + font-weight: normal; + background-color: rgba(255, 255, 255, 0.8); + background-image: url('../Images/gradient3.png'); + border: 1px solid rgba(255, 255, 255, 0.9); + border-top: none; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + box-shadow: 0px 0px 3px rgba(0,0,0,0.5); + opacity: 0.7; + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ongletMenu span.ongletMenuActuel{ + opacity: 0.9; + font-weight: bold; + background-color: rgba(255, 255, 255, 0.9); +} +.ongletMenu span:hover{ + opacity: 1; + box-shadow:0px 0px 3px rgba(0,0,0,0.5), 0px 0px 7px rgba(255,255,255,1); +} +.ongletMenu span:active{ + opacity: 0.7; + font-weight: bold; + box-shadow:0px 0px 3px rgba(0,0,0,0.5), 0px 0px 7px rgba(255,255,255,0.5); +} +.menu table.colonnes tr td{ + vertical-align: top; +} +.menu table.colonnes tr td{ + border-left: 1px solid rgba(255,255,255,0.5); + padding-left: 4px; +} +.menu table.colonnes tr td.premiereColonne{ + border: none; + padding-right: 4px; +} + + +.miniMenu{ + position: absolute; + top: 45%; + left: 50%; + margin-left: -160px; + margin-top: -120px; + width: 320px; + min-height: 240px; + padding: 5px; + text-align: center; + font-size: 14px; + overflow: auto; + background-color: rgba(255, 255, 255, 0.6); + background-image: url('../Images/gradient2.png'); + background-size: 100% 100%; + box-shadow: 0px 0px 5px rgba(0,0,0,0.5); + border-style: solid; + border-width: 1px; + border-color: rgba(255,255,255, 0.5); + border-radius: 8px; + -webkit-border-radius: 8px; + z-index: 2; + display: none; +} +.alertMenu{ + position: absolute; + top: 126px; + left: 206px; + width: 220px; + height: 140px; + padding: 10px; + text-align: center; + font-size: 14px; + overflow: auto; + background-color: rgba(255, 255, 255, 0.9); + background-image: url('../Images/gradient2.png'); + background-size: 100% 100%; + border-style: solid; + border-width: 1px; + border-color: rgba(0,70,128, 0.9); + border-radius: 15px; + -webkit-border-radius: 15px; + z-index: 3; + display: none; +} +.miniMenu select{ +/* width: 65px; */ +} +.miniMenu input{ + width: 45%; + height: 32px; +} +.miniMenu input.smallInput{ + width: 45%; + height: 16px; +} +.alertMenu input{ + width: 45%; + height: 32px; +} + + +/* Menu "à propos" */ +#credits{ + width: 80%; + margin: auto; + margin-top: 10px; +} +#credits tr td{ + padding: 10px; + width: 100%; + height: 150px; + text-align: center; + text-shadow: 2px 2px 6px rgba(255,255,255,1); + vertical-align: middle; + background-color: rgba(255,220,150,0.5); + background-image: url('../Images/gradient2.png'); + background-size: 100% 100%; + border: 1px solid rgba(255,230,150,0.6); + border-radius: 10px; + -webkit-border-radius: 10px; + box-shadow: 0px 0px 8px rgba(140,70,0,0.5) ; +} +#credits tr td img{ + float: left; + margin-top: 20px; + margin-bottom: 20px; +} +#credits tr td a{ + font-size: 80%; +} +#credits tr td h3{ + text-align:center; +} + +#saveImageContent{ + width: 100%; + height: 100%; + box-sizing: border-box; + padding-bottom: 30px; +} +#saveImageContent img{ + max-width: 100%; + max-height: 100%; +} diff --git a/resources/library/applications/GraphMe.wgt/Style/Widget.css b/resources/library/applications/GraphMe.wgt/Style/Widget.css new file mode 100644 index 0000000..ae12035 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/Style/Widget.css @@ -0,0 +1,659 @@ +body{ + background-color: transparent; + font-family: Sans-Serif; +} +table tr td{ + padding: 0px; +} + +/* Widget background */ +html, body{ + height: 100%; + margin: 0px; +} + +#background{ + width: 100%; + height: 100%; + border-spacing: 0; + border-collapse: collapse; +} +.background-border-x{ + height: 14px; + padding: 0px; + background-color: "black"; +} +.background-border-y{ + width: 14px; + padding: 0px; + background-color: "black"; +} +#background-top-left{ + background-image: url('../Images/darkblue/top-left.png'); + background-size: 100% 100%; +} +#background-top{ + background-image: url('../Images/darkblue/top.png'); + background-size: 100% 100%; +} +#background-top-right{ + background-image: url('../Images/darkblue/top-right.png'); + background-size: 100% 100%; +} +#background-bottom-left{ + background-image: url('../Images/darkblue/bottom-left.png'); + background-size: 100% 100%; +} +#background-bottom{ + background-image: url('../Images/darkblue/bottom.png'); + background-size: 100% 100%; +} +#background-bottom-right{ + background-image: url('../Images/darkblue/bottom-right.png'); + background-size: 100% 100%; +} +#background-left{ + background-image: url('../Images/darkblue/left.png'); + background-size: 100% 100%; +} +#background-right{ + background-image: url('../Images/darkblue/right.png'); + background-size: 100% 100%; +} +#background-center{ + background-image: url('../Images/darkblue/center.png'); + background-size: 100% 100%; + height: 100%; + padding-top: 30px; + position: relative; +} + +/* Widget center */ +#widgetCenter{ + height: 100%; + position: relative; +} + +/* Zone d'affichage des fonctions */ +#eventAffichage{ + height: 100%; + position: relative; +} +#eventAffichage canvas{ + display: block; +} +#affichage{ + height: 100%; + box-sizing: border-box; + overflow: hidden; + border: 1px solid rgba(255,255,255,0.5); + border-radius: 5px; + -webkit-border-radius: 5px; +} +#affichageOutils{ + position: absolute; + top: 0px; + box-sizing: border-box; + height: 100%; + width: 100%; +} + +#divInputRapide{ + display: none; + position: absolute; + top: 11px; + left: 108px; + padding: 3px; + color: white; + text-align: center; + border: 1px solid rgba(255,255,255,0.2); + border-radius: 5px; + -webkit-border-radius: 5px; + box-shadow: 0px 0px 2px rgba(0,0,0,0.5); + background-image: url('../Images/gradient3.png'); + background-color: rgba(255,255,255,0.1); + background-size: 100% 100%; + z-index: 2; +} +#inputRapide{ + width: 270px; +} + +#menuFonctions3D{ + position: absolute; + top: 11px; + left: 108px; + padding: 3px; + color: white; + text-align: center; + border: 1px solid rgba(255,255,255,0.2); + border-radius: 5px; + -webkit-border-radius: 5px; + box-shadow: 0px 0px 2px rgba(0,0,0,0.5); + background-image: url('../Images/gradient3.png'); + background-color: rgba(255,255,255,0.1); + background-size: 100% 100%; + z-index: 2; +} +#input3D{ + width: 265px; +} + +/* Messages */ +#divMessages div{ + position: absolute; + background-image: url('../Images/cursor.png'); + background-repeat: no-repeat; + z-index: 4; + pointer-events: none; + min-height: 24px; +} +#divMessages div span{ + position: relative; + left: 19px; + top: 20px; + padding: 2px; + color: white; + font-size: 11px; + text-align: center; + border: 1px solid rgba(255,255,255,0.2); + border-radius: 5px; + -webkit-border-radius: 5px; + box-shadow: 0px 0px 2px rgba(0,0,0,0.5); + text-shadow: 0px 0px 3px rgba(0,165,255,0.7); + background-image: url('../Images/gradient2.png'); + background-color: rgba(0,86,134,0.6); + pointer-events: auto; +} +#divMessages div span a{ + color : rgb(135,210,255); + cursor: pointer; +} +#divMessages div span a:hover{ + color : rgb(110,200,255); + text-decoration: underline; + text-decoration-style: dotted; +} + + +/* Taille standard des boutons*/ +.bouton{ + /*width: 100px;*/ + height: 25px; + font-size: 12px; +} + +/* Boutons qui sont dans la partie gauche et qui ouvrent les différents menus */ +.boutonGauche{ + width: 100%; + height: 32px; + text-align: center; +} + +/* Aperçu couleur 3D*/ +#apercuCouleur3D{ + border: 1px solid rgba(0, 0, 0, 0.7); + border-radius: 4px; + -webkit-border-radius: 4px; +} + +/* Taille des champs contenant seulement 2 ou 3 caractères */ +.smallInput{ + width: 35px; +} +.mediumInput{ + width: 45px; +} + + +/* Boutons qui ouvrent le ColorPicker */ +.boutonCouleur{ + position: relative; + left: 2px; + top: 4px; + width: 15px; + height: 15px; + border: 1px solid rgba(0,0,0,0.5); + border-radius: 5px; + -webkit-border-radius: 5px; + background-color: rgba(0,128,255,0.8); + display: inline-block; + cursor:pointer; + opacity: 0.7; +} +.boutonCouleur:hover{ + box-shadow: 0px 0px 2px rgba(0,128,255,1); + opacity: 1; +} + +/* Texte d'information (plus petit) */ +.texteSecondaire{ + font-size: 11px; + color: rgba(0,0,0,0.5); + margin-left: 10px; +} + +/* Style pour le texte où on peut cliquer dessus */ +.survol{ + cursor: pointer; + color: rgb(0,70,120); +} +.survol:hover{ + color: rgb(0,110,150); + opacity: 0.7; +/* text-shadow: 0px 0px 3px white; */ +} + +/* Texte en gras */ +.gras{ + font-weight: bold; +} + +/* Flèches permettant de deplacer l'affichage */ +.flecheDeplacement{ + color: black; + text-shadow: 0px 0px 20px rgba(255,255,255,1); + opacity: 0; + font-size: 56px; + text-align: center; + cursor: pointer; + z-index: 1; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.flecheDeplacement:hover{ + opacity: 0.4; +} +.flecheDeplacement:active{ + opacity: 0.3; +} +#flecheHaut{ + position: absolute; + top: 15px; + left: 50%; + margin-left: -35px; + width: 70px; + height: 55px; +} +#flecheBas{ + position: absolute; + bottom: 20px; + left: 50%; + margin-left: -35px; + width: 70px; + height: 55px; +} +#flecheGauche{ + position: absolute; + top: 50%; + margin-top: -36px; + left: 15px; + width: 55px; + height: 70px; +} +#flecheDroite{ + position: absolute; + top: 50%; + margin-top: -36px; + right: 15px; + width: 55px; + height: 70px; +} + + +/* Boutons permettant de choisir l'action de la souris dans le menu des outils */ +.choixOutil{ + width: 125px; + height: 40px; + font-size: 14px; + cursor: pointer; +} + + +/* Petits boutons plus et moins dans les options */ +.boutonPlus{ + position: relative; + top: -7px; + left: -5px; + width: 10px; + height: 10px; + font-size: 9px; + text-align: center; + background-color: rgba(0, 140, 255, 0.2); + border: 1px rgba(0,0,0,0.5) solid; + border-radius: 3px; + -webkit-border-radius: 3px; + cursor: pointer; + display: inline-block; +} +.boutonMoins{ + position: relative; + top: 6px; + left: -17px; + width: 10px; + height: 10px; + font-size: 9px; + text-align: center; + background-color: rgba(0, 140, 255, 0.2); + border: 1px rgba(0,0,0,0.5) solid; + border-radius: 3px; + -webkit-border-radius: 3px; + cursor: pointer; + display: inline-block; +} +.boutonPlus:hover{ + border: 1px rgba(0,0,0,0.7) solid; + background-color: rgba(0, 140, 255, 0.5); +} +.boutonMoins:hover{ + border: 1px rgba(0,0,0,0.7) solid; + background-color: rgba(0, 140, 255, 0.5); +} + + + +/* Menu etudes fonctions*/ +#menuEtude p{ + margin-top: 7px; + margin-bottom: 0px; +/* font-weight: bold; */ +} +#menuEtude span{ +/* font-weight : normal; */ +} +/* Tableau du signe dans le menu d'étude de la fonction*/ +#etudeSigne{ +/* border-collapse: collapse; */ + border-spacing: 0px; +} +#etudeSigne td{ + min-width: 25px; + text-align: center; + padding: 0px; +} +#etudeSigne td.premier{ + font-weight: bold; +} +#etudeSigne td.bordure{ + border: 1px solid black; + border-radius: 3px; + -webkit-border-radius: 3px; +} +#etudeSigne td.fondNoir{ + background-color: rgba(0,0,0,0.5); +} + +/* Titres des menus */ +h1{ + font-size: 16px; + font-weight: 600; + text-align: center; + /*font-style: italic;*/ + margin-top: 15px; + margin-bottom: 25px; +} +h2{ + font-size: 14px; + font-weight: normal; + font-style: italic; + margin-top: 30px; +} +h3{ + font-size: 16px; + font-weight: 600; + text-align: left; + /*font-style: italic;*/ + margin-top: 7px; + margin-bottom: 20px; +} +h4{ + font-size: 16px; + font-weight: 600; + text-align: center; + /*font-style: italic;*/ + margin-top: 15px; + margin-bottom: 10px; +} + + +/* Menu Mise à Jour */ +#mAj{ + text-align: center; + font-size: 14px; +} +#mAj h1{ + font-size: 22px; + margin-top: 5px; + margin-bottom: 15px; +} +#mAj span object{ + position: relative; + bottom: 4px; + width: 150px; + height: 27px; + overflow: hidden; +} +#mAj input{ + min-height: 27px; +} + +.boutonSauvegarde{ + width: 100px; + height: 32px; +} +#cacheCookies{ + position: absolute; + top: 150px; + left: 10px; + width: 93%; + height: 150px; + background-color: rgba(255,255,255,0.7); + border: 1px rgba(255,255,255,0.8) solid; + border-radius: 3px; + -webkit-border-radius: 3px; + text-align: center; + display: none; +} +#cacheMaJ{ + position: absolute; + padding-top: 20px; + padding-bottom: 10px; + top: 250px; + left: 14px; + width: 93%; + height: 25px; + background-color: rgba(255,255,255,0.8); + border: 1px rgba(255,255,255,0.8) solid; + border-radius: 3px; + -webkit-border-radius: 3px; + text-align: center; + font-weight: bold; + display: none; +} + +/* Menu clique droite sur le graphique */ +#ctxMenu{ + position: absolute; + border: 1px solid black; + border-radius: 5px; + background-color: rgba(255,255,255,0.8); + box-shadow: 0px 0px 5px rgba(0,64,126,0.5); + font-size: 12px; + padding: 2px; + z-index: 2; + display: none; +} +#ctxMenu input.bouton{ + width: 140px; + height: 25px; +} +#ctxMenu h1{ + font-size: 14px; + text-align: center; + text-decoration: underline; + text-shadow: 0px 0px 4px rgba(0,100,200,0.7); + margin: 3px; +} +#ctxMenu div.fermer{ + position: absolute; + right: 0px; + top: 0px; + width: 10px; + height: 10px; + font-size: 10px; + cursor: pointer; + opacity: 0.7; +} +#ctxMenu div.fermer:hover{ + text-shadow: 0px 0px 2px rgba(0,128,255,1); + opacity: 1; +} +.miniCouleur{ + display: inline-block; + width: 10px; + height: 10px; + border: 1px solid rgba(0,0,0,0.5); + border-radius: 3px; + background-color: rgba(0,128,255,0.8); + cursor: pointer; + opacity: 0.7; +} +.miniCouleur:hover{ + box-shadow: 0px 0px 2px rgba(0,128,255,1); + opacity: 1; +} + +/* Editeur de fonctions dans le menu + */ +#functionMenuRight{ + position: absolute; + right: 15px; + width: 45%; + box-sizing: border-box; +} +#functionMenuLeft{ + max-width: 50%; +/* min-height: 400px; */ + box-sizing: border-box; +} +#fonctionsSupp{ + width: 100%; + min-height: 305px; +/* height: 245px; */ +/* border: 1px solid blue; */ + overflow: auto; +} +.spanFonction{ +/* width: 320px; */ + border: 1px solid rgba(0,0,0,0.3); + border-radius: 5px; + background-color: rgba(255,255,255,0.2); + background-image: url('../Images/gradient2.png'); + background-position: 0px -2px; + box-shadow: 0px 0px 4px rgba(0,64,126,0.2); + padding: 2px; + margin: 4px; + font-weight: bold; + text-align: center; + overflow: hidden; + cursor: pointer; +} +.spanFonction:hover{ + background-color: rgba(164,228,255,0.2); + box-shadow: 0px 0px 2px rgba(0,150,255,0.6); +} +.spanFonctionSelect{ + background-color: rgba(118,214,255,0.4); + border-color: rgba(0,63,126,0.3); +} +.spanFonctionSelect:hover{ + background-color: rgba(118,214,255,0.6); +} +#editeurFonction{ +/* position: absolute; */ +/* right: 15px; */ +/* top: 45px; */ + min-width: 300px; +/* height: 75%; */ + border: 1px solid rgba(255,255,255,0.7); +/* border-top: 1px solid rgba(255,255,255,0.3); */ + border-radius: 5px; + background-color: rgba(255,255,255,0.2); + background-image: url('../Images/gradient2.png'); + background-size: 100% 100%; + box-shadow: 0px 0px 4px rgba(0,64,126,0.2); + font-size: 12px; + padding: 2px; +} +#editeurApercu{ + position: relative; + display : block; + margin : auto; + width: 100px; + height : 80px; + border: 1px solid white; + border-radius: 3px; + background-color: rgba(255,255,255,0.8); + box-shadow: 0px 0px 2px rgba(0,64,126,0.5); + font-size: 12px; + padding: 2px; +} +.editeurOnglets{ + position: relative; + bottom: 3px; + width: 100%; + text-align: center; +} +.editeurOnglets span{ + display: inline-block; + min-width: 70px; + width: 40%; + padding: 5px; + margin: 0px 2px; + text-align: center; + font-weight: normal; + background-color: rgba(255, 255, 255, 0.7); + background-image: url('../Images/gradient3.png'); + border: 1px solid rgba(255, 255, 255, 0.9); + border-top: 1px solid white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + box-shadow: 0px 0px 3px rgba(0,0,0,0.5); + opacity: 0.5; + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.editeurOnglets span.ongletActuel{ + opacity: 0.8; + font-weight: bold; +} +.editeurOnglets span:hover{ + opacity: 1; + box-shadow:0px 0px 3px rgba(0,0,0,0.5), 0px 0px 7px rgba(255,255,255,1); +} +.editeurOnglets span:active{ + opacity: 0.7; + font-weight: bold; + box-shadow:0px 0px 3px rgba(0,0,0,0.5), 0px 0px 7px rgba(255,255,255,0.5); +} + +#divSuppOutil div{ + position: absolute; + width: 10px; + height: 10px; + font-size: 10px; + cursor: pointer; + opacity: 1; + z-index: 1; +} +#divSuppOutil div:hover{ + color: rgb(200,0,0); +} diff --git a/resources/library/applications/GraphMe.wgt/config.xml b/resources/library/applications/GraphMe.wgt/config.xml new file mode 100755 index 0000000..dcac2d1 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/config.xml @@ -0,0 +1,10 @@ + + + Mathematical function plotter + + diff --git a/resources/library/applications/GraphMe.wgt/icon.png b/resources/library/applications/GraphMe.wgt/icon.png new file mode 100644 index 0000000..57e41ab Binary files /dev/null and b/resources/library/applications/GraphMe.wgt/icon.png differ diff --git a/resources/library/applications/GraphMe.wgt/version.html b/resources/library/applications/GraphMe.wgt/version.html new file mode 100644 index 0000000..1f113fd --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/version.html @@ -0,0 +1,11 @@ + + + + + + GraphMe - Version + + + 2.1.0 (2018-06-04) + + diff --git a/resources/library/applications/GraphMe.wgt/version.txt b/resources/library/applications/GraphMe.wgt/version.txt new file mode 100644 index 0000000..1798409 --- /dev/null +++ b/resources/library/applications/GraphMe.wgt/version.txt @@ -0,0 +1,294 @@ + + ██████ ███ ███ + ██ ██████ █████ ██████ ██ ██ ████ ████ ███████ + ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ + ██ ███ ███████ ███████ ██████ ███████ ██ ██ ██ █████ + ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ + ██████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ + + +---- 2.1 ---- + +Général: + - Résolution de bugs avec l'historique des fonctions + - Reprogrammation de la liste des fonctions + - Gestion des erreurs lors de la restauration de l'état sauvegardé + - Sauvegarde du mode d'affichage en cours, 3D ou 2D + - Sauvegarde de l'état de la liste des fonctions + - Sauvegarde de l'outil sélectionné + - Icône du widget amélioré pour OpenBoard + +Interface: + - Amélioration de l'interface pour le changelog et l'aide + - Masquage des boutons de l'affichage en plein à écran avec OpenBoard + - Amélioration de l'affichage des fonctions dans l'historique + - Message d'info au chargement du widget en cas de fonctions restaurées + - Thème bleu foncé avec les coins carrés + +Outils: + - Correction des outils décalés par rapport à la souris + + +---- 2.0.x ---- + + - (2.0.2) Amélioration de la sauvegarde du graphique en image: + affichage de l'image générée dans un menu + - (2.0.1) Cacher les nouveaux boutons de zoom en mode affichage 3D + - Bug: Impossible de changer de thème avec OpenBoard + - Bug: Les fonctions d'exemple ne fonctionnent pas si un autre type + que cartésien est sélectionné dans l'interface des fonctions + + +---- 2.0 ---- + +Général: + - Nouvelle interface adaptive selon la taille de la fenêtre + - Bug: Passer de 3D à 2D essaie de dessiner la fonction 3D en 2D + - Mettre en évidence l'outil sélectionné + - Boutons de zoom + - Historique des dernières fonctions pour tous les types de fonction + - Réinitialisation des inputs quand la page est actualisée + - Sauvegarde de l'état des inputs et de l'historique + + +---- 1.6 ---- + +Fonctions: + - Fonctions implicites (Par exemple un cercle: y^2 + x^2 = 9) + - Fonctions polaires (Par exemple une spirale: r(t) = t) + - Fonctions paramétriques (Par exemple un cercle: x(t) = cos(t) et y(t) = sin(t)) + +Interface: + - Traduction anglais/français selon la langue du navigateur + - Police d'écriture sans-serif + - Aperçu des fonctions implicites, polaires et paramétriques + - Dans la liste des fonctions, afficher la fonction ouverte dans l'éditeur + - Bug: L'éditeur permet d'éditer une fonction alors que la liste est vide + - Bug: Le choix du style de ligne par défaut ne fonctionne pas + - Bug: Bouton non cliquable près d'un message d'aide + +Outils: + - Outil point et tangente pour les fonctions polaires et paramétriques. + + +---- 1.5.x ---- + + - (1.5.1) Sauvegarde du graphique 3D + - Amélioration du menu des mises à jour, prise en compte de tous les serveur + - Menu pour afficher les options sauvegardées dans les cookies + - Correction des problèmes de l'échelle et de la grille du graphique + - Bug: L'outil déplacement est stoppé quand on passe sur une flèche de déplacement + + +---- 1.5 ---- + +Fonction: + - Pouvoir changer le style de chaque fonction (ligne, points, traits) + - Bug: l'outil déplacement est toujours actif quand on sort du graphique + - Bug: le bouton dupliquer dans l'éditeur fonctionne mal + - Condition initiale de la primitive à coté de F(x) dans l'éditeur + (utilisation de disabled="disabled" lorsque F(x) n'est pas coché) + - Bug: impossible de modifier la fonction principale avec l'éditeur de fonctions + - Nouveau menu pour modifier les valeurs par défaut des fonctions + +Affichage 3D: + - La partie de la fonction éloignée est maintenant dessinée après la partie proche + - La grille est plus visible + +Outils: + - Suppression du menu des outils + - Outils pour chaque fonction dans le menu "fonctions" + +Interface: + - Nouvelle interface. Onglets en haut du widget. Boutons "animés" + - Modifier l'aide pour qu'elle corresponde à la nouvelle interface + - Suppression de la sélection du texte sur les boutons et les onglets + - Joystick de déplacement en haut à gauche de l'affichage + - Choix des outils à la souris plus facile (ajout de boutons à gauche de l'affichage) + - Zone de texte au millieu de l'écran pour écrire facilement la première fonction + Focus automatique sur la zone + - Bulles d'aide + + +---- 1.4.x ---- + + - (1.4.3) ColorPicker: Récupérer la bonne couleur lors de l'ouverture + - ColorPicker: Pouvoir changer la couleur à partir des inputs + - ColorPicker: Choisir la couleur avec la roulette de la souris + - (1.4.2) Amélioration de la qualité et de la rapidité des études de fonction + - Pouvoir choisir la fonction à étudier + - Bug: impossible de modifier les fonctions depuis l'éditeur + - (1.4.1) Choisir la taille et la couleur de fond du graphique sauvegardé + - L'utilisation de ^ dans les fonctions n'est possible qu'avec un chiffre. + Il faudrait pouvoir écrire 2^x ou 4^(x+2) + - Bug: fermer le menu clique droit ajoute un point sur le graphique + + +---- 1.4 ---- + +Fonctions: + - Affichages canvas, svg et uniboard complétement refaits + - Grande amélioration des perfomances d'affichage 2D et 3D en définissant + les fonctions avec "new Function()" + - Amélioration des fonctions supplémentaires + - Suppression de la méthode d'affichage xpm + - Style de la fonction (continu, points, traits) + - Bug: la fonction 3D "sin(x)+cos(y)" afficher l'erreur "y is not defined"; + - Couleur aléatoire pour les nouvelles fonctions supplémentaires + +Interface: + - Menu clique droite sur le graphique + - Fenêtre d'édition des fonctions supplémentaires + - Désactiver le bouton de mise à jour automatique lorsqu'on utilise la version online du widget + (utiliser disabled="disabled") + +Outils: + - Outils pour le nouvel affichage + - Outil point refait avec canvas + - Déplacer les informations des outils (point et tangente) à coté de la souris + - Bug: le déplacement de l'affichage 3D à la souris va dans le mauvais sens + - Cliquer permet de conserver le point ou la tangente actuelle + - Tous les outils fonctionnent en plein écran + - Outils sur plusieurs fonctions + +ColorPicker: + - Bug: mauvaise couleur lorsque la teinte est à 240 ou 120 + +Général: + - Abandon du format xhtml pour passer à l'html5 + - Sauvegardes pour les nouvelles options + - Amélioration des messages d'erreur + - Amélioration du système de mise à jour + + +---- 1.3.x ---- + + - (1.3.4) ColorPicker: Slide barre permettant de changer la transparence + - ColorPicker: Reprogrammer en canvas + - (1.3.3) Sauvegarde du graphique + - Remplacer les ^ par pow() pour pouvoir écrire des fonctions plus facilement, + comme x^2 ou (4-x)^5 + - La couleur des fonctions supplémentaires n'est pas toujours juste + - (1.3.2) Modification de la taille des boutons + - (1.3.1) Mise à jour automatique + + +---- 1.3 ---- + +Fonctions: + - Amélioration des études de fonctions + - Pouvoir dessiner la dérivée seconde + - Corriger la tangente lorsque la zone d'affichage est modifiée + - Corriger l'échelle lors du déplacement de la fonction + - Ajout des fonctions sec, csc, arcsec, arccsc, sinh, cosh, tanh, coth, sech, csch + ainsi que arcsinh, arccosh, arctanh et arccoth + - Supprimer les traits où la fonction n'est pas définie + - Corriger l'outil point sur certaines fonctions (root(x,4)) + (problème lié à la fonction non-définie) + - Aire sous la fonction + - Corrigé bug canvas lors de l'agrandissement + - Les outils de la souris ne fonctionnent pas au survol des flèches de déplacement + +Interface: + - Sauvegarder les options + - Explication de la sauvegarde du graphique dans l'aide + - Guide d'utilisation + - Corrections dans l'aide + +ColorPicker: + - Aperçu de la couleur + +Autres: + - Modification de la précision par défaut + + +---- 1.2 ---- + +Fonctions: + - Dessiner plusieurs fonctions + - Historique + - Bug: certaines fonctions ne s'affichent pas correctement + exemples: pow(1-x*x*x, 1/3) , pow(x*x*x-3*x, 1/3) , pow(x*x*x-3*x+2, 1/3) + - Corriger l'affichage de la dérivée lorsqu'on change la précision d'affichage + - Corriger l'affichage des coordonnées + - Gestion des erreurs avec try and catch + - Outil tangente + +Interface: + - Défilement des menus + - Tests d'affichage + - Bouton de maximisation du widget + - Mise à Jour + + +Affichage 3D: + - Zoom + + + +------------------------------- + Idées d'améliorations futures +------------------------------- + +Fonctions: + - Ajouter les fonctions arcsech et arccsch + - Détecter et mettre en évidence les AV + - Progression pendant le calcul des fonctions 3D + - Progression pendant l'étude de fonction + - Écrire le nom de la fonction sur le graphique + - Récupérer la fonction à partir de l'URL, pour pouvoir + envoyer le lien d'une fonction à qqn + - Bug: la puissance de la fonction sin(x)*cos(x)^2 n'est pas remplacée juste + - Sauvegarder l'historique + - Afficher le type de fonction dans l'éditeur + - Ne pas choisir aléatoirement la même couleur qu'une couleur déjà utilisée + - Amélioration du dessin des fonctions implicites + - Aperçu des fonctions d'exemple avant de les ajouter au graphique + +Fonction 3D: + - Amélioration du choix de la couleur (interpolation entre 2 couleurs) + - Affichage 3D avec WebGL + +Outils: + - Outils point et tangente pour les fonctions implicites + - Personnalisation de la sauvegarde du graphique + - Magnétisme de l'outil point + - Calculer le volume du corps de rotation de la fonction + - Outil affichant le cercle tangent à la courbe (selon la seconde dérivée) + - Utiliser le point de la fonction le plus proche de la position de la souris + +Affichage: + - Style de grille: quadrillée, polaire, aucune + - Mode "trigonomètrique" pour que l'échelle soit affichée sur des multiples de PI + - Mode d'affichage ASCII + +Affichage uniboard: + - Finir de coder + - Choisir où placer le graphique + - Uniboard 3D + +Interface: + - Option pour redimensionner le widget dans OpenBoard / Sankoré + - Bulles d'aide + - Scroll dans uniboard + - Menu clique droit dans uniboard + - Le bouton actualiser dans le menu étude n'actualise pas forcément la bonne fonction + - Icone du bouton sauvegarder + - Cacher le joystick et les boutons des outils en mode plein écran après 5s + +ColorPicker: + - Dessiner avec svg lorsqu'on choisit svg dans les options + - Vérifier les valeurs entrées dans les inputs + - Annuler le choix de la couleur ne revient pas au menu précédent + +Général: + - Récupérer le numéro de la version en ligne pour comparer les versions + - Multithreading +!- Rendu des dessins progressivement de plus en plus précis + - Sauvegarder les options automatiquement, bouton reset dans le menu GraphMe + +Script portable: + - Créer un script pour intégrer le widget à n'importe quelle page web + - Personnalisation de la taille du widget portable + - Déplacement du widget comme une fenêtre + diff --git a/resources/library/applications/Horloge.wgt/config.xml b/resources/library/applications/Horloge.wgt/config.xml new file mode 100644 index 0000000..5c05575 --- /dev/null +++ b/resources/library/applications/Horloge.wgt/config.xml @@ -0,0 +1,13 @@ + + + Horloge + fbocquet@laposte.net + + + diff --git a/resources/library/applications/Horloge.wgt/icon.png b/resources/library/applications/Horloge.wgt/icon.png new file mode 100644 index 0000000..1b069c3 Binary files /dev/null and b/resources/library/applications/Horloge.wgt/icon.png differ diff --git a/resources/library/applications/Horloge.wgt/index.html b/resources/library/applications/Horloge.wgt/index.html new file mode 100644 index 0000000..9e809d4 --- /dev/null +++ b/resources/library/applications/Horloge.wgt/index.html @@ -0,0 +1,60 @@ + + + + Horloge + + + + + + + + + + + +
    +
    +
    + + + Horloge + +
    + + + diff --git a/resources/library/applications/Horloge.wgt/station-clock.js b/resources/library/applications/Horloge.wgt/station-clock.js new file mode 100644 index 0000000..b555005 --- /dev/null +++ b/resources/library/applications/Horloge.wgt/station-clock.js @@ -0,0 +1,488 @@ +/*! + * station-clock.js + * + * Copyright (c) 2010 Ruediger Appel + * ludi at mac dot com + * + * Date: 2016-02-16 + * Version: 1.0.1 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Known Issues: + * + * Shadows for some second hands is not on one layer + * + * Thanks to Paul Schröfl for the Wiener Würfeluhr + */ + +// clock body (Uhrgehäuse) +StationClock.NoBody = 0; +StationClock.SmallWhiteBody = 1; +StationClock.RoundBody = 2; +StationClock.RoundGreenBody = 3; +StationClock.SquareBody = 4; +StationClock.ViennaBody = 5; + +// stroke dial (Zifferblatt) +StationClock.NoDial = 0; +StationClock.GermanHourStrokeDial = 1; +StationClock.GermanStrokeDial = 2; +StationClock.AustriaStrokeDial = 3; +StationClock.SwissStrokeDial = 4; +StationClock.ViennaStrokeDial = 5; + +//clock hour hand (Stundenzeiger) +StationClock.PointedHourHand = 1; +StationClock.BarHourHand = 2; +StationClock.SwissHourHand = 3; +StationClock.ViennaHourHand = 4; + +//clock minute hand (Minutenzeiger) +StationClock.PointedMinuteHand = 1; +StationClock.BarMinuteHand = 2; +StationClock.SwissMinuteHand = 3; +StationClock.ViennaMinuteHand = 4; + +//clock second hand (Sekundenzeiger) +StationClock.NoSecondHand = 0; +StationClock.BarSecondHand = 1; +StationClock.HoleShapedSecondHand = 2; +StationClock.NewHoleShapedSecondHand = 3; +StationClock.SwissSecondHand = 4; + +// clock boss (Zeigerabdeckung) +StationClock.NoBoss = 0; +StationClock.BlackBoss = 1; +StationClock.RedBoss = 2; +StationClock.ViennaBoss = 3; + +// minute hand behavoir +StationClock.CreepingMinuteHand = 0; +StationClock.BouncingMinuteHand = 1; +StationClock.ElasticBouncingMinuteHand = 2; + +// second hand behavoir +StationClock.CreepingSecondHand = 0; +StationClock.BouncingSecondHand = 1; +StationClock.ElasticBouncingSecondHand = 2; +StationClock.OverhastySecondHand = 3; + + +function StationClock(clockId) { + this.clockId = clockId; + this.radius = 0; + + // hour offset + this.hourOffset = 0; + + // clock body + this.body = StationClock.RoundBody; + this.bodyShadowColor = "rgba(0,0,0,0.5)"; + this.bodyShadowOffsetX = 0.03; + this.bodyShadowOffsetY = 0.03; + this.bodyShadowBlur = 0.06; + + // body dial + this.dial = StationClock.GermanStrokeDial; + this.dialColor = 'rgb(60,60,60)'; + + // clock hands + this.hourHand = StationClock.PointedHourHand; + this.minuteHand = StationClock.PointedMinuteHand; + this.secondHand = StationClock.HoleShapedSecondHand; + this.handShadowColor = 'rgba(0,0,0,0.3)'; + this.handShadowOffsetX = 0.03; + this.handShadowOffsetY = 0.03; + this.handShadowBlur = 0.04; + + // clock colors + this.hourHandColor = 'rgb(0,0,0)'; + this.minuteHandColor = 'rgb(0,0,0)'; + this.secondHandColor = 'rgb(200,0,0)'; + + // clock boss + this.boss = StationClock.NoBoss; + this.bossShadowColor = "rgba(0,0,0,0.2)"; + this.bossShadowOffsetX = 0.02; + this.bossShadowOffsetY = 0.02; + this.bossShadowBlur = 0.03; + + // hand behavoir + this.minuteHandBehavoir = StationClock.CreepingMinuteHand; + this.secondHandBehavoir = StationClock.OverhastySecondHand; + + // hand animation + this.minuteHandAnimationStep = 0; + this.secondHandAnimationStep = 0; + this.lastMinute = 0; + this.lastSecond = 0; +}; + +StationClock.prototype.draw = function() { + var clock = document.getElementById(this.clockId); + if (clock) { + var context = clock.getContext('2d'); + if (context) { + this.radius = 0.75 * (Math.min(clock.width, clock.height) / 2); + + // clear canvas and set new origin + context.clearRect(0, 0, clock.width, clock.height); + context.save(); + context.translate(clock.width / 2, clock.height / 2); + + // draw body + if (this.body != StationClock.NoStrokeBody) { + context.save(); + switch (this.body) { + case StationClock.SmallWhiteBody: + this.fillCircle(context, "rgb(255,255,255)", 0, 0, 1); + break; + case StationClock.RoundBody: + this.fillCircle(context, "rgb(255,255,255)", 0, 0, 1.1); + context.save(); + this.setShadow(context, this.bodyShadowColor, this.bodyShadowOffsetX, this.bodyShadowOffsetY, this.bodyShadowBlur); + this.strokeCircle(context, "rgb(0,0,0)", 0, 0, 1.1, 0.07); + context.restore(); + break; + case StationClock.RoundGreenBody: + this.fillCircle(context, "rgb(235,236,212)", 0, 0, 1.1); + context.save(); + this.setShadow(context, this.bodyShadowColor, this.bodyShadowOffsetX, this.bodyShadowOffsetY, this.bodyShadowBlur); + this.strokeCircle(context, "rgb(180,180,180)", 0, 0, 1.1, 0.2); + context.restore(); + this.strokeCircle(context, "rgb(29,84,31)", 0, 0, 1.15, 0.1); + context.save(); + this.setShadow(context, "rgba(235,236,212,100)", -0.02, -0.02, 0.09); + this.strokeCircle(context, 'rgb(76,128,110)', 0, 0, 1.1, 0.08); + context.restore(); + break; + case StationClock.SquareBody: + context.save(); + this.setShadow(context, this.bodyShadowColor, this.bodyShadowOffsetX, this.bodyShadowOffsetY, this.bodyShadowBlur); + this.fillSquare(context, 'rgb(237,235,226)', 0, 0, 2.4); + this.strokeSquare(context, 'rgb(38,106,186)', 0, 0, 2.32, 0.16); + context.restore(); + context.save(); + this.setShadow(context, this.bodyShadowColor, this.bodyShadowOffsetX, this.bodyShadowOffsetY, this.bodyShadowBlur); + this.strokeSquare(context, 'rgb(42,119,208)', 0, 0, 2.24, 0.08); + context.restore(); + break; + case StationClock.ViennaBody: + context.save(); + this.fillSymmetricPolygon(context, 'rgb(156,156,156)', [[-1.2,1.2],[-1.2,-1.2]],0.1); + this.fillPolygon(context, 'rgb(156,156,156)', 0,1.2 , 1.2,1.2 , 1.2,0); + this.fillCircle(context, 'rgb(255,255,255)', 0, 0, 1.05, 0.08); + this.strokeCircle(context, 'rgb(0,0,0)', 0, 0, 1.05, 0.01); + this.strokeCircle(context, 'rgb(100,100,100)', 0, 0, 1.1, 0.01); + this.fillPolygon(context, 'rgb(100,100,100)', 0.45,1.2 , 1.2,1.2 , 1.2,0.45); + this.fillPolygon(context, 'rgb(170,170,170)', 0.45,-1.2 , 1.2,-1.2 , 1.2,-0.45); + this.fillPolygon(context, 'rgb(120,120,120)', -0.45,1.2 , -1.2,1.2 , -1.2,0.45); + this.fillPolygon(context, 'rgb(200,200,200)', -0.45,-1.2 , -1.2,-1.2 , -1.2,-0.45); + this.strokeSymmetricPolygon(context, 'rgb(156,156,156)', [[-1.2,1.2],[-1.2,-1.2]],0.01); + this.fillPolygon(context, 'rgb(255,0,0)', 0.05,-0.6 , 0.15,-0.6 , 0.15,-0.45 , 0.05,-0.45); + this.fillPolygon(context, 'rgb(255,0,0)', -0.05,-0.6 , -0.15,-0.6 , -0.15,-0.45 , -0.05,-0.45); + this.fillPolygon(context, 'rgb(255,0,0)', 0.05,-0.35 , 0.15,-0.35 , 0.15,-0.30 , 0.10,-0.20 , 0.05,-0.20); + this.fillPolygon(context, 'rgb(255,0,0)', -0.05,-0.35 , -0.15,-0.35 , -0.15,-0.30 , -0.10,-0.20 , -0.05,-0.20); + context.restore(); + break; + } + context.restore(); + } + + // draw dial + for (var i = 0; i < 60; i++) { + context.save(); + context.rotate(i * Math.PI / 30); + switch (this.dial) { + case StationClock.SwissStrokeDial: + if ((i % 5) == 0) { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.75, 0.07); + } else { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.92, 0.026); + } + break; + case StationClock.AustriaStrokeDial: + if ((i % 5) == 0) { + this.fillPolygon(context, this.dialColor, -0.04, -1.0, 0.04, -1.0, 0.03, -0.78, -0.03, -0.78); + } else { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.94, 0.02); + } + break; + case StationClock.GermanStrokeDial: + if ((i % 15) == 0) { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.70, 0.08); + } else if ((i % 5) == 0) { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.76, 0.08); + } else { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.92, 0.036); + } + break; + case StationClock.GermanHourStrokeDial: + if ((i % 15) == 0) { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.70, 0.10); + } else if ((i % 5) == 0) { + this.strokeLine(context, this.dialColor, 0.0, -1.0, 0.0, -0.74, 0.08); + } + break; + case StationClock.ViennaStrokeDial: + if ((i % 15) == 0) { + this.fillPolygon(context, this.dialColor, 0.7,-0.1, 0.6,0, 0.7,0.1, 1,0.03, 1,-0.03); + } else if ((i % 5) == 0) { + this.fillPolygon(context, this.dialColor, 0.85,-0.06, 0.78,0, 0.85,0.06, 1,0.03, 1,-0.03); + } + this.fillCircle(context, this.dialColor, 0.0, -1.0, 0.03); + break; + } + context.restore(); + } + + // get current time + var time = new Date(); + var millis = time.getMilliseconds() / 1000.0; + var seconds = time.getSeconds(); + var minutes = time.getMinutes(); + var hours = time.getHours() + this.hourOffset; + + // draw hour hand + context.save(); + context.rotate(hours * Math.PI / 6 + minutes * Math.PI / 360); + this.setShadow(context, this.handShadowColor, this.handShadowOffsetX, this.handShadowOffsetY, this.handShadowBlur); + switch (this.hourHand) { + case StationClock.BarHourHand: + this.fillPolygon(context, this.hourHandColor, -0.05, -0.6, 0.05, -0.6, 0.05, 0.15, -0.05, 0.15); + break; + case StationClock.PointedHourHand: + this.fillPolygon(context, this.hourHandColor, 0.0, -0.6, 0.065, -0.53, 0.065, 0.19, -0.065, 0.19, -0.065, -0.53); + break; + case StationClock.SwissHourHand: + this.fillPolygon(context, this.hourHandColor, -0.05, -0.6, 0.05, -0.6, 0.065, 0.26, -0.065, 0.26); + break; + case StationClock.ViennaHourHand: + this.fillSymmetricPolygon(context, this.hourHandColor, [[-0.02,-0.72],[-0.08,-0.56],[-0.15,-0.45],[-0.06,-0.30],[-0.03,0],[-0.1,0.2],[-0.05,0.23],[-0.03,0.2]]); + } + context.restore(); + + // draw minute hand + context.save(); + switch (this.minuteHandBehavoir) { + case StationClock.CreepingMinuteHand: + context.rotate((minutes + seconds / 60) * Math.PI / 30); + break; + case StationClock.BouncingMinuteHand: + context.rotate(minutes * Math.PI / 30); + break; + case StationClock.ElasticBouncingMinuteHand: + if (this.lastMinute != minutes) { + this.minuteHandAnimationStep = 3; + this.lastMinute = minutes; + } + context.rotate((minutes + this.getAnimationOffset(this.minuteHandAnimationStep)) * Math.PI / 30); + this.minuteHandAnimationStep--; + break; + } + this.setShadow(context, this.handShadowColor, this.handShadowOffsetX, this.handShadowOffsetY, this.handShadowBlur); + switch (this.minuteHand) { + case StationClock.BarMinuteHand: + this.fillPolygon(context, this.minuteHandColor, -0.05, -0.9, 0.035, -0.9, 0.035, 0.23, -0.05, 0.23); + break; + case StationClock.PointedMinuteHand: + this.fillPolygon(context, this.minuteHandColor, 0.0, -0.93, 0.045, -0.885, 0.045, 0.23, -0.045, 0.23, -0.045, -0.885); + break; + case StationClock.SwissMinuteHand: + this.fillPolygon(context, this.minuteHandColor, -0.035, -0.93, 0.035, -0.93, 0.05, 0.25, -0.05, 0.25); + break; + case StationClock.ViennaMinuteHand: + this.fillSymmetricPolygon(context, this.minuteHandColor, [[-0.02,-0.98],[-0.09,-0.7],[-0.03,0],[-0.05,0.2],[-0.01,0.4]]); + } + context.restore(); + + // draw second hand + context.save(); + switch (this.secondHandBehavoir) { + case StationClock.OverhastySecondHand: + context.rotate(Math.min((seconds + millis) * (60.0 / 58.5), 60.0) * Math.PI / 30); + break; + case StationClock.CreepingSecondHand: + context.rotate((seconds + millis) * Math.PI / 30); + break; + case StationClock.BouncingSecondHand: + context.rotate(seconds * Math.PI / 30); + break; + case StationClock.ElasticBouncingSecondHand: + if (this.lastSecond != seconds) { + this.secondHandAnimationStep = 3; + this.lastSecond = seconds; + } + context.rotate((seconds + this.getAnimationOffset(this.secondHandAnimationStep)) * Math.PI / 30); + this.secondHandAnimationStep--; + break; + } + this.setShadow(context, this.handShadowColor, this.handShadowOffsetX, this.handShadowOffsetY, this.handShadowBlur); + switch (this.secondHand) { + case StationClock.BarSecondHand: + this.fillPolygon(context, this.secondHandColor, -0.006, -0.92, 0.006, -0.92, 0.028, 0.23, -0.028, 0.23); + break; + case StationClock.HoleShapedSecondHand: + this.fillPolygon(context, this.secondHandColor, 0.0, -0.9, 0.011, -0.889, 0.01875, -0.6, -0.01875, -0.6, -0.011, -0.889); + this.fillPolygon(context, this.secondHandColor, 0.02, -0.4, 0.025, 0.22, -0.025, 0.22, -0.02, -0.4); + this.strokeCircle(context, this.secondHandColor, 0, -0.5, 0.083, 0.066); + break; + case StationClock.NewHoleShapedSecondHand: + this.fillPolygon(context, this.secondHandColor, 0.0, -0.95, 0.015, -0.935, 0.0187, -0.65, -0.0187, -0.65, -0.015, -0.935); + this.fillPolygon(context, this.secondHandColor, 0.022, -0.45, 0.03, 0.27, -0.03, 0.27, -0.022, -0.45); + this.strokeCircle(context, this.secondHandColor, 0, -0.55, 0.085, 0.07); + break; + case StationClock.SwissSecondHand: + this.strokeLine(context, this.secondHandColor, 0.0, -0.6, 0.0, 0.35, 0.026); + this.fillCircle(context, this.secondHandColor, 0, -0.64, 0.1); + break; + case StationClock.ViennaSecondHand: + this.strokeLine(context, this.secondHandColor, 0.0, -0.6, 0.0, 0.35, 0.026); + this.fillCircle(context, this.secondHandColor, 0, -0.64, 0.1); + break; + } + context.restore(); + + // draw clock boss + if (this.boss != StationClock.NoBoss) { + context.save(); + this.setShadow(context, this.bossShadowColor, this.bossShadowOffsetX, this.bossShadowOffsetY, this.bossShadowBlur); + switch (this.boss) { + case StationClock.BlackBoss: + this.fillCircle(context, 'rgb(0,0,0)', 0, 0, 0.1); + break; + case StationClock.RedBoss: + this.fillCircle(context, 'rgb(220,0,0)', 0, 0, 0.06); + break; + case StationClock.ViennaBoss: + this.fillCircle(context, 'rgb(0,0,0)', 0, 0, 0.07); + break; + } + context.restore(); + } + + context.restore(); + } + } +}; + +StationClock.prototype.getAnimationOffset = function(animationStep) { + switch (animationStep) { + case 3: return 0.2; + case 2: return -0.1; + case 1: return 0.05; + } + return 0; +}; + +StationClock.prototype.setShadow = function(context, color, offsetX, offsetY, blur) { + if (color) { + context.shadowColor = color; + context.shadowOffsetX = this.radius * offsetX; + context.shadowOffsetY = this.radius * offsetY; + context.shadowBlur = this.radius * blur; + } +}; + +StationClock.prototype.fillCircle = function(context, color, x, y, radius) { + if (color) { + context.beginPath(); + context.fillStyle = color; + context.arc(x * this.radius, y * this.radius, radius * this.radius, 0, 2 * Math.PI, true); + context.fill(); + } +}; + +StationClock.prototype.strokeCircle = function(context, color, x, y, radius, lineWidth) { + if (color) { + context.beginPath(); + context.strokeStyle = color; + context.lineWidth = lineWidth * this.radius; + context.arc(x * this.radius, y * this.radius, radius * this.radius, 0, 2 * Math.PI, true); + context.stroke(); + } +}; + +StationClock.prototype.fillSquare = function(context, color, x, y, size) { + if (color) { + context.fillStyle = color; + context.fillRect((x - size / 2) * this.radius, (y -size / 2) * this.radius, size * this.radius, size * this.radius); + } +}; + +StationClock.prototype.strokeSquare = function(context, color, x, y, size, lineWidth) { + if (color) { + context.strokeStyle = color; + context.lineWidth = lineWidth * this.radius; + context.strokeRect((x - size / 2) * this.radius, (y -size / 2) * this.radius, size * this.radius, size * this.radius); + } +}; + +StationClock.prototype.strokeLine = function(context, color, x1, y1, x2, y2, width) { + if (color) { + context.beginPath(); + context.strokeStyle = color; + context.moveTo(x1 * this.radius, y1 * this.radius); + context.lineTo(x2 * this.radius, y2 * this.radius); + context.lineWidth = width * this.radius; + context.stroke(); + } +}; + +StationClock.prototype.fillPolygon = function(context, color, x1, y1, x2, y2, x3, y3, x4, y4, x5, y5) { + if (color) { + context.beginPath(); + context.fillStyle = color; + context.moveTo(x1 * this.radius, y1 * this.radius); + context.lineTo(x2 * this.radius, y2 * this.radius); + context.lineTo(x3 * this.radius, y3 * this.radius); + context.lineTo(x4 * this.radius, y4 * this.radius); + if ((x5 != undefined) && (y5 != undefined)) { + context.lineTo(x5 * this.radius, y5 * this.radius); + } + context.lineTo(x1 * this.radius, y1 * this.radius); + context.fill(); + } +}; + +StationClock.prototype.fillSymmetricPolygon = function(context, color, points) { + context.beginPath(); + context.fillStyle = color; + context.moveTo(points[0][0] * this.radius, points[0][1] * this.radius); + for (var i = 1; i < points.length; i++) { + context.lineTo(points[i][0] * this.radius, points[i][1] * this.radius); + } + for (var i = points.length - 1; i >= 0; i--) { + context.lineTo(0 - points[i][0] * this.radius, points[i][1] * this.radius); + } + context.lineTo(points[0][0] * this.radius, points[0][1] * this.radius); + context.fill(); +}; + +StationClock.prototype.strokeSymmetricPolygon = function(context, color, points, width) { + context.beginPath(); + context.strokeStyle = color; + context.moveTo(points[0][0] * this.radius, points[0][1] * this.radius); + for (var i = 1; i < points.length; i++) { + context.lineTo(points[i][0] * this.radius, points[i][1] * this.radius); + } + for (var i = points.length - 1; i >= 0; i--) { + context.lineTo(0 - points[i][0] * this.radius, points[i][1] * this.radius); + } + context.lineTo(points[0][0] * this.radius, points[0][1] * this.radius); + context.lineWidth = width * this.radius; + context.stroke(); +}; + + diff --git a/resources/library/applications/Html.wgt/config.xml b/resources/library/applications/Html.wgt/config.xml new file mode 100644 index 0000000..a0d4413 --- /dev/null +++ b/resources/library/applications/Html.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Html Editor + Mnemis SA + Simple Html editor + + + diff --git a/resources/library/applications/Html.wgt/icon.png b/resources/library/applications/Html.wgt/icon.png new file mode 100644 index 0000000..9b41e2a Binary files /dev/null and b/resources/library/applications/Html.wgt/icon.png differ diff --git a/resources/library/applications/Html.wgt/images/bts.png b/resources/library/applications/Html.wgt/images/bts.png new file mode 100644 index 0000000..8612f8c Binary files /dev/null and b/resources/library/applications/Html.wgt/images/bts.png differ diff --git a/resources/library/applications/Html.wgt/images/style.css b/resources/library/applications/Html.wgt/images/style.css new file mode 100644 index 0000000..52de70b --- /dev/null +++ b/resources/library/applications/Html.wgt/images/style.css @@ -0,0 +1,26 @@ +body { + font: 13px "Trebuchet MS", Arial, Verdana; + padding-top:0px; + color: gray; +} + +a { + text-decoration:none; + color:#3C769D; +} +h1 a, +p em a { + display:block; + overflow:hidden; + text-indent:-1000px; + position:absolute; + top:0px; left:0px; +} +h1 a { + width:245px; height:85px; + top:28px; +} +p em a { + width:120px; height:28px; + left:30px; +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/index.html b/resources/library/applications/Html.wgt/index.html new file mode 100644 index 0000000..9394fae --- /dev/null +++ b/resources/library/applications/Html.wgt/index.html @@ -0,0 +1,82 @@ + + + + + markItUp! Universal markup editor + + + + + + + + + + + + +
    + + + + + diff --git a/resources/library/applications/Html.wgt/jquery.pack.js b/resources/library/applications/Html.wgt/jquery.pack.js new file mode 100644 index 0000000..74cdfee --- /dev/null +++ b/resources/library/applications/Html.wgt/jquery.pack.js @@ -0,0 +1,11 @@ +/* + * jQuery 1.2.3 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ + * $Rev: 4663 $ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>",""]||!f.1f("<9M")&&[1,"<73>",""]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>",""]||!f.1f("<4v")&&[2,"<1O><1U>",""]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>",""]||!f.1f("<7e")&&[2,"<1O><1U><6V>",""]||E.14.1d&&[1,"1x<1x>",""]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K im[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{})) \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/languages.js b/resources/library/applications/Html.wgt/languages.js new file mode 100644 index 0000000..0e55abe --- /dev/null +++ b/resources/library/applications/Html.wgt/languages.js @@ -0,0 +1,39 @@ +var sankoreLang = { + "en":{ + "enter_title": "Enter your title here...", + "welcome":"Welcome to HTML Editor", + "source":"Source", + "link":"Link", + "preview":"Preview", + "text_to_link":"Your text to link", + "alt_text":"Alternative text" + }, + "ru":{ + "enter_title": "Введите Ваш заголовок ...", + "welcome":"Добро пожаловать в HTML-редактор", + "source":"Источник", + "link":"Ссылка", + "preview":"Предпросмотр", + "text_to_link":"Текст ссылки", + "alt_text":"Альтернативный текст" + }, + "fr":{ + "enter_title": "Entrer un titre ici ...", + "welcome":"Bienvenue sur HTML Editor", + "source":"Source", + "link":"Lien", + "preview":"Aperçu", + "text_to_link":"Votre texte à lier", + "alt_text":"Texte alternatif" + }, + "sk":{ + "enter_title": "Sem napíšte názov...", + "welcome":"Vitajte v HTML editore", + "source":"Zdroj", + "link":"Odkaz", + "preview":"Ukážka", + "text_to_link":"Text odkazu", + "alt_text":"Alternatívny text" + } + +}; diff --git a/resources/library/applications/Html.wgt/markitup/jquery.markitup.js b/resources/library/applications/Html.wgt/markitup/jquery.markitup.js new file mode 100644 index 0000000..52cc385 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/jquery.markitup.js @@ -0,0 +1,583 @@ +// ---------------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// v 1.1.5 +// Dual licensed under the MIT and GPL licenses. +// ---------------------------------------------------------------------------- +// Copyright (C) 2007-2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// ---------------------------------------------------------------------------- +(function($) { + $.fn.markItUp = function(settings, extraSettings) { + var options, ctrlKey, shiftKey, altKey; + ctrlKey = shiftKey = altKey = false; + + options = { id: '', + nameSpace: '', + root: '', + previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes' + previewAutoRefresh: true, + previewPosition: 'after', + previewTemplatePath: '~/templates/preview.html', + previewParserPath: '', + previewParserVar: 'data', + resizeHandle: true, + beforeInsert: '', + afterInsert: '', + onEnter: {}, + onShiftEnter: {}, + onCtrlEnter: {}, + onTab: {}, + markupSet: [ { /* set */ } ] + }; + $.extend(options, settings, extraSettings); + + // compute markItUp! path + if (!options.root) { + $('script').each(function(a, tag) { + miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/); + if (miuScript !== null) { + options.root = miuScript[1]; + } + }); + } + + return this.each(function() { + var $$, textarea, levels, scrollPosition, caretPosition, caretOffset, + clicked, hash, header, footer, previewWindow, template, iFrame, abort; + $$ = $(this); + textarea = this; + levels = []; + abort = false; + scrollPosition = caretPosition = 0; + caretOffset = -1; + + options.previewParserPath = localize(options.previewParserPath); + options.previewTemplatePath = localize(options.previewTemplatePath); + + // apply the computed path to ~/ + function localize(data, inText) { + if (inText) { + return data.replace(/("|')~\//g, "$1"+options.root); + } + return data.replace(/^~\//, options.root); + } + + // init and build editor + function init() { + id = ''; nameSpace = ''; + if (options.id) { + id = 'id="'+options.id+'"'; + } else if ($$.attr("id")) { + id = 'id="markItUp'+($$.attr("id").substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"'; + + } + if (options.nameSpace) { + nameSpace = 'class="'+options.nameSpace+'"'; + } + $$.wrap('
    '); + $$.wrap('
    '); + $$.wrap('
    '); + $$.addClass("markItUpEditor"); + + // add the header before the textarea + header = $('').insertBefore($$); + $(dropMenus(options.markupSet)).appendTo(header); + + // add the footer after the textarea + footer = $('
    ').insertAfter($$); + + // add the resize handle after textarea + if (options.resizeHandle === true && $.browser.safari !== true) { + resizeHandle = $('
    '); + footer.insertAfter($$) + footer.bind("mousedown", function(e) { + var h = $$.height(), y = e.clientY, mouseMove, mouseUp; + mouseMove = function(e) { + $$.css("height", Math.max(20, e.clientY+h-y)+"px"); + return false; + }; + mouseUp = function(e) { + $("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp); + return false; + }; + $("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp); + }); + footer.append(resizeHandle); + } + + // listen key events + $$.keydown(keyPressed).keyup(keyPressed); + + // bind an event to catch external calls + $$.bind("insertion", function(e, settings) { + if (settings.target !== false) { + get(); + } + if (textarea === $.markItUp.focused) { + markup(settings); + } + }); + + // remember the last focus + $$.focus(function() { + $.markItUp.focused = this; + }); + } + + // recursively build header with dropMenus from markupset + function dropMenus(markupSet) { + var ul = $('
      '), i = 0; + $('li:hover > ul', ul).css('display', 'block'); + $.each(markupSet, function() { + var button = this, t = '', title, li, j; + title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||''); + key = (button.key) ? 'accesskey="'+button.key+'"' : ''; + if (button.separator) { + li = $('
    • '+(button.separator||'')+'
    • ').appendTo(ul); + } else { + i++; + for (j = levels.length -1; j >= 0; j--) { + t += levels[j]+"-"; + } + li = $('
    • '+(button.name||'')+'
    • ') + .bind("contextmenu", function() { // prevent contextmenu on mac and allow ctrl+click + return false; + }).click(function() { + return false; + }).mouseup(function() { + if (button.call) { + eval(button.call)(); + } + markup(button); + return false; + }).hover(function() { + $('> ul', this).show(); + $(document).one('click', function() { // close dropmenu if click outside + $('ul ul', header).hide(); + } + ); + }, function() { + $('> ul', this).hide(); + } + ).appendTo(ul); + if (button.dropMenu) { + levels.push(i); + $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu)); + } + } + }); + levels.pop(); + return ul; + } + + // markItUp! markups + function magicMarkups(string) { + if (string) { + string = string.toString(); + string = string.replace(/\(\!\(([\s\S]*?)\)\!\)/g, + function(x, a) { + var b = a.split('|!|'); + if (altKey === true) { + return (b[1] !== undefined) ? b[1] : b[0]; + } else { + return (b[1] === undefined) ? "" : b[0]; + } + } + ); + // [![prompt]!], [![prompt:!:value]!] + string = string.replace(/\[\!\[([\s\S]*?)\]\!\]/g, + function(x, a) { + var b = a.split(':!:'); + if (abort === true) { + return false; + } + value = prompt(b[0], (b[1]) ? b[1] : ''); + if (value === null) { + abort = true; + } + return value; + } + ); + return string; + } + return ""; + } + + // prepare action + function prepare(action) { + if ($.isFunction(action)) { + action = action(hash); + } + return magicMarkups(action); + } + + // build block to insert + function build(string) { + openWith = prepare(clicked.openWith); + placeHolder = prepare(clicked.placeHolder); + replaceWith = prepare(clicked.replaceWith); + closeWith = prepare(clicked.closeWith); + if (replaceWith !== "") { + block = openWith + replaceWith + closeWith; + } else if (selection === '' && placeHolder !== '') { + block = openWith + placeHolder + closeWith; + } else { + block = openWith + (string||selection) + closeWith; + } + return { block:block, + openWith:openWith, + replaceWith:replaceWith, + placeHolder:placeHolder, + closeWith:closeWith + }; + } + + // define markup to insert + function markup(button) { + var len, j, n, i; + hash = clicked = button; + get(); + + $.extend(hash, { line:"", + root:options.root, + textarea:textarea, + selection:(selection||''), + caretPosition:caretPosition, + ctrlKey:ctrlKey, + shiftKey:shiftKey, + altKey:altKey + } + ); + // callbacks before insertion + prepare(options.beforeInsert); + prepare(clicked.beforeInsert); + if (ctrlKey === true && shiftKey === true) { + prepare(clicked.beforeMultiInsert); + } + $.extend(hash, { line:1 }); + + if (ctrlKey === true && shiftKey === true) { + lines = selection.split(/\r?\n/); + for (j = 0, n = lines.length, i = 0; i < n; i++) { + if ($.trim(lines[i]) !== '') { + $.extend(hash, { line:++j, selection:lines[i] } ); + lines[i] = build(lines[i]).block; + } else { + lines[i] = ""; + } + } + string = { block:lines.join('\n')}; + start = caretPosition; + len = string.block.length + (($.browser.opera) ? n : 0); + } else if (ctrlKey === true) { + string = build(selection); + start = caretPosition + string.openWith.length; + len = string.block.length - string.openWith.length - string.closeWith.length; + len -= fixIeBug(string.block); + } else if (shiftKey === true) { + string = build(selection); + start = caretPosition; + len = string.block.length; + len -= fixIeBug(string.block); + } else { + string = build(selection); + start = caretPosition + string.block.length ; + len = 0; + start -= fixIeBug(string.block); + } + if ((selection === '' && string.replaceWith === '')) { + caretOffset += fixOperaBug(string.block); + + start = caretPosition + string.openWith.length; + len = string.block.length - string.openWith.length - string.closeWith.length; + + caretOffset = $$.val().substring(caretPosition, $$.val().length).length; + caretOffset -= fixOperaBug($$.val().substring(0, caretPosition)); + } + $.extend(hash, { caretPosition:caretPosition, scrollPosition:scrollPosition } ); + + if (string.block !== selection && abort === false) { + insert(string.block); + set(start, len); + } else { + caretOffset = -1; + } + get(); + + $.extend(hash, { line:'', selection:selection }); + + // callbacks after insertion + if (ctrlKey === true && shiftKey === true) { + prepare(clicked.afterMultiInsert); + } + prepare(clicked.afterInsert); + prepare(options.afterInsert); + + // refresh preview if opened + if (previewWindow && options.previewAutoRefresh) { + refreshPreview(); + } + + // reinit keyevent + shiftKey = altKey = ctrlKey = abort = false; + } + + // Substract linefeed in Opera + function fixOperaBug(string) { + if ($.browser.opera) { + return string.length - string.replace(/\n*/g, '').length; + } + return 0; + } + // Substract linefeed in IE + function fixIeBug(string) { + if ($.browser.msie) { + return string.length - string.replace(/\r*/g, '').length; + } + return 0; + } + + // add markup + function insert(block) { + if (document.selection) { + var newSelection = document.selection.createRange(); + newSelection.text = block; + } else { + $$.val($$.val().substring(0, caretPosition) + block + $$.val().substring(caretPosition + selection.length, $$.val().length)); + } + } + + // set a selection + function set(start, len) { + if (textarea.createTextRange){ + // quick fix to make it work on Opera 9.5 + if ($.browser.opera && $.browser.version >= 9.5 && len == 0) { + return false; + } + range = textarea.createTextRange(); + range.collapse(true); + range.moveStart('character', start); + range.moveEnd('character', len); + range.select(); + } else if (textarea.setSelectionRange ){ + textarea.setSelectionRange(start, start + len); + } + textarea.scrollTop = scrollPosition; + textarea.focus(); + } + + // get the selection + function get() { + textarea.focus(); + + scrollPosition = textarea.scrollTop; + if (document.selection) { + selection = document.selection.createRange().text; + if ($.browser.msie) { // ie + var range = document.selection.createRange(), rangeCopy = range.duplicate(); + rangeCopy.moveToElementText(textarea); + caretPosition = -1; + while(rangeCopy.inRange(range)) { // fix most of the ie bugs with linefeeds... + rangeCopy.moveStart('character'); + caretPosition ++; + } + } else { // opera + caretPosition = textarea.selectionStart; + } + } else { // gecko + caretPosition = textarea.selectionStart; + selection = $$.val().substring(caretPosition, textarea.selectionEnd); + } + return selection; + } + + // open preview window + function preview() { + $('textarea').hide(); + if (!previewWindow || previewWindow.closed) { + if (options.previewInWindow) { + previewWindow = window.open('', 'preview', options.previewInWindow); + + } else { + iFrame = $(''); + if (options.previewPosition == 'after') { + iFrame.insertAfter(footer); + } else { + iFrame.insertBefore(header); + } + previewWindow = iFrame[iFrame.length-1].contentWindow || frame[iFrame.length-1]; + } + } else if (altKey === true) { + if (iFrame) { + iFrame.remove(); + } + + previewWindow.close(); + previewWindow = iFrame = false; + } + if (!options.previewAutoRefresh) { + refreshPreview(); + + } + } + + // refresh Preview window + function refreshPreview() { + $('iframe').width($(window).width()-24) + .height($(window).height()-49); + if (previewWindow.document) { + try { + sp = previewWindow.document.documentElement.scrollTop + } catch(e) { + sp = 0; + } + previewWindow.document.open(); + previewWindow.document.write(renderPreview()); + previewWindow.document.close(); + previewWindow.document.documentElement.scrollTop = sp; + } + if (options.previewInWindow) { + previewWindow.focus(); + } + } + + function renderPreview() { + if (options.previewParserPath !== '') { + $.ajax( { + type: 'POST', + async: false, + url: options.previewParserPath, + data: options.previewParserVar+'='+encodeURIComponent($$.val()), + success: function(data) { + phtml = localize(data, 1); + } + } ); + } else { + if (!template) { + $.ajax( { + async: false, + url: options.previewTemplatePath, + success: function(data) { + template = localize(data, 1); + } + } ); + } + phtml = template.replace(//g, $$.val()); + } + if(window.uniboard){ + window.uniboard.setPreference("html", $('textarea').val()); + }; + + $("#fakebar").hide(); + $("#menu").hide(); + $("#reset-btn").fadeIn(500).data("hidden", false) + .animate({ + top:-12 + },1500) + .mouseover(function(){ + $(this).css({ + top:0 + }); + }) + .mouseout(function(){ + $(this).css({ + top:-12 + }); + + if($(this).data("hidden")){ + $(this).css({top:0}) + }; + }); + return phtml; + } + + // set keys pressed + function keyPressed(e) { + shiftKey = e.shiftKey; + altKey = e.altKey; + ctrlKey = (!(e.altKey && e.ctrlKey)) ? e.ctrlKey : false; + + if (e.type === 'keydown') { + if (ctrlKey === true) { + li = $("a[accesskey="+String.fromCharCode(e.keyCode)+"]", header).parent('li'); + if (li.length !== 0) { + ctrlKey = false; + li.triggerHandler('mouseup'); + return false; + } + } + if (e.keyCode === 13 || e.keyCode === 10) { // Enter key + if (ctrlKey === true) { // Enter + Ctrl + ctrlKey = false; + markup(options.onCtrlEnter); + return options.onCtrlEnter.keepDefault; + } else if (shiftKey === true) { // Enter + Shift + shiftKey = false; + markup(options.onShiftEnter); + return options.onShiftEnter.keepDefault; + } else { // only Enter + markup(options.onEnter); + return options.onEnter.keepDefault; + } + } + if (e.keyCode === 9) { // Tab key + if (shiftKey == true || ctrlKey == true || altKey == true) { // Thx Dr Floob. + return false; + } + if (caretOffset !== -1) { + get(); + caretOffset = $$.val().length - caretOffset; + set(caretOffset, 0); + caretOffset = -1; + return false; + } else { + markup(options.onTab); + return options.onTab.keepDefault; + } + } + } + } + + init(); + }); + }; + + $.fn.markItUpRemove = function() { + return this.each(function() { + $$ = $(this).unbind().removeClass('markItUpEditor'); + $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$); + } + ); + }; + + $.markItUp = function(settings) { + var options = { target:false }; + $.extend(options, settings); + if (options.target) { + return $(options.target).each(function() { + $(this).focus(); + $(this).trigger('insertion', [options]); + }); + } else { + $('textarea').trigger('insertion', [options]); + } + }; +})(jQuery); diff --git a/resources/library/applications/Html.wgt/markitup/jquery.markitup.pack.js b/resources/library/applications/Html.wgt/markitup/jquery.markitup.pack.js new file mode 100644 index 0000000..f1244c9 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/jquery.markitup.pack.js @@ -0,0 +1,9 @@ +// ---------------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// v 1.1.5 +// Dual licensed under the MIT and GPL licenses. +// ---------------------------------------------------------------------------- +// Copyright (C) 2007-2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(3($){$.24.T=3(f,g){E k,v,A,F;v=A=F=7;k={C:\'\',12:\'\',U:\'\',1j:\'\',1A:8,25:\'26\',1k:\'~/2Q/1B.1C\',1b:\'\',27:\'28\',1l:8,1D:\'\',1E:\'\',1F:{},1G:{},1H:{},1I:{},29:[{}]};$.V(k,f,g);2(!k.U){$(\'2R\').1c(3(a,b){1J=$(b).14(0).2S.2T(/(.*)2U\\.2V(\\.2W)?\\.2X$/);2(1J!==2a){k.U=1J[1]}})}4 G.1c(3(){E d,u,15,16,p,H,L,P,17,1m,w,1n,M,18;d=$(G);u=G;15=[];18=7;16=p=0;H=-1;k.1b=1d(k.1b);k.1k=1d(k.1k);3 1d(a,b){2(b){4 a.W(/("|\')~\\//g,"$1"+k.U)}4 a.W(/^~\\//,k.U)}3 2b(){C=\'\';12=\'\';2(k.C){C=\'C="\'+k.C+\'"\'}l 2(d.1K("C")){C=\'C="T\'+(d.1K("C").2c(0,1).2Y())+(d.1K("C").2c(1))+\'"\'}2(k.12){12=\'N="\'+k.12+\'"\'}d.1L(\'\');d.1L(\'\');d.1L(\'\');d.2d("2e");17=$(\'\').2f(d);$(1M(k.29)).1N(17);1m=$(\'\').1O(d);2(k.1l===8&&$.X.32!==8){1l=$(\'\').1O(d).1e("34",3(e){E h=d.2g(),y=e.2h,1o,1p;1o=3(e){d.2i("2g",35.36(20,e.2h+h-y)+"37");4 7};1p=3(e){$("1C").1P("2j",1o).1P("1q",1p);4 7};$("1C").1e("2j",1o).1e("1q",1p)});1m.2k(1l)}d.2l(1Q).38(1Q);d.1e("1R",3(e,a){2(a.1r!==7){14()}2(u===$.T.2m){Y(a)}});d.1f(3(){$.T.2m=G})}3 1M(b){E c=$(\'\'),i=0;$(\'B:2n > Z\',c).2i(\'39\',\'q\');$.1c(b,3(){E a=G,t=\'\',1s,B,j;1s=(a.19)?(a.1S||\'\')+\' [3a+\'+a.19+\']\':(a.1S||\'\');19=(a.19)?\'2o="\'+a.19+\'"\':\'\';2(a.2p){B=$(\'\'+(a.2p||\'\')+\'\').1N(c)}l{i++;2q(j=15.6-1;j>=0;j--){t+=15[j]+"-"}B=$(\'\'+(a.1S||\'\')+\'\').1e("3e",3(){4 7}).2s(3(){4 7}).1q(3(){2(a.2t){3f(a.2t)()}Y(a);4 7}).2n(3(){$(\'> Z\',G).3g();$(D).3h(\'2s\',3(){$(\'Z Z\',17).2u()})},3(){$(\'> Z\',G).2u()}).1N(c);2(a.2v){15.3i(i);$(B).2d(\'3j\').2k(1M(a.2v))}}});15.3k();4 c}3 2w(c){2(c){c=c.3l();c=c.W(/\\(\\!\\(([\\s\\S]*?)\\)\\!\\)/g,3(x,a){E b=a.1T(\'|!|\');2(F===8){4(b[1]!==2x)?b[1]:b[0]}l{4(b[1]===2x)?"":b[0]}});c=c.W(/\\[\\!\\[([\\s\\S]*?)\\]\\!\\]/g,3(x,a){E b=a.1T(\':!:\');2(18===8){4 7}1U=3m(b[0],(b[1])?b[1]:\'\');2(1U===2a){18=8}4 1U});4 c}4""}3 I(a){2($.3n(a)){a=a(P)}4 2w(a)}3 1g(a){J=I(L.J);1a=I(L.1a);Q=I(L.Q);O=I(L.O);2(Q!==""){q=J+Q+O}l 2(m===\'\'&&1a!==\'\'){q=J+1a+O}l{q=J+(a||m)+O}4{q:q,J:J,Q:Q,1a:1a,O:O}}3 Y(a){E b,j,n,i;P=L=a;14();$.V(P,{1t:"",U:k.U,u:u,m:(m||\'\'),p:p,v:v,A:A,F:F});I(k.1D);I(L.1D);2(v===8&&A===8){I(L.3o)}$.V(P,{1t:1});2(v===8&&A===8){R=m.1T(/\\r?\\n/);2q(j=0,n=R.6,i=0;i=9.5&&b==0){4 7}1i=u.2B();1i.3t(8);1i.2C(\'21\',a);1i.3u(\'21\',b);1i.3v()}l 2(u.2D){u.2D(a,a+b)}u.1v=16;u.1f()}3 14(){u.1f();16=u.1v;2(D.m){m=D.m.1Z().2A;2($.X.2z){E a=D.m.1Z(),1w=a.3w();1w.3x(u);p=-1;3y(1w.3z(a)){1w.2C(\'21\');p++}}l{p=u.2E}}l{p=u.2E;m=d.K().1h(p,u.3A)}4 m}3 1B(){2(!w||w.3B){2(k.1j){w=3C.2F(\'\',\'1B\',k.1j)}l{M=$(\'<2G N="3D">\');2(k.25==\'26\'){M.1O(1m)}l{M.2f(17)}w=M[M.6-1].3E||3F[M.6-1]}}l 2(F===8){2(M){M.3G()}w.2H();w=M=7}2(!k.1A){1Y()}}3 1Y(){2(w.D){3H{22=w.D.2I.1v}3I(e){22=0}w.D.2F();w.D.3J(2J());w.D.2H();w.D.2I.1v=22}2(k.1j){w.1f()}}3 2J(){2(k.1b!==\'\'){$.2K({2L:\'3K\',2M:7,2N:k.1b,28:k.27+\'=\'+3L(d.K()),2O:3(a){23=1d(a,1)}})}l{2(!1n){$.2K({2M:7,2N:k.1k,2O:3(a){1n=1d(a,1)}})}23=1n.W(//g,d.K())}4 23}3 1Q(e){A=e.A;F=e.F;v=(!(e.F&&e.v))?e.v:7;2(e.2L===\'2l\'){2(v===8){B=$("a[2o="+3N.3O(e.1x)+"]",17).1y(\'B\');2(B.6!==0){v=7;B.3P(\'1q\');4 7}}2(e.1x===13||e.1x===10){2(v===8){v=7;Y(k.1H);4 k.1H.1z}l 2(A===8){A=7;Y(k.1G);4 k.1G.1z}l{Y(k.1F);4 k.1F.1z}}2(e.1x===9){2(A==8||v==8||F==8){4 7}2(H!==-1){14();H=d.K().6-H;1X(H,0);H=-1;4 7}l{Y(k.1I);4 k.1I.1z}}}}2b()})};$.24.3Q=3(){4 G.1c(3(){$$=$(G).1P().3R(\'2e\');$$.1y(\'z\').1y(\'z.T\').1y(\'z\').Q($$)})};$.T=3(a){E b={1r:7};$.V(b,a);2(b.1r){4 $(b.1r).1c(3(){$(G).1f();$(G).2P(\'1R\',[b])})}l{$(\'u\').2P(\'1R\',[b])}}})(3S);',62,241,'||if|function|return||length|false|true|||||||||||||else|selection||string|caretPosition|block||||textarea|ctrlKey|previewWindow|||div|shiftKey|li|id|document|var|altKey|this|caretOffset|prepare|openWith|val|clicked|iFrame|class|closeWith|hash|replaceWith|lines||markItUp|root|extend|replace|browser|markup|ul||start|nameSpace||get|levels|scrollPosition|header|abort|key|placeHolder|previewParserPath|each|localize|bind|focus|build|substring|range|previewInWindow|previewTemplatePath|resizeHandle|footer|template|mouseMove|mouseUp|mouseup|target|title|line|fixIeBug|scrollTop|rangeCopy|keyCode|parent|keepDefault|previewAutoRefresh|preview|html|beforeInsert|afterInsert|onEnter|onShiftEnter|onCtrlEnter|onTab|miuScript|attr|wrap|dropMenus|appendTo|insertAfter|unbind|keyPressed|insertion|name|split|value|opera|fixOperaBug|set|refreshPreview|createRange||character|sp|phtml|fn|previewPosition|after|previewParserVar|data|markupSet|null|init|substr|addClass|markItUpEditor|insertBefore|height|clientY|css|mousemove|append|keydown|focused|hover|accesskey|separator|for|markItUpButton|click|call|hide|dropMenu|magicMarkups|undefined|insert|msie|text|createTextRange|moveStart|setSelectionRange|selectionStart|open|iframe|close|documentElement|renderPreview|ajax|type|async|url|success|trigger|templates|script|src|match|jquery|markitup|pack|js|toUpperCase|markItUpContainer|markItUpHeader|markItUpFooter|safari|markItUpResizeHandle|mousedown|Math|max|px|keyup|display|Ctrl|markItUpSeparator|className|href|contextmenu|eval|show|one|push|markItUpDropMenu|pop|toString|prompt|isFunction|beforeMultiInsert|trim|join|afterMultiInsert|version|collapse|moveEnd|select|duplicate|moveToElementText|while|inRange|selectionEnd|closed|window|markItUpPreviewFrame|contentWindow|frame|remove|try|catch|write|POST|encodeURIComponent|content|String|fromCharCode|triggerHandler|markItUpRemove|removeClass|jQuery'.split('|'),0,{})) \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/readme.txt b/resources/library/applications/Html.wgt/markitup/readme.txt new file mode 100644 index 0000000..8e52604 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/readme.txt @@ -0,0 +1,62 @@ +markItUp! 1.1.5 + +CHANGE LOG +markItUp! 1.1.5 2009-05-01 +- Modified: http://drupal.org/project/wysiwyg compatibility +- Modified: Alt/Ctrl/Alt+Tab are now disabled + +markItUp! 1.1.4 2008-12-03 +- Fixed: Extra quote deleted line 95 + +markItUp! 1.1.3 2008-09-12 +- Fixed: IE7 preview problem + +markItUp! 1.1.2 2008-07-17 +- Fixed: Quick fix for Opera 9.5 caret position problem after insertion + +markItUp! 1.1.1 2008-06-02 +- Fixed: Key events status are passed to callbacks properly +- Improved: ScrollPosition is kept in the preview when its refreshed + +markItUp! 1.1.0 2008-05-04 +- Modified: Textarea's id is no more moved to the main container +- Modified: NameSpace Span become a Div to remain strict +- Added: Relative path to the script is computed +- Added: Relative path to the script passed to callbacks +- Added: Global instance ID property +- Added: $(element).markItUpRemove() to remove markItUp! +- Added: Resize handle is now optional with resizeHandle property +- Added: Property previewInWindow is added and accept window parameter +- Added: Property previewPosition is added +- Modified: Resize handle is no more displayed in Safari to avoid repetition with the native handle +- Modified: Property previewIframeRefresh become previewAutorefresh +- Modified: Built-in Html Preview call a template file +- Improved: Autorefreshing is now apply for preview in window too +- Improved: Cancel button in prompt window cancel now the whole insertion process +- Improved: Cleaner markItUp! code added to the DOM +- Removed: Depreciated preview properties as previewBaseUrl, previewCharset, previewCssPath, previewBodyId, previewBodyClassName +- Removed: Property previewIframe not longer exists +- Fixed: "Magic markups" works with line feeds +- Fixed: Key events are initialized after insertion +- Fixed: Internet Explorer line feed offset bug +- Fixed: Shortcut keys on Mac OS +- Fixed: Ctrl+click works and doesn't open Mac context menu anymore +- Fixed: Ctrl+click works and doesn't open the page in a new tab anymore +- Fixed: Minor Css modifications + +markItUp! 1.0.3 2008-04-04 +- Fixed: IE7 Preview empty baseurl problem +- Fixed: IE7 external targeted insertion +- Added: Property scrollPosition is passed to callbacks functions + +markItUp! 1.0.2 2008-03-31 +- Fixed: IE7 Html preview problems +- Fixed: Selection is kept if nothing is inserted +- Improved: Code minified + +markItUp! 1.0.1 2008-03-21 +- Removed: Global PlaceHolder +- Modified: Property previewCharset is setted to "utf-8" by default + +markItUp! 1.0.0 2008-03-01 +- First public release diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/bold.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/bold.png new file mode 100644 index 0000000..889ae80 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/bold.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/clean.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/clean.png new file mode 100644 index 0000000..7e7cefb Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/clean.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/image.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/image.png new file mode 100644 index 0000000..fc3c393 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/image.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/italic.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/italic.png new file mode 100644 index 0000000..8482ac8 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/italic.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/link.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/link.png new file mode 100644 index 0000000..25eacb7 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/link.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/picture.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/picture.png new file mode 100644 index 0000000..4a158fe Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/picture.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/preview.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/preview.png new file mode 100644 index 0000000..a9925a0 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/preview.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/images/stroke.png b/resources/library/applications/Html.wgt/markitup/sets/default/images/stroke.png new file mode 100644 index 0000000..612058a Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/default/images/stroke.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/set.js b/resources/library/applications/Html.wgt/markitup/sets/default/set.js new file mode 100644 index 0000000..2498b25 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/sets/default/set.js @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------- +// markItUp! +// ---------------------------------------------------------------------------- +// Copyright (C) 2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Html tags +// http://en.wikipedia.org/wiki/html +// ---------------------------------------------------------------------------- +// Basic set. Feel free to add more tags +// ---------------------------------------------------------------------------- +mySettings = { + onShiftEnter: {keepDefault:false, replaceWith:'
      \n'}, + onCtrlEnter: {keepDefault:false, openWith:'\n

      ', closeWith:'

      '}, + onTab: {keepDefault:false, replaceWith:' '}, + markupSet: [ + {name:'Bold', key:'B', openWith:'(!(|!|)!)', closeWith:'(!(|!|)!)' }, + {name:'Italic', key:'I', openWith:'(!(|!|)!)', closeWith:'(!(|!|)!)' }, + {name:'Stroke through', key:'S', openWith:'', closeWith:'' }, + {separator:'---------------' }, + {name:'Picture', key:'P', replaceWith:'[![Alternative text]!]' }, + {name:'Link', key:'L', openWith:'', closeWith:'', placeHolder:'Your text to link...' }, + {separator:'---------------' }, + {name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } }, + {name:'Preview', className:'preview', call:'preview'} + ] +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/sets/default/style.css b/resources/library/applications/Html.wgt/markitup/sets/default/style.css new file mode 100644 index 0000000..26cb927 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/sets/default/style.css @@ -0,0 +1,27 @@ +/* ------------------------------------------------------------------- +// markItUp! +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp .markItUpButton1 a { + background-image:url(images/bold.png); +} +.markItUp .markItUpButton2 a { + background-image:url(images/italic.png); +} +.markItUp .markItUpButton3 a { + background-image:url(images/stroke.png); +} + +.markItUp .markItUpButton4 a { + background-image:url(images/picture.png); +} +.markItUp .markItUpButton5 a { + background-image:url(images/link.png); +} + +.markItUp .markItUpButton6 a { + background-image:url(images/clean.png); +} +.markItUp .preview a { + background-image:url(images/preview.png); +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/bold.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/bold.png new file mode 100644 index 0000000..889ae80 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/bold.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/clean.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/clean.png new file mode 100644 index 0000000..5a95786 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/clean.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h1.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h1.png new file mode 100644 index 0000000..9c122e9 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h1.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h2.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h2.png new file mode 100644 index 0000000..fbd8765 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h2.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h3.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h3.png new file mode 100644 index 0000000..c7836cf Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h3.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h4.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h4.png new file mode 100644 index 0000000..4e929ea Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h4.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h5.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h5.png new file mode 100644 index 0000000..30cabeb Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h5.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/h6.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/h6.png new file mode 100644 index 0000000..058170a Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/h6.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/image.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/image.png new file mode 100644 index 0000000..fc3c393 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/image.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/italic.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/italic.png new file mode 100644 index 0000000..8482ac8 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/italic.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/link.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/link.png new file mode 100644 index 0000000..25eacb7 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/link.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/list-bullet.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-bullet.png new file mode 100644 index 0000000..4a8672b Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-bullet.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/list-item.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-item.png new file mode 100644 index 0000000..8cb4d69 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-item.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/list-numeric.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-numeric.png new file mode 100644 index 0000000..33b0b8d Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/list-numeric.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/paragraph.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/paragraph.png new file mode 100644 index 0000000..95704fb Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/paragraph.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/picture.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/picture.png new file mode 100644 index 0000000..4a158fe Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/picture.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/preview.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/preview.png new file mode 100644 index 0000000..6affda7 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/preview.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/images/stroke.png b/resources/library/applications/Html.wgt/markitup/sets/html/images/stroke.png new file mode 100644 index 0000000..612058a Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/sets/html/images/stroke.png differ diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/readme.txt b/resources/library/applications/Html.wgt/markitup/sets/html/readme.txt new file mode 100644 index 0000000..80dc7e7 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/sets/html/readme.txt @@ -0,0 +1,11 @@ +Markup language: +Html + +Description: +A basic Html markup set with Headings, Paragraph, Bold, Italic, Stroke through, Picture, Link, List, Clean button, Preview button. + +Install: +- Download the zip file +- Unzip it in your markItUp! sets folder +- Modify your JS link to point at this set.js +- Modify your CSS link to point at this style.css \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/set.js b/resources/library/applications/Html.wgt/markitup/sets/html/set.js new file mode 100644 index 0000000..cdcf9f1 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/sets/html/set.js @@ -0,0 +1,52 @@ +// ---------------------------------------------------------------------------- +// markItUp! +// ---------------------------------------------------------------------------- +// Copyright (C) 2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Html tags +// http://en.wikipedia.org/wiki/html +// ---------------------------------------------------------------------------- +// Basic set. Feel free to add more tags +// ---------------------------------------------------------------------------- + +var lang = ""; + +if(window.sankore){ + try{ + lang = sankore.locale().substr(0,2); + sankoreLang[lang].welcome; + } catch(e){ + lang = "en"; + } +} else + lang = "en"; + +mySettings = { + onShiftEnter: {keepDefault:false, replaceWith:'
      \n'}, + onCtrlEnter: {keepDefault:false, openWith:'\n

      ', closeWith:'

      \n'}, + onTab: {keepDefault:false, openWith:' '}, + markupSet: [ + {name:'Heading 1', key:'1', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Heading 2', key:'2', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Heading 3', key:'3', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Heading 4', key:'4', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Heading 5', key:'5', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Heading 6', key:'6', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].enter_title}, + {name:'Paragraph', openWith:'', closeWith:'

      '}, + {separator:'---------------'}, + {name:'Bold', key:'B', openWith:'(!(|!|)!)', closeWith:'(!(|!|)!)'}, + {name:'Italic', key:'I', openWith:'(!(|!|)!)', closeWith:'(!(|!|)!)'}, + {name:'Stroke through', key:'S', openWith:'', closeWith:''}, + {separator:'---------------'}, + {name:'Ul', openWith:'
        \n', closeWith:'
      \n'}, + {name:'Ol', openWith:'
        \n', closeWith:'
      \n'}, + {name:'Li', openWith:'
    • ', closeWith:'
    • '}, + {separator:'---------------'}, + {name:'Picture', key:'P', replaceWith:'[![' + sankoreLang[lang].alt_text + ']!]'}, + {name:'Link', key:'L', openWith:'', closeWith:'', placeHolder:sankoreLang[lang].text_to_link}, + {separator:'---------------'}, + //{name:'Editor', className:'clean', replaceWith:function() { $('textarea').show(); $('iframe').remove();} }, + {name:'', className:'preview', call:'preview'} + ] +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/sets/html/style.css b/resources/library/applications/Html.wgt/markitup/sets/html/style.css new file mode 100644 index 0000000..c22ef4d --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/sets/html/style.css @@ -0,0 +1,75 @@ +/* ------------------------------------------------------------------- +// markItUp! +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp .markItUpButton1 a { + background-image:url(images/h1.png); + background-repeat:no-repeat; +} +.markItUp .markItUpButton2 a { + background-image:url(images/h2.png); + background-repeat:no-repeat; +} +.markItUp .markItUpButton3 a { + background-image:url(images/h3.png); + background-repeat:no-repeat; +} +.markItUp .markItUpButton4 a { + background-image:url(images/h4.png); + background-repeat:no-repeat; +} +.markItUp .markItUpButton5 a { + background-repeat:no-repeat; + background-image:url(images/h5.png); +} +.markItUp .markItUpButton6 a { + background-repeat:no-repeat; + background-image:url(images/h6.png); +} +.markItUp .markItUpButton7 a { + background-repeat:no-repeat; + background-image:url(images/paragraph.png); +} + +.markItUp .markItUpButton8 a { + background-repeat:no-repeat; + background-image:url(images/bold.png); +} +.markItUp .markItUpButton9 a { + background-repeat:no-repeat; + background-image:url(images/italic.png); +} +.markItUp .markItUpButton10 a { + background-repeat:no-repeat; + background-image:url(images/stroke.png); +} + +.markItUp .markItUpButton11 a { + background-repeat:no-repeat; + background-image:url(images/list-bullet.png); +} +.markItUp .markItUpButton12 a { + background-repeat:no-repeat; + background-image:url(images/list-numeric.png); +} +.markItUp .markItUpButton13 a { + background-repeat:no-repeat; + background-image:url(images/list-item.png); +} + +.markItUp .markItUpButton14 a { + background-repeat:no-repeat; + background-image:url(images/picture.png); +} +.markItUp .markItUpButton15 a { + background-repeat:no-repeat; + background-image:url(images/link.png); +} + +.markItUp .preview a { + background-repeat:no-repeat; + margin-top:-2px; + width:46px; + height:20px; + background-image:url(images/preview.png); +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container-white.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container-white.png new file mode 100644 index 0000000..30120db Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container-white.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container.png new file mode 100644 index 0000000..ee9a81c Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-container.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer-white.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer-white.png new file mode 100644 index 0000000..50d1bc6 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer-white.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer.png new file mode 100644 index 0000000..79552f9 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-footer.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header-white.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header-white.png new file mode 100644 index 0000000..88f3f64 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header-white.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header.png new file mode 100644 index 0000000..7035cd6 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/bg-header.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/handle.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/handle.png new file mode 100644 index 0000000..00e44e5 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/handle.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/menu.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/menu.png new file mode 100644 index 0000000..c817adc Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/menu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/spacer.gif b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/spacer.gif new file mode 100644 index 0000000..fc25609 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/spacer.gif differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/images/submenu.png b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/submenu.png new file mode 100644 index 0000000..03d1977 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/macosx/images/submenu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/readme.txt b/resources/library/applications/Html.wgt/markitup/skins/macosx/readme.txt new file mode 100644 index 0000000..e6d52dd --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/skins/macosx/readme.txt @@ -0,0 +1,7 @@ +Skin: +MacOSX inspired look & feel + +Install: +- Download the zip file +- Unzip it in your markItUp! skins folder +- Modify your CSS link to point at this skin \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/skins/macosx/style.css b/resources/library/applications/Html.wgt/markitup/skins/macosx/style.css new file mode 100644 index 0000000..d74adce --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/skins/macosx/style.css @@ -0,0 +1,139 @@ +/* ------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +body { +/* background-color:#3875D7;*/ +} +.markItUp { + background-color:#3875D7; + border:1px solid #3C769D; + padding:13px; +} +.markItUp * { + margin:0px; padding:0px; + outline:none; +} +.markItUp a:link, +.markItUp a:visited { + color:#000; + text-decoration:none; +} +.markItUp { + width:670px; + margin:5px 0 5px 0; +} +.markItUpContainer { + width:670px; + font:11px Verdana, Arial, Helvetica, sans-serif; + background-image:url(images/bg-container.png); +} +.markItUpEditor { + font:12px 'Courier New', Courier, monospace; + padding:5px; + margin:0px 11px 0px 11px; + width:640px; + height:320px; + clear:both; display:block; + line-height:18px; + overflow:auto; + border:0px solid white; +} +.markItUpPreviewFrame { + overflow:auto; + background-color:#FFFFFF; + width:99.9%; + height:350px; + margin:5px 0; +} +.markItUpHeader { + width:650px; + padding:15px 0px 0px 20px; + height:25px; + background-image:url(images/bg-header.png); +} +.markItUpFooter { + width:670px; + height:25px; + background-image:url(images/bg-footer.png); + padding-bottom:10px; +} +.markItUpResizeHandle { + margin:0px 12px 5px auto; + overflow:hidden; + width:12px; height:12px; + position:relative; + background-image:url(images/handle.png); + cursor:n-resize; +} +/***************************************************************************************/ +/* first row of buttons */ +.markItUpHeader ul li { + list-style:none; + float:left; + position:relative; +} +.markItUpHeader ul li:hover > ul{ + display:block; +} +.markItUpHeader ul .markItUpDropMenu { + background:transparent url(images/menu.png) no-repeat 115% 50%; + margin-right:5px; +} +.markItUpHeader ul .markItUpDropMenu li { + margin-right:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul { + display:none; + position:absolute; + top:18px; left:0px; + background:#FFF; + border:1px solid #000; +} +.markItUpHeader ul ul li { + float:none; + border-bottom:1px solid #000; +} +.markItUpHeader ul ul .markItUpDropMenu { + background:#FFF url(images/submenu.png) no-repeat 100% 50%; +} +.markItUpHeader ul .markItUpSeparator { + margin:0 10px; + width:1px; + height:16px; + overflow:hidden; + background-color:#CCC; +} +.markItUpHeader ul ul .markItUpSeparator { + width:auto; height:1px; + margin:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul ul { + position:absolute; + top:-1px; left:150px; +} +.markItUpHeader ul ul ul li { + float:none; +} +.markItUpHeader ul a { + display:block; + width:16px; height:16px; + text-indent:-10000px; + background-repeat:no-repeat; + padding:3px; + margin:0px; +} +.markItUpHeader ul ul a { + display:block; + padding-left:0px; + text-indent:0; + width:120px; + padding:5px 5px 5px 25px; + background-position:2px 50%; +} +.markItUpHeader ul ul a:hover { + color:#FFF; + background-color:#3875D7; +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-container.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-container.png new file mode 100644 index 0000000..a28e018 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-container.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-bbcode.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-bbcode.png new file mode 100644 index 0000000..39cdbd8 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-bbcode.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-dotclear.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-dotclear.png new file mode 100644 index 0000000..b3188dc Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-dotclear.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-html.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-html.png new file mode 100644 index 0000000..11bff45 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-html.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-json.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-json.png new file mode 100644 index 0000000..e898c1d Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-json.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-markdown.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-markdown.png new file mode 100644 index 0000000..c199715 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-markdown.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-textile.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-textile.png new file mode 100644 index 0000000..3ab1e9f Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-textile.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-wiki.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-wiki.png new file mode 100644 index 0000000..7887181 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-wiki.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-xml.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-xml.png new file mode 100644 index 0000000..33b1c5d Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor-xml.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor.png new file mode 100644 index 0000000..ab7cde4 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/bg-editor.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/handle.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/handle.png new file mode 100644 index 0000000..3993b20 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/handle.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/menu.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/menu.png new file mode 100644 index 0000000..44a07af Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/menu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/images/submenu.png b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/submenu.png new file mode 100644 index 0000000..03d1977 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/markitup/images/submenu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/markitup/style.css b/resources/library/applications/Html.wgt/markitup/skins/markitup/style.css new file mode 100644 index 0000000..5b5eee0 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/skins/markitup/style.css @@ -0,0 +1,149 @@ +/* ------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp * { + margin:0px; padding:0px; + outline:none; +} +.markItUp a:link, +.markItUp a:visited { + color:#000; + text-decoration:none; +} +iframe { + border: 0px solid #ffffff; +} +.markItUp { + width:97%; + margin:5px 10px 5px 5px; + border:5px solid #F5F5F5; +} +.markItUpContainer { + border:1px solid #3C769D; + background:#FFF url(images/bg-container.png) repeat-x top left; + padding:5px 5px 2px 5px; + font:11px Verdana, Arial, Helvetica, sans-serif; +} +.markItUpEditor { + width: 100%; + font:12px 'Courier New', Courier, monospace; + padding:5px 5px 5px 15px; + border:3px solid #3C769D; + width:643px; + height:320px; + background-repeat:no-repeat; + clear:both; display:block; + line-height:18px; + overflow:auto; +} +.markItUpPreviewFrame { + overflow:auto; + width:99.9%; + height:300px; + margin:0px 0; +} +.markItUpFooter { + width:100%; + cursor:n-resize; +} +.markItUpResizeHandle { + overflow:hidden; + width:22px; height:5px; + margin-left:auto; + margin-right:auto; + background-image:url(images/handle.png); + cursor:n-resize; +} +/***************************************************************************************/ +/* first row of buttons */ +.markItUpHeader ul li { + list-style:none; + float:left; + position:relative; +} +.markItUpHeader ul li ul{ + display:none; +} +.markItUpHeader ul li:hover > ul{ + display:block; +} +.markItUpHeader ul .markItUpDropMenu { + background:transparent url(images/menu.png) no-repeat 115% 50%; + margin-right:5px; +} +.markItUpHeader ul .markItUpDropMenu li { + margin-right:0px; +} +.markItUpHeader ul .markItUpSeparator { + margin:0 10px; + width:1px; + height:16px; + overflow:hidden; + background-color:#CCC; +} +.markItUpHeader ul ul .markItUpSeparator { + width:auto; height:1px; + margin:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul { + display:none; + position:absolute; + top:18px; left:0px; + background:#F5F5F5; + border:1px solid #3C769D; + height:inherit; +} +.markItUpHeader ul ul li { + float:none; + border-bottom:1px solid #3C769D; +} +.markItUpHeader ul ul .markItUpDropMenu { + background:#F5F5F5 url(images/submenu.png) no-repeat 100% 50%; +} +/* next rows of buttons */ +.markItUpHeader ul ul ul { + position:absolute; + top:-1px; left:150px; +} +.markItUpHeader ul ul ul li { + float:none; +} +.markItUpHeader ul a { + display:block; + width:16px; height:16px; + text-indent:-10000px; + background-repeat:no-repeat; + padding:3px; + margin:0px; +} +.markItUpHeader ul ul a { + display:block; + padding-left:0px; + text-indent:0; + width:120px; + padding:5px 5px 5px 25px; + background-position:2px 50%; +} +.markItUpHeader ul ul a:hover { + color:#FFF; + background-color:#3C769D; +} +/***************************************************************************************/ +.html .markItUpEditor { + background-image:url(images/bg-editor-html.png); +} +.markdown .markItUpEditor { + background-image:url(images/bg-editor-markdown.png); +} +.textile .markItUpEditor { + background-image:url(images/bg-editor-textile.png); +} +.bbcode .markItUpEditor { + background-image:url(images/bg-editor-bbcode.png); +} +.wiki .markItUpEditor, +.dotclear .markItUpEditor { + background-image:url(images/bg-editor-wiki.png); +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/skins/simple/images/handle.png b/resources/library/applications/Html.wgt/markitup/skins/simple/images/handle.png new file mode 100644 index 0000000..3993b20 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/simple/images/handle.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/simple/images/menu.png b/resources/library/applications/Html.wgt/markitup/skins/simple/images/menu.png new file mode 100644 index 0000000..44a07af Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/simple/images/menu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/skins/simple/images/submenu.png b/resources/library/applications/Html.wgt/markitup/skins/simple/images/submenu.png new file mode 100644 index 0000000..03d1977 Binary files /dev/null and b/resources/library/applications/Html.wgt/markitup/skins/simple/images/submenu.png differ diff --git a/resources/library/applications/Html.wgt/markitup/templates/preview.css b/resources/library/applications/Html.wgt/markitup/templates/preview.css new file mode 100644 index 0000000..8c15421 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/templates/preview.css @@ -0,0 +1,4 @@ +body { + font:70% Verdana, Arial, Helvetica, sans-serif; + color: black; +} \ No newline at end of file diff --git a/resources/library/applications/Html.wgt/markitup/templates/preview.html b/resources/library/applications/Html.wgt/markitup/templates/preview.html new file mode 100644 index 0000000..b8b3702 --- /dev/null +++ b/resources/library/applications/Html.wgt/markitup/templates/preview.html @@ -0,0 +1,11 @@ + + + + +markItUp! preview template + + + + + + diff --git a/resources/library/applications/Notes.wgt/config.xml b/resources/library/applications/Notes.wgt/config.xml new file mode 100644 index 0000000..a39df2a --- /dev/null +++ b/resources/library/applications/Notes.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Notes + Mnemis SA + Simple notes widget + + + diff --git a/resources/library/applications/Notes.wgt/css/jScrollPane.css b/resources/library/applications/Notes.wgt/css/jScrollPane.css new file mode 100644 index 0000000..9168128 --- /dev/null +++ b/resources/library/applications/Notes.wgt/css/jScrollPane.css @@ -0,0 +1,65 @@ + +.jScrollPaneContainer { + position: relative; + overflow: hidden; + z-index: 1; +} + +.jScrollPaneTrack { + position: absolute; + cursor: pointer; + right: 0; + top: 0; + height: 100%; + background: #aaa; +} +.jScrollPaneDrag { + position: absolute; + background: #666; + cursor: pointer; + overflow: hidden; +} +.jScrollPaneDragTop { + position: absolute; + top: 0; + left: 0; + overflow: hidden; +} +.jScrollPaneDragBottom { + position: absolute; + bottom: 0; + left: 0; + overflow: hidden; +} +a.jScrollArrowUp { + display: block; + position: absolute; + z-index: 1; + top: 0; + right: 0; + text-indent: -2000px; + overflow: hidden; + /*background-color: #666;*/ + height: 9px; +} +a.jScrollArrowUp:hover { + /*background-color: #f60;*/ +} + +a.jScrollArrowDown { + display: block; + position: absolute; + z-index: 1; + bottom: 0; + right: 0; + text-indent: -2000px; + overflow: hidden; + /*background-color: #666;*/ + height: 9px; +} +a.jScrollArrowDown:hover { + /*background-color: #f60;*/ +} +a.jScrollActiveArrowButton, a.jScrollActiveArrowButton:hover { + /*background-color: #f00;*/ +} \ No newline at end of file diff --git a/resources/library/applications/Notes.wgt/css/ubwidget.css b/resources/library/applications/Notes.wgt/css/ubwidget.css new file mode 100644 index 0000000..61fea95 --- /dev/null +++ b/resources/library/applications/Notes.wgt/css/ubwidget.css @@ -0,0 +1,229 @@ +* { + margin: 0; + padding: 0; +} + +body, html{ + margin:0px; + height: 96%; +} + +.ubw-container{ + min-width: 280px; + min-height: 200px; + width: 99%; + height: 100%; + text-overflow: ellipsis; + left:0px; + top:0px; + margin:0px; + background-image: url(../images/back.png); + overflow: hidden; + border-right: 1px solid rgb(252, 252, 220); + border-left: 1px solid rgb(232, 232, 220); +} + +.ubw-body{ +} + +.head{ + border-top: 1px solid rgb(252, 252, 220); + position: relative; + background-color: transparent; + font-style: normal; + color: #263141; + font-size: 119%; + width: auto; + height: 20px; + font-family: Arial, Helvetica, sans-serif; + font-weight: normal; + outline: none; + border-bottom: rgb(252, 252, 220); + + +} +.stickytitle{ + background-color: transparent; + min-width: 10px; + max-width: 70%; + width: 100%; + padding-top: 4px; + height: 20px; + float: left; + z-index: 3; + position: relative; + overflow:hidden; + margin-left: 10px; + margin-right: -2px; + font-style: normal; + color: #444444; + font-size: 88%; + border-style: none; + outline: none; + font-family: Arial, Helvetica, sans-serif; + font-weight: normal; + text-align: left; + resize: none; +} + +.textField{ + min-height: 50px; + overflow-y: auto; + overflow-x: hidden; + height: auto; + width: auto; + margin: 5px; + padding-right: 4%; + background-position: 0; + border-left-style: none; + border-bottom-style: none; + border-right-style: none; + border-top-style: none; + text-align: left; + list-style-type: none; + outline: none; + word-wrap: break-word; + font-style: normal; + font-weight: normal; + font-family: Arial, Helvetica, sans-serif; + color:#444444; +} + +.ubw-inspector{ + position:absolute; + background-color:rgb(252, 252, 252); + border:1px solid #cccccc; + line-height:20px; + font-family:Arial, Helvetica, sans-serif; + font-weight:normal; + font-size:20px; + color:#333333; +} + +.ubw-inpubox{ + min-width:28px; + min-height:37px; + color:#333333; + background-image: url(../images/button_out.png); + border-left:1px solid rgb(231, 231, 231); + border-right:1px solid rgb(231, 231, 231); + border-bottom:1px solid rgb(221, 221, 221); + border-top:1px solid rgb(241, 241, 241); +} + +/*BUTTONS*/ + +.ubw-button-wrapper{ + float:left; + position:relative; + /*border:solid 1px yellow;*/ + margin-right:-7px; + z-index:0; + font-family:Arial, Helvetica, sans-serif; + font-weight:normal; + font-size:30px; + overflow:visible; +} + +.ubw-button-canvas{ + width:auto; + float:left; + position:relative; + overflow:visible; +} + +table{ + line-height:90%; +} + +.ubw-dropdown{ + margin: 0; + padding: 0; + font-size: 15px; + width:100px; + list-style: none; + cursor:pointer; + float:none; + margin-left:3px; +} + +.ubw-dropdown li.out{ + padding-left: 5px; + color:#444444; + border-left:1px solid rgb(231, 231, 233); + border-right:1px solid rgb(231, 231, 233); + background-image: url(../images/button_out.gif); +} + +.ubw-dropdown li.over{ + padding-left: 5px; + color:#eeeeee; + border-left:1px solid rgb(140, 140, 140); + border-right:1px solid rgb(140, 140, 140); + background-image: url(../images/button_out_dark.png); +} + +.ubw-dropdown li.ubw-dropdown-top-corners{ + border-top:1px solid rgb(241, 241, 244); +} + +.ubw-dropdown li.ubw-dropdown-bottom-corners{ + border-bottom:1px solid rgb(221, 221, 223); +} + +.ubw-button-body{ + position:relative; + float:left; + + width:auto; + height:auto; + overflow:visible + + text-align:center; + vertical-align:middle; + + cursor:pointer; +} + +.ubw-button-content{ + margin:2px; + height:auto; + width:auto; + text-align:center; + overflow:visible; +} + + +.ubw-button-over{ + color:#444444; + background-image: url(../images/button_out.gif); + border-left:1px solid rgb(221, 221, 221); + border-right:1px solid rgb(221, 221, 221); + border-bottom:1px solid rgb(211, 211, 211); + border-top:1px solid rgb(231, 231, 231); +} + +.ubw-button-out{ + color:#555555; + background-image: url(../images/button_out.gif); + border-left:2px solid rgb(231, 231, 233); + border-right:2px solid rgb(231, 231, 233); + border-bottom:2px solid rgb(221, 221, 223); + border-top:2px solid rgb(241, 241, 244); +} + +span.colored{ + color: #0080ff; +} + + + + + +.menuElement{ + position: relative; + float:right; +} + + + diff --git a/resources/library/applications/Notes.wgt/icon.png b/resources/library/applications/Notes.wgt/icon.png new file mode 100644 index 0000000..55debbc Binary files /dev/null and b/resources/library/applications/Notes.wgt/icon.png differ diff --git a/resources/library/applications/Notes.wgt/images/back.png b/resources/library/applications/Notes.wgt/images/back.png new file mode 100644 index 0000000..8c9d0b0 Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/back.png differ diff --git a/resources/library/applications/Notes.wgt/images/shadowcenter.png b/resources/library/applications/Notes.wgt/images/shadowcenter.png new file mode 100644 index 0000000..7b035bd Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/shadowcenter.png differ diff --git a/resources/library/applications/Notes.wgt/images/shadowleft.png b/resources/library/applications/Notes.wgt/images/shadowleft.png new file mode 100644 index 0000000..fc3e2bd Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/shadowleft.png differ diff --git a/resources/library/applications/Notes.wgt/images/shadowright.png b/resources/library/applications/Notes.wgt/images/shadowright.png new file mode 100644 index 0000000..cb899c2 Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/shadowright.png differ diff --git a/resources/library/applications/Notes.wgt/images/stick-but-aminus.png b/resources/library/applications/Notes.wgt/images/stick-but-aminus.png new file mode 100644 index 0000000..a251317 Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/stick-but-aminus.png differ diff --git a/resources/library/applications/Notes.wgt/images/stick-but-aplus.png b/resources/library/applications/Notes.wgt/images/stick-but-aplus.png new file mode 100644 index 0000000..db05e8d Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/stick-but-aplus.png differ diff --git a/resources/library/applications/Notes.wgt/images/stick-but-maximize.png b/resources/library/applications/Notes.wgt/images/stick-but-maximize.png new file mode 100644 index 0000000..19c6fbf Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/stick-but-maximize.png differ diff --git a/resources/library/applications/Notes.wgt/images/stick-but-minimize.png b/resources/library/applications/Notes.wgt/images/stick-but-minimize.png new file mode 100644 index 0000000..f163d09 Binary files /dev/null and b/resources/library/applications/Notes.wgt/images/stick-but-minimize.png differ diff --git a/resources/library/applications/Notes.wgt/index.html b/resources/library/applications/Notes.wgt/index.html new file mode 100644 index 0000000..b8a5188 --- /dev/null +++ b/resources/library/applications/Notes.wgt/index.html @@ -0,0 +1,33 @@ + + + + + + ubwidget + + + + + + + + + + + + + + + + +
      + + + + \ No newline at end of file diff --git a/resources/library/applications/Notes.wgt/js/jquery-1.3.2.min.js b/resources/library/applications/Notes.wgt/js/jquery-1.3.2.min.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/resources/library/applications/Notes.wgt/js/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
      "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
      ","
      "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

      ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
      ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
      ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
      ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/resources/library/applications/Notes.wgt/js/jquery-ui-1.7.2.custom.min.js b/resources/library/applications/Notes.wgt/js/jquery-ui-1.7.2.custom.min.js new file mode 100644 index 0000000..cf19f30 --- /dev/null +++ b/resources/library/applications/Notes.wgt/js/jquery-ui-1.7.2.custom.min.js @@ -0,0 +1,298 @@ +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* + * jQuery UI Draggable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left
      ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=j.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var k=this.handles.split(",");this.handles={};for(var f=0;f
      ');if(/sw|se|ne|nw/.test(h)){g.css({zIndex:++j.zIndex})}if("se"==h){g.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[h]=".ui-resizable-"+h;this.element.append(g)}}this._renderAxis=function(p){p=p||this.element;for(var m in this.handles){if(this.handles[m].constructor==String){this.handles[m]=c(this.handles[m],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var n=c(this.handles[m],this.element),o=0;o=/sw|ne|nw|se|n|s/.test(m)?n.outerHeight():n.outerWidth();var l=["padding",/ne|nw|n/.test(m)?"Top":/se|sw|s/.test(m)?"Bottom":/^e$/.test(m)?"Right":"Left"].join("");p.css(l,o);this._proportionallyResize()}if(!c(this.handles[m]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!e.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}e.axis=i&&i[1]?i[1]:"se"}});if(j.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){c(this).removeClass("ui-resizable-autohide");e._handles.show()},function(){if(!e.resizing){c(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(f){c(f).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){d(this.element);var e=this.element;e.parent().append(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).end().remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement)},_mouseCapture:function(e){var f=false;for(var d in this.handles){if(c(this.handles[d])[0]==e.target){f=true}}return this.options.disabled||!!f},_mouseStart:function(f){var i=this.options,e=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(d.is(".ui-draggable")||(/absolute/).test(d.css("position"))){d.css({position:"absolute",top:e.top,left:e.left})}if(c.browser.opera&&(/relative/).test(d.css("position"))){d.css({position:"relative",top:"auto",left:"auto"})}this._renderProxy();var j=b(this.helper.css("left")),g=b(this.helper.css("top"));if(i.containment){j+=c(i.containment).scrollLeft()||0;g+=c(i.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:j,top:g};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:j,top:g};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:f.pageX,top:f.pageY};this.aspectRatio=(typeof i.aspectRatio=="number")?i.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var h=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",h=="auto"?this.axis+"-resize":h);d.addClass("ui-resizable-resizing");this._propagate("start",f);return true},_mouseDrag:function(d){var g=this.helper,f=this.options,l={},p=this,i=this.originalMousePosition,m=this.axis;var q=(d.pageX-i.left)||0,n=(d.pageY-i.top)||0;var h=this._change[m];if(!h){return false}var k=h.apply(this,[d,q,n]),j=c.browser.msie&&c.browser.version<7,e=this.sizeDiff;if(this._aspectRatio||d.shiftKey){k=this._updateRatio(k,d)}k=this._respectSize(k,d);this._propagate("resize",d);g.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(k);this._trigger("resize",d,this.ui());return false},_mouseStop:function(g){this.resizing=false;var h=this.options,l=this;if(this._helper){var f=this._proportionallyResizeElements,d=f.length&&(/textarea/i).test(f[0].nodeName),e=d&&c.ui.hasScroll(f[0],"left")?0:l.sizeDiff.height,j=d?0:l.sizeDiff.width;var m={width:(l.size.width-j),height:(l.size.height-e)},i=(parseInt(l.element.css("left"),10)+(l.position.left-l.originalPosition.left))||null,k=(parseInt(l.element.css("top"),10)+(l.position.top-l.originalPosition.top))||null;if(!h.animate){this.element.css(c.extend(m,{top:k,left:i}))}l.helper.height(l.size.height);l.helper.width(l.size.width);if(this._helper&&!h.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",g);if(this._helper){this.helper.remove()}return false},_updateCache:function(d){var e=this.options;this.offset=this.helper.offset();if(a(d.left)){this.position.left=d.left}if(a(d.top)){this.position.top=d.top}if(a(d.height)){this.size.height=d.height}if(a(d.width)){this.size.width=d.width}},_updateRatio:function(g,f){var h=this.options,i=this.position,e=this.size,d=this.axis;if(g.height){g.width=(e.height*this.aspectRatio)}else{if(g.width){g.height=(e.width/this.aspectRatio)}}if(d=="sw"){g.left=i.left+(e.width-g.width);g.top=null}if(d=="nw"){g.top=i.top+(e.height-g.height);g.left=i.left+(e.width-g.width)}return g},_respectSize:function(k,f){var i=this.helper,h=this.options,q=this._aspectRatio||f.shiftKey,p=this.axis,s=a(k.width)&&h.maxWidth&&(h.maxWidthk.width),r=a(k.height)&&h.minHeight&&(h.minHeight>k.height);if(g){k.width=h.minWidth}if(r){k.height=h.minHeight}if(s){k.width=h.maxWidth}if(l){k.height=h.maxHeight}var e=this.originalPosition.left+this.originalSize.width,n=this.position.top+this.size.height;var j=/sw|nw|w/.test(p),d=/nw|ne|n/.test(p);if(g&&j){k.left=e-h.minWidth}if(s&&j){k.left=e-h.maxWidth}if(r&&d){k.top=n-h.minHeight}if(l&&d){k.top=n-h.maxHeight}var m=!k.width&&!k.height;if(m&&!k.left&&k.top){k.top=null}else{if(m&&!k.top&&k.left){k.left=null}}return k},_proportionallyResize:function(){var j=this.options;if(!this._proportionallyResizeElements.length){return}var f=this.helper||this.element;for(var e=0;e
      ');var d=c.browser.msie&&c.browser.version<7,f=(d?1:0),g=(d?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+g,height:this.element.outerHeight()+g,position:"absolute",left:this.elementOffset.left-f+"px",top:this.elementOffset.top-f+"px",zIndex:++h.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(f,e,d){return{width:this.originalSize.width+e}},w:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{left:h.left+e,width:f.width-e}},n:function(g,e,d){var i=this.options,f=this.originalSize,h=this.originalPosition;return{top:h.top+d,height:f.height-d}},s:function(f,e,d){return{height:this.originalSize.height+d}},se:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},sw:function(f,e,d){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[f,e,d]))},ne:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[f,e,d]))},nw:function(f,e,d){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[f,e,d]))}},_propagate:function(e,d){c.ui.plugin.call(this,e,[d,this.ui()]);(e!="resize"&&this._trigger(e,d,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}));c.extend(c.ui.resizable,{version:"1.7.2",eventPrefix:"resize",defaults:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,cancel:":input,option",containment:false,delay:0,distance:1,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000}});c.ui.plugin.add("resizable","alsoResize",{start:function(e,f){var d=c(this).data("resizable"),g=d.options;_store=function(h){c(h).each(function(){c(this).data("resizable-alsoresize",{width:parseInt(c(this).width(),10),height:parseInt(c(this).height(),10),left:parseInt(c(this).css("left"),10),top:parseInt(c(this).css("top"),10)})})};if(typeof(g.alsoResize)=="object"&&!g.alsoResize.parentNode){if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];_store(g.alsoResize)}else{c.each(g.alsoResize,function(h,i){_store(h)})}}else{_store(g.alsoResize)}},resize:function(f,h){var e=c(this).data("resizable"),i=e.options,g=e.originalSize,k=e.originalPosition;var j={height:(e.size.height-g.height)||0,width:(e.size.width-g.width)||0,top:(e.position.top-k.top)||0,left:(e.position.left-k.left)||0},d=function(l,m){c(l).each(function(){var p=c(this),q=c(this).data("resizable-alsoresize"),o={},n=m&&m.length?m:["width","height","top","left"];c.each(n||["width","height","top","left"],function(r,t){var s=(q[t]||0)+(j[t]||0);if(s&&s>=0){o[t]=s||null}});if(/relative/.test(p.css("position"))&&c.browser.opera){e._revertToRelativePosition=true;p.css({position:"absolute",top:"auto",left:"auto"})}p.css(o)})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.nodeType){c.each(i.alsoResize,function(l,m){d(l,m)})}else{d(i.alsoResize)}},stop:function(e,f){var d=c(this).data("resizable");if(d._revertToRelativePosition&&c.browser.opera){d._revertToRelativePosition=false;el.css({position:"relative"})}c(this).removeData("resizable-alsoresize-start")}});c.ui.plugin.add("resizable","animate",{stop:function(h,m){var n=c(this).data("resizable"),i=n.options;var g=n._proportionallyResizeElements,d=g.length&&(/textarea/i).test(g[0].nodeName),e=d&&c.ui.hasScroll(g[0],"left")?0:n.sizeDiff.height,k=d?0:n.sizeDiff.width;var f={width:(n.size.width-k),height:(n.size.height-e)},j=(parseInt(n.element.css("left"),10)+(n.position.left-n.originalPosition.left))||null,l=(parseInt(n.element.css("top"),10)+(n.position.top-n.originalPosition.top))||null;n.element.animate(c.extend(f,l&&j?{top:l,left:j}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var o={width:parseInt(n.element.css("width"),10),height:parseInt(n.element.css("height"),10),top:parseInt(n.element.css("top"),10),left:parseInt(n.element.css("left"),10)};if(g&&g.length){c(g[0]).css({width:o.width,height:o.height})}n._updateCache(o);n._propagate("resize",h)}})}});c.ui.plugin.add("resizable","containment",{start:function(e,q){var s=c(this).data("resizable"),i=s.options,k=s.element;var f=i.containment,j=(f instanceof c)?f.get(0):(/parent/.test(f))?k.parent().get(0):f;if(!j){return}s.containerElement=c(j);if(/document/.test(f)||f==document){s.containerOffset={left:0,top:0};s.containerPosition={left:0,top:0};s.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var m=c(j),h=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){h[p]=b(m.css("padding"+o))});s.containerOffset=m.offset();s.containerPosition=m.position();s.containerSize={height:(m.innerHeight()-h[3]),width:(m.innerWidth()-h[1])};var n=s.containerOffset,d=s.containerSize.height,l=s.containerSize.width,g=(c.ui.hasScroll(j,"left")?j.scrollWidth:l),r=(c.ui.hasScroll(j)?j.scrollHeight:d);s.parentData={element:j,left:n.left,top:n.top,width:g,height:r}}},resize:function(f,p){var s=c(this).data("resizable"),h=s.options,e=s.containerSize,n=s.containerOffset,l=s.size,m=s.position,q=s._aspectRatio||f.shiftKey,d={top:0,left:0},g=s.containerElement;if(g[0]!=document&&(/static/).test(g.css("position"))){d=n}if(m.left<(s._helper?n.left:0)){s.size.width=s.size.width+(s._helper?(s.position.left-n.left):(s.position.left-d.left));if(q){s.size.height=s.size.width/h.aspectRatio}s.position.left=h.helper?n.left:0}if(m.top<(s._helper?n.top:0)){s.size.height=s.size.height+(s._helper?(s.position.top-n.top):s.position.top);if(q){s.size.width=s.size.height*h.aspectRatio}s.position.top=s._helper?n.top:0}s.offset.left=s.parentData.left+s.position.left;s.offset.top=s.parentData.top+s.position.top;var k=Math.abs((s._helper?s.offset.left-d.left:(s.offset.left-d.left))+s.sizeDiff.width),r=Math.abs((s._helper?s.offset.top-d.top:(s.offset.top-n.top))+s.sizeDiff.height);var j=s.containerElement.get(0)==s.element.parent().get(0),i=/relative|absolute/.test(s.containerElement.css("position"));if(j&&i){k-=s.parentData.left}if(k+s.size.width>=s.parentData.width){s.size.width=s.parentData.width-k;if(q){s.size.height=s.size.width/s.aspectRatio}}if(r+s.size.height>=s.parentData.height){s.size.height=s.parentData.height-r;if(q){s.size.width=s.size.height*s.aspectRatio}}},stop:function(e,m){var p=c(this).data("resizable"),f=p.options,k=p.position,l=p.containerOffset,d=p.containerPosition,g=p.containerElement;var i=c(p.helper),q=i.offset(),n=i.outerWidth()-p.sizeDiff.width,j=i.outerHeight()-p.sizeDiff.height;if(p._helper&&!f.animate&&(/relative/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}if(p._helper&&!f.animate&&(/static/).test(g.css("position"))){c(this).css({left:q.left-d.left-l.left,width:n,height:j})}}});c.ui.plugin.add("resizable","ghost",{start:function(f,g){var d=c(this).data("resizable"),h=d.options,e=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");d.ghost.appendTo(d.helper)},resize:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost){d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})}},stop:function(e,f){var d=c(this).data("resizable"),g=d.options;if(d.ghost&&d.helper){d.helper.get(0).removeChild(d.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(d,l){var n=c(this).data("resizable"),g=n.options,j=n.size,h=n.originalSize,i=n.originalPosition,m=n.axis,k=g._aspectRatio||d.shiftKey;g.grid=typeof g.grid=="number"?[g.grid,g.grid]:g.grid;var f=Math.round((j.width-h.width)/(g.grid[0]||1))*(g.grid[0]||1),e=Math.round((j.height-h.height)/(g.grid[1]||1))*(g.grid[1]||1);if(/^(se|s|e)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e}else{if(/^(ne)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e}else{if(/^(sw)$/.test(m)){n.size.width=h.width+f;n.size.height=h.height+e;n.position.left=i.left-f}else{n.size.width=h.width+f;n.size.height=h.height+e;n.position.top=i.top-e;n.position.left=i.left-f}}}}});var b=function(d){return parseInt(d,10)||0};var a=function(d){return !isNaN(parseInt(d,10))}})(jQuery);;/* + * jQuery UI Selectable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.selectable",a.extend({},a.ui.mouse,{_init:function(){var b=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]);c.each(function(){var d=a(this);var e=d.offset();a.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a(document.createElement("div")).css({border:"1px dotted black"}).addClass("ui-selectable-helper")},destroy:function(){this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy()},_mouseStart:function(d){var b=this;this.opos=[d.pageX,d.pageY];if(this.options.disabled){return}var c=this.options;this.selectees=a(c.filter,this.element[0]);this._trigger("start",d);a(c.appendTo).append(this.helper);this.helper.css({"z-index":100,position:"absolute",left:d.clientX,top:d.clientY,width:0,height:0});if(c.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var e=a.data(this,"selectable-item");e.startselected=true;if(!d.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;b._trigger("unselecting",d,{unselecting:e.element})}});a(d.target).parents().andSelf().each(function(){var e=a.data(this,"selectable-item");if(e){e.$element.removeClass("ui-unselecting").addClass("ui-selecting");e.unselecting=false;e.selecting=true;e.selected=true;b._trigger("selecting",d,{selecting:e.element});return false}})},_mouseDrag:function(i){var c=this;this.dragged=true;if(this.options.disabled){return}var e=this.options;var d=this.opos[0],h=this.opos[1],b=i.pageX,g=i.pageY;if(d>b){var f=b;b=d;d=f}if(h>g){var f=g;g=h;h=f}this.helper.css({left:d,top:h,width:b-d,height:g-h});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!j||j.element==c.element[0]){return}var k=false;if(e.tolerance=="touch"){k=(!(j.left>b||j.rightg||j.bottomd&&j.righth&&j.bottom=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/* + * jQuery UI Accordion 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.accordion",{_init:function(){var d=this.options,b=this;this.running=0;if(d.collapsible==a.ui.accordion.defaults.collapsible&&d.alwaysOpen!=a.ui.accordion.defaults.alwaysOpen){d.collapsible=!d.alwaysOpen}if(d.navigation){var c=this.element.find("a").filter(d.navigationFilter);if(c.length){if(c.filter(d.header).length){this.active=c}else{this.active=c.parent().parent().prev();c.addClass("ui-accordion-content-active")}}}this.element.addClass("ui-accordion ui-widget ui-helper-reset");if(this.element[0].nodeName=="UL"){this.element.children("li").addClass("ui-accordion-li-fix")}this.headers=this.element.find(d.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){a(this).removeClass("ui-state-focus")});this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");this.active=this._findActive(this.active||d.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");this.active.next().addClass("ui-accordion-content-active");a("").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.find(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);if(a.browser.msie){this.element.find("a").css("zoom","1")}this.resize();this.element.attr("role","tablist");this.headers.attr("role","tab").bind("keydown",function(e){return b._keydown(e)}).next().attr("role","tabpanel");this.headers.not(this.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex","0")}else{this.active.attr("aria-expanded","true").attr("tabIndex","0")}if(!a.browser.safari){this.headers.find("a").attr("tabIndex","-1")}if(d.event){this.headers.bind((d.event)+".accordion",function(e){return b._clickHandler.call(b,e,this)})}},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role").unbind(".accordion").removeData("accordion");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");this.headers.find("a").removeAttr("tabindex");this.headers.children(".ui-icon").remove();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");if(c.autoHeight||c.fillHeight){b.css("height","")}},_setData:function(b,c){if(b=="alwaysOpen"){b="collapsible";c=!c}a.widget.prototype._setData.apply(this,arguments)},_keydown:function(e){var g=this.options,f=a.ui.keyCode;if(g.disabled||e.altKey||e.ctrlKey){return}var d=this.headers.length;var b=this.headers.index(e.target);var c=false;switch(e.keyCode){case f.RIGHT:case f.DOWN:c=this.headers[(b+1)%d];break;case f.LEFT:case f.UP:c=this.headers[(b-1+d)%d];break;case f.SPACE:case f.ENTER:return this._clickHandler({target:e.target},e.target)}if(c){a(e.target).attr("tabIndex","-1");a(c).attr("tabIndex","0");c.focus();return false}return true},resize:function(){var e=this.options,d;if(e.fillSpace){if(a.browser.msie){var b=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}d=this.element.parent().height();if(a.browser.msie){this.element.parent().css("overflow",b)}this.headers.each(function(){d-=a(this).outerHeight()});var c=0;this.headers.next().each(function(){c=Math.max(c,a(this).innerHeight()-a(this).height())}).height(Math.max(0,d-c)).css("overflow","auto")}else{if(e.autoHeight){d=0;this.headers.next().each(function(){d=Math.max(d,a(this).outerHeight())}).height(d)}}},activate:function(b){var c=this._findActive(b)[0];this._clickHandler({target:c},c)},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,f){var d=this.options;if(d.disabled){return false}if(!b.target&&d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var h=this.active.next(),e={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:h},c=(this.active=a([]));this._toggle(c,h,e);return false}var g=a(b.currentTarget||f);var i=g[0]==this.active[0];if(this.running||(!d.collapsible&&i)){return false}this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").find(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");if(!i){g.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").find(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);g.next().addClass("ui-accordion-content-active")}var c=g.next(),h=this.active.next(),e={options:d,newHeader:i&&d.collapsible?a([]):g,oldHeader:this.active,newContent:i&&d.collapsible?a([]):c.find("> *"),oldContent:h.find("> *")},j=this.headers.index(this.active[0])>this.headers.index(g[0]);this.active=i?a([]):g;this._toggle(c,h,e,i,j);return false},_toggle:function(b,i,g,j,k){var d=this.options,m=this;this.toShow=b;this.toHide=i;this.data=g;var c=function(){if(!m){return}return m._completed.apply(m,arguments)};this._trigger("changestart",null,this.data);this.running=i.size()===0?b.size():i.size();if(d.animated){var f={};if(d.collapsible&&j){f={toShow:a([]),toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}else{f={toShow:b,toHide:i,complete:c,down:k,autoHeight:d.autoHeight||d.fillSpace}}if(!d.proxied){d.proxied=d.animated}if(!d.proxiedDuration){d.proxiedDuration=d.duration}d.animated=a.isFunction(d.proxied)?d.proxied(f):d.proxied;d.duration=a.isFunction(d.proxiedDuration)?d.proxiedDuration(f):d.proxiedDuration;var l=a.ui.accordion.animations,e=d.duration,h=d.animated;if(!l[h]){l[h]=function(n){this.slide(n,{easing:h,duration:e||700})}}l[h](f)}else{if(d.collapsible&&j){b.toggle()}else{i.hide();b.show()}c(true)}i.prev().attr("aria-expanded","false").attr("tabIndex","-1").blur();b.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()},_completed:function(b){var c=this.options;this.running=b?0:--this.running;if(this.running){return}if(c.clearStyle){this.toShow.add(this.toHide).css({height:"",overflow:""})}this._trigger("change",null,this.data)}});a.extend(a.ui.accordion,{version:"1.7.2",defaults:{active:null,alwaysOpen:true,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()}},animations:{slide:function(j,h){j=a.extend({easing:"swing",duration:300},j,h);if(!j.toHide.size()){j.toShow.animate({height:"show"},j);return}if(!j.toShow.size()){j.toHide.animate({height:"hide"},j);return}var c=j.toShow.css("overflow"),g,d={},f={},e=["height","paddingTop","paddingBottom"],b;var i=j.toShow;b=i[0].style.width;i.width(parseInt(i.parent().width(),10)-parseInt(i.css("paddingLeft"),10)-parseInt(i.css("paddingRight"),10)-(parseInt(i.css("borderLeftWidth"),10)||0)-(parseInt(i.css("borderRightWidth"),10)||0));a.each(e,function(k,m){f[m]="hide";var l=(""+a.css(j.toShow[0],m)).match(/^([\d+-.]+)(.*)$/);d[m]={value:l[1],unit:l[2]||"px"}});j.toShow.css({height:0,overflow:"hidden"}).show();j.toHide.filter(":hidden").each(j.complete).end().filter(":visible").animate(f,{step:function(k,l){if(l.prop=="height"){g=(l.now-l.start)/(l.end-l.start)}j.toShow[0].style[l.prop]=(g*d[l.prop].value)+d[l.prop].unit},duration:j.duration,easing:j.easing,complete:function(){if(!j.autoHeight){j.toShow.css("height","")}j.toShow.css("width",b);j.toShow.css({overflow:c});j.complete()}})},bounceslide:function(b){this.slide(b,{easing:b.down?"easeOutBounce":"swing",duration:b.down?1000:200})},easeslide:function(b){this.slide(b,{easing:"easeinout",duration:700})}}})})(jQuery);;/* + * jQuery UI Dialog 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * ui.core.js + * ui.draggable.js + * ui.resizable.js + */ +(function(c){var b={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"},a="ui-dialog ui-widget ui-widget-content ui-corner-all ";c.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");var l=this,m=this.options,j=m.title||this.originalTitle||" ",e=c.ui.dialog.getTitleId(this.element),k=(this.uiDialog=c("
      ")).appendTo(document.body).hide().addClass(a+m.dialogClass).css({position:"absolute",overflow:"hidden",zIndex:m.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){(m.closeOnEscape&&n.keyCode&&n.keyCode==c.ui.keyCode.ESCAPE&&l.close(n))}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(n){l.moveToTop(false,n)}),g=this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(k),f=(this.uiDialogTitlebar=c("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(k),i=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){i.addClass("ui-state-hover")},function(){i.removeClass("ui-state-hover")}).focus(function(){i.addClass("ui-state-focus")}).blur(function(){i.removeClass("ui-state-focus")}).mousedown(function(n){n.stopPropagation()}).click(function(n){l.close(n);return false}).appendTo(f),h=(this.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo(i),d=c("").addClass("ui-dialog-title").attr("id",e).html(j).prependTo(f);f.find("*").add(f).disableSelection();(m.draggable&&c.fn.draggable&&this._makeDraggable());(m.resizable&&c.fn.resizable&&this._makeResizable());this._createButtons(m.buttons);this._isOpen=false;(m.bgiframe&&c.fn.bgiframe&&k.bgiframe());(m.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(f){var d=this;if(false===d._trigger("beforeclose",f)){return}(d.overlay&&d.overlay.destroy());d.uiDialog.unbind("keypress.ui-dialog");(d.options.hide?d.uiDialog.hide(d.options.hide,function(){d._trigger("close",f)}):d.uiDialog.hide()&&d._trigger("close",f));c.ui.dialog.overlay.resize();d._isOpen=false;if(d.options.modal){var e=0;c(".ui-dialog").each(function(){if(this!=d.uiDialog[0]){e=Math.max(e,c(this).css("z-index"))}});c.ui.dialog.maxZ=e}},isOpen:function(){return this._isOpen},moveToTop:function(f,e){if((this.options.modal&&!f)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",e)}if(this.options.zIndex>c.ui.dialog.maxZ){c.ui.dialog.maxZ=this.options.zIndex}(this.overlay&&this.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=++c.ui.dialog.maxZ));var d={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++c.ui.dialog.maxZ);this.element.attr(d);this._trigger("focus",e)},open:function(){if(this._isOpen){return}var e=this.options,d=this.uiDialog;this.overlay=e.modal?new c.ui.dialog.overlay(this):null;(d.next().length&&d.appendTo("body"));this._size();this._position(e.position);d.show(e.show);this.moveToTop(true);(e.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode!=c.ui.keyCode.TAB){return}var g=c(":tabbable",this),i=g.filter(":first")[0],f=g.filter(":last")[0];if(h.target==f&&!h.shiftKey){setTimeout(function(){i.focus()},1)}else{if(h.target==i&&h.shiftKey){setTimeout(function(){f.focus()},1)}}}));c([]).add(d.find(".ui-dialog-content :tabbable:first")).add(d.find(".ui-dialog-buttonpane :tabbable:first")).add(d).filter(":first").focus();this._trigger("open");this._isOpen=true},_createButtons:function(g){var f=this,d=false,e=c("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiDialog.find(".ui-dialog-buttonpane").remove();(typeof g=="object"&&g!==null&&c.each(g,function(){return !(d=true)}));if(d){c.each(g,function(h,i){c('').addClass("ui-state-default ui-corner-all").text(h).click(function(){i.apply(f.element[0],arguments)}).hover(function(){c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){c(this).addClass("ui-state-focus")}).blur(function(){c(this).removeClass("ui-state-focus")}).appendTo(e)});e.appendTo(this.uiDialog)}},_makeDraggable:function(){var d=this,f=this.options,e;this.uiDialog.draggable({cancel:".ui-dialog-content",handle:".ui-dialog-titlebar",containment:"document",start:function(){e=f.height;c(this).height(c(this).height()).addClass("ui-dialog-dragging");(f.dragStart&&f.dragStart.apply(d.element[0],arguments))},drag:function(){(f.drag&&f.drag.apply(d.element[0],arguments))},stop:function(){c(this).removeClass("ui-dialog-dragging").height(e);(f.dragStop&&f.dragStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}})},_makeResizable:function(g){g=(g===undefined?this.options.resizable:g);var d=this,f=this.options,e=typeof g=="string"?g:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",alsoResize:this.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:f.minHeight,start:function(){c(this).addClass("ui-dialog-resizing");(f.resizeStart&&f.resizeStart.apply(d.element[0],arguments))},resize:function(){(f.resize&&f.resize.apply(d.element[0],arguments))},handles:e,stop:function(){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();(f.resizeStop&&f.resizeStop.apply(d.element[0],arguments));c.ui.dialog.overlay.resize()}}).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_position:function(i){var e=c(window),f=c(document),g=f.scrollTop(),d=f.scrollLeft(),h=g;if(c.inArray(i,["center","top","right","bottom","left"])>=0){i=[i=="right"||i=="left"?i:"center",i=="top"||i=="bottom"?i:"middle"]}if(i.constructor!=Array){i=["center","middle"]}if(i[0].constructor==Number){d+=i[0]}else{switch(i[0]){case"left":d+=0;break;case"right":d+=e.width()-this.uiDialog.outerWidth();break;default:case"center":d+=(e.width()-this.uiDialog.outerWidth())/2}}if(i[1].constructor==Number){g+=i[1]}else{switch(i[1]){case"top":g+=0;break;case"bottom":g+=e.height()-this.uiDialog.outerHeight();break;default:case"middle":g+=(e.height()-this.uiDialog.outerHeight())/2}}g=Math.max(g,h);this.uiDialog.css({top:g,left:d})},_setData:function(e,f){(b[e]&&this.uiDialog.data(b[e],f));switch(e){case"buttons":this._createButtons(f);break;case"closeText":this.uiDialogTitlebarCloseText.text(f);break;case"dialogClass":this.uiDialog.removeClass(this.options.dialogClass).addClass(a+f);break;case"draggable":(f?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(f);break;case"position":this._position(f);break;case"resizable":var d=this.uiDialog,g=this.uiDialog.is(":data(resizable)");(g&&!f&&d.resizable("destroy"));(g&&typeof f=="string"&&d.resizable("option","handles",f));(g||this._makeResizable(f));break;case"title":c(".ui-dialog-title",this.uiDialogTitlebar).html(f||" ");break;case"width":this.uiDialog.width(f);break}c.widget.prototype._setData.apply(this,arguments)},_size:function(){var e=this.options;this.element.css({height:0,minHeight:0,width:"auto"});var d=this.uiDialog.css({height:"auto",width:e.width}).height();this.element.css({minHeight:Math.max(e.minHeight-d,0),height:e.height=="auto"?"auto":Math.max(e.height-d,0)})}});c.extend(c.ui.dialog,{version:"1.7.2",defaults:{autoOpen:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:"center",resizable:true,show:null,stack:true,title:"",width:300,zIndex:1000},getter:"isOpen",uuid:0,maxZ:0,getTitleId:function(d){return"ui-dialog-title-"+(d.attr("id")||++this.uuid)},overlay:function(d){this.$el=c.ui.dialog.overlay.create(d)}});c.extend(c.ui.dialog.overlay,{instances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(d){return d+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length===0){setTimeout(function(){if(c.ui.dialog.overlay.instances.length){c(document).bind(c.ui.dialog.overlay.events,function(f){var g=c(f.target).parents(".ui-dialog").css("zIndex")||0;return(g>c.ui.dialog.overlay.maxZ)})}},1);c(document).bind("keydown.dialog-overlay",function(f){(e.options.closeOnEscape&&f.keyCode&&f.keyCode==c.ui.keyCode.ESCAPE&&e.close(f))});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var d=c("
      ").appendTo(document.body).addClass("ui-widget-overlay").css({width:this.width(),height:this.height()});(e.options.bgiframe&&c.fn.bgiframe&&d.bgiframe());this.instances.push(d);return d},destroy:function(d){this.instances.splice(c.inArray(this.instances,d),1);if(this.instances.length===0){c([document,window]).unbind(".dialog-overlay")}d.remove();var e=0;c.each(this.instances,function(){e=Math.max(e,this.css("z-index"))});this.maxZ=e},height:function(){if(c.browser.msie&&c.browser.version<7){var e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var d=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(e
      ");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("
      ")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('
      ').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(cthis._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/* + * jQuery UI Tabs 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"
      ",spinner:"Loading…",tabTemplate:'
    • #{label}
    • '}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i
      ')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('
      '))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$(''+appendText+"");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDatenew Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)0&&iValue="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j0&&iValue-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormatmaxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDrawmaxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?''+prevText+"":(hideIfNoPrevNext?"":''+prevText+""));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?''+nextText+"":(hideIfNoPrevNext?"":''+nextText+""));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'":"");var buttonPanel=(showButtonPanel)?'
      '+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'":"")+(isRTL?"":controls)+"
      ":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="=5?' class="ui-datepicker-week-end"':"")+'>'+dayNamesMin[day]+""}calender+=thead+"";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDatemaxDate);tbody+='";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+""}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="
      =currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():" "):(unselectable?''+printDate.getDate()+"":'=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+""))+"
      "+(isMultiMonth?""+((numMonths[0]>0&&col==numMonths[1]-1)?'
      ':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;/* + * jQuery UI Progressbar 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('
      ').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/* + * jQuery UI Effects Fold 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/* + * jQuery UI Effects Highlight 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/* + * jQuery UI Effects Pulsate 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/resources/library/applications/Notes.wgt/js/jquery.disable.text.select.js b/resources/library/applications/Notes.wgt/js/jquery.disable.text.select.js new file mode 100644 index 0000000..19d5041 --- /dev/null +++ b/resources/library/applications/Notes.wgt/js/jquery.disable.text.select.js @@ -0,0 +1,45 @@ +/** + * .disableTextSelect - Disable Text Select Plugin + * + * Version: 1.0 + * Updated: 2007-08-11 + * + * Used to stop users from selecting text + * + * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + **/ + +/** + * Requirements: + * - jQuery (John Resig, http://www.jquery.com/) + **/ +(function($) { + if ($.browser.mozilla) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : 'none' + }); + }); + }; + } else if ($.browser.msie) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('selectstart', function() { + return false; + }); + }); + }; + } else { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).mousedown(function() { + return false; + }); + }); + }; + } +})(jQuery); diff --git a/resources/library/applications/Notes.wgt/js/jquery.ubwidget.js b/resources/library/applications/Notes.wgt/js/jquery.ubwidget.js new file mode 100644 index 0000000..c27b5c1 --- /dev/null +++ b/resources/library/applications/Notes.wgt/js/jquery.ubwidget.js @@ -0,0 +1,360 @@ +(function($) { + jQuery.fn.ubwidget = function(options) { + var settings = jQuery.extend({}, jQuery.fn.ubwidget.defaults, options); + + $(window) + .bind("blur", function(event){ + $("#ubw-catcher").trigger("mousedown"); + //$("#ibutton").hide(); + }) + .trigger("focus"); + + return this.each(function() { + var ubwbody = $(this) + .addClass("ubw-body"); + + var ubwcontainer = $("
      ") + .append(ubwbody) + .addClass("ubw-container") + .css({ + width:settings.width, + height:settings.height + }); + //.mouseenter(function(){$("#ibutton").show(0)}); + + $('body').append(ubwcontainer); + }); + }; + + // Default options + + jQuery.fn.ubwidget.defaults = { + }; + + // Shadows + + jQuery.fn.ubwshadows = function(settings){ + + var shadow = $("
      ") + .addClass("ubw-standard-corners") + .css({ + backgroundColor:"#333377", + opacity:".08", + filter: "alpha(opacity = 18)", + position:"absolute", + top:settings.t, + left:settings.l, + width:settings.w, + height:settings.h + }); + + $(this).before(shadow); + }; + + jQuery.fn.ubwbutton = function(size, arrows) { + var arrows = typeof(arrows) != "undefined" ? arrows = arrows : arrows = {top:0, right:0, bottom:0, left:0}; + var button = null; + var scale = 1.15; + + return this.each(function() { + button = $(this) + .addClass("ubw-button-wrapper") + .disableTextSelect(); + + button.data("size", size); + + var buttonContent = $("
      ") + .addClass("ubw-button-content") + .html($(this).html()); + + $(this).empty(); + + var buttonCanvas = $("
      ") + .addClass("ubw-button-canvas") + .appendTo(button) + .html('
      '); + + if(arrows.top)buttonCanvas.find(".ubw-button-arrowTop").children("img").css({visibility:"visible"}); + if(arrows.right)buttonCanvas.find(".ubw-button-arrowRight").children("img").css({visibility:"visible"}); + if(arrows.bottom)buttonCanvas.find(".ubw-button-arrowBottom").children("img").css({visibility:"visible"}); + if(arrows.left)buttonCanvas.find(".ubw-button-arrowLeft").children("img").css({visibility:"visible"}); + + var buttonBody = buttonCanvas.find(".ubw-button-body") + .addClass("ubw-button-out") + .addClass("ubw-button-corners") + .append(buttonContent) + .bind("mouseenter", buttonOverHandler) + .bind("mouseleave", buttonOutHandler) + .bind("mousedown", buttonDownHandler) + .bind("mouseup", buttonUpHandler) + .css({ + width:size.w, + height:size.h + }); + + setTimeout(function(){button.find(".ubw-button-content").center()}, 10); + }); + + function buttonOverHandler(e) { + var buttonbody = button.find(".ubw-button-body"); + var sizeover = {w:size.w*1.15, h:size.h*1.15}; + + button.find(".ubw-button-body").ubwshadows({ + w:sizeover.w+12, + h:sizeover.h+12, + l:-2, + t:1 + }); + + button.css({zIndex:1}) + .children(".ubw-button-canvas") + .css({ + marginLeft:(buttonbody.width()-sizeover.w)/2, + marginTop:(buttonbody.height()-sizeover.h)/2 + }); + buttonbody.removeClass("ubw-button-out") + .addClass("ubw-button-over") + .css({ + fontSize:"115%", + width:sizeover.w, + height:sizeover.h + }); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_over/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_over/bottom.png"); + }; + + function buttonOutHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + button.find(".ubw-shadow").remove(); + button.css({zIndex:0}); + buttonbody.removeClass("ubw-button-over") + .addClass("ubw-button-out") + .css({ + fontSize:"100%", + width:size.w, + height:size.h + }); + button.children(".ubw-button-canvas") + .css({ + marginLeft:0, + marginTop:0 + }); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_out/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_out/bottom.png"); }; + + function buttonDownHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + buttonbody.css({fontSize:"125%"}); + }; + + function buttonUpHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + buttonbody.css({fontSize:"115%"}); + }; + }; + + jQuery.fn.ubwtoggle = function(activated) { + var activated = typeof(activated) != "undefined" ? activated = 1 : activated = 0; + + return this.each(function(){ + var button = $(this); + var buttonBody = button.find(".ubw-button-body"); + var img = buttonBody.find("img"); + var imgsrc = img.attr("src"); + + buttonBody + .toggle( + function(){ + img.css({visibility:"hidden"}); + }, + function(){ + img.css({visibility:"visible"}); + } + ); + + if(!activated){ + buttonBody.trigger("click"); + }; + }); + }; + + jQuery.fn.ubwdropdown = function(size, list, func){ + return this.each(function(){ + + var button = $(this); + + var dropdownList = $("
        ") + .addClass("ubw-dropdown") + .hide(); + + for(var i=0; i"+list[i]+"") + .addClass("out") + .bind("mouseenter mouseleave", function(){ + $(this).toggleClass("over"); + }) + .bind("click", {i:i}, function(e){ + return function(){ + func(list[e.data.i]); + button.find(".ubw-button-content") + .empty() + .append(list[e.data.i]); + button.find(".ubw-button-body") + .trigger("click"); + //.bind("mouseenter", jQuery.fn.ubwbutton.buttonOverHandler); + }(); + }); + dropdownList.append(newLine); + + if(i==0){ + newLine.addClass("ubw-dropdown-top-corners"); + }else if(i==list.length-1){ + newLine.addClass("ubw-dropdown-bottom-corners"); + } + } + + $(this).ubwbutton(size, {top:0, bottom:1, left:0, right:0}) + .find(".ubw-button-body") + .mouseenter(function(){ + $(this).css({ + backgroundImage:"url(images/button_out_dark.png)", + color:"#eeeeee", + border:"none" + }) + }) + .mouseleave(function(){ + $(this).css({ + backgroundImage:"url(images/button_out.gif)", + color:"#555555", + borderLeft:"2px solid rgb(231, 231, 233)", + borderRight:"2px solid rgb(231, 231, 233)", + borderBottom:"2px solid rgb(221, 221, 223)", + borderTop:"2px solid rgb(241, 241, 244)" + }); + }) + .toggle( + function(){ + dropdownList.show(); + $(this).trigger("mouseleave"); + //$(this).unbind("mouseenter"); + }, + function(){ + dropdownList.hide(); + } + ); + button.find(".ubw-button-canvas").append(dropdownList); + }); + } + + jQuery.fn.scrollHandler = function(){ + return this.each(function(){ + $(this).mouseenter(function(){ + $(this).css({ + backgroundImage:"url(images/button_out_dark.png)", + border:"none", + color:"#eeeeee" + }) + }) + .mouseleave(function(){ + $(this).css({ + backgroundImage:"url(images/button_out.gif)", + color:"#555555", + borderLeft:"2px solid rgb(231, 231, 233)", + borderRight:"2px solid rgb(231, 231, 233)", + borderBottom:"2px solid rgb(221, 221, 223)", + borderTop:"2px solid rgb(241, 241, 244)" + }) + }); + }); + }; + + jQuery.fn.ubwidget.inspector = function(_position, content, button){ + + var position = {x:_position.x, y:_position.y}; + + var catcher = $("
        ") + .css({ + position:"absolute", + width:"100%", + height:"100%" + }) + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + resizeubcanvas() + }); + + $("body").append(catcher); + catcher.hide(); + + var inspector = $("
        ") + .css({ + left:position.x, + top:position.y + }) + .append(content) + .appendTo($("body")) + .hide() + .addClass("ubw-button-corners"); + + var inspectorWidth = inspector.width(); + var inspectorHeight = inspector.height(); + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + + $("body").prepend(button); + //button.addClass("ubw-standard-corners") + button.click(function(){ + catcher.show(); + inspector.show(); + dropShadow(); + resizeubcanvas() + }) + .attr("id", "ibutton"); + + function dropShadow (){ + inspector.ubwshadows({w:inspectorWidth+23,h:inspectorHeight+22,l:50,t:80})} + function removeDropShadow (){ + $(".ubw-shadow").remove()} + + // !! + $(".ubw-shadow") + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + resizeubcanvas(); + }); + + function resizeubcanvas(){ + + if(inspector.css("display")=="none"){ + window.resizeTo($(".ubw-container").width()+68, $(".ubw-container").height()+68); + } + else{ + var inspectorbottom = inspector.position().top+inspector.height()+60; + var inspectorright = inspector.position().left+inspector.width()+45; + + if($(window).width(). +*/ + +function init(){ + + var ubwidget = $("#ubwidget").ubwidget({ +// width:360, +// height:240 + }); + + var checkMinimize = false; + var text = ""; + var winwidth; + var minimizedHeight; + var winheight; + var scroll = false; + var defaultFontSize = 35; + var currentFontSize = defaultFontSize; + var header = $(''); + var fontUp = $(''); + var fontDown = $(''); + var minimize = $(''); + var maximize = $(''); + var title = $(''); + var textField = $('
        '); + var shadow = $("
         
        ") + .appendTo("body"); + var shadowleft = $("") + .appendTo($("#sl")); + var shadowright = $("") + .appendTo($("#sr")); + + $("#ubwidget") + .append(header) + .append(textField); + + fontUp.addClass('menuElement'); + fontDown.addClass('menuElement'); + minimize.addClass('menuElement'); + maximize.addClass('menuElement') + .hide(); + + header.append(maximize) + .append(minimize) + .append(fontUp) + .append(fontDown); + var titletext = header.find('textarea'); + + titletext.click( + function(){ + titletext.focus(); + + }); + + fontDown.click( + function(){ + + var newFontSize = parseInt(currentFontSize) - 3; + + textField.css({ + fontSize : newFontSize + }) + + controlTextField(); + + if(window.sankore){ + window.sankore.setPreference("fontSize", newFontSize); + } + + if(!checkMinimize) + textField.focus(); + + var sel = window.getSelection(); + sel.removeAllRanges(); + }); + + fontUp.click( + function(){ + var newFontSize = parseInt(currentFontSize) + 3; + + textField.css({ + fontSize : newFontSize + }) + + controlTextField(); + + if(window.sankore){ + window.sankore.setPreference("fontSize", newFontSize); + } + + if(!checkMinimize) + textField.focus(); + var sel = window.getSelection(); + sel.removeAllRanges(); + }); + + minimize.click( + function(){ + $('.ubw-container').css("min-height", "26px") + $('.ubw-container').animate({ + height:"26px" + },500); + minimizedHeight = $('.ubw-container').height(); + minimize.hide(); + maximize.show(); + controlTextField(); + $('#headtitle').show(); + $('#headtitle').focus(); + //window.resizeTo($('.ubw-container').width(),0); + checkMinimize = true; + + }); + + maximize.click( + function(){ + var lastHeight = String(minimizedHeight)+'px'; + $('.ubw-container').animate({ + height: lastHeight + },500, function(){$('.ubw-container').css("min-height", "200px").css("height","")}); + + maximize.hide(); + minimize.show(); + $('#headtitle').hide(); + //textField.focus(); + //window.resizeTo($('.ubw-container').width()+15,minimizedHeight+20); + checkMinimize = false; + + }); + + header + .append(title); + title + .addClass('menu'); + header + .addClass('head'); + textField + .addClass("textField") + .css("fontSize",currentFontSize) + .attr('contentEditable','true') + .keyup(function(){ + if(window.sankore){ + window.sankore.setPreference("noteText", textField.html()); + } + controlTextField(); + //$('#headtitle').hide(); + }); + if(textField.html().length === 0){ + textField.focus(); + } + titletext.attr('rows','1'); + + function controlTextField(){ + if(textField.text().length < 25) + $('#headtitle').val(textField.text()); + else + $('#headtitle').val(textField.text().substr(0,25) + "..."); + + textField.css({ + height : $('.ubw-container').height()-28 + }) + + if(textField.text().length == 0){ + textField.css({ + fontSize: defaultFontSize + }); + } + + currentFontSize = textField.css('fontSize').replace('px',''); + + } + + textField.bind('paste', function(e) { + controlTextField(); + }); + + $('#headtitle').hide(); + + if(window.sankore){ + text = window.sankore.preference('noteText', text); + currentFontSize = window.sankore.preference('fontSize', defaultFontSize); + $('.ubw-container').css({ +// width:window.innerWidth - 2, +// height:window.innerHeight - 20 + }); + + if(checkMinimize){ + minimize.trigger("click"); + }; + + textField.css({ + fontSize : parseInt(currentFontSize) + }) + if(text) + textField.html(text); + else + textField.html("Saisir votre texte ici ..."); + textField.focus(); + } + + window.onresize = function(){ + winwidth = window.innerWidth; + winheight = window.innerHeight; + +// if(winwidth <= 290) +// { +// window.resizeTo(290,winheight); +// } +// if(winheight <= 100) +// { +// window.resizeTo(winwidth,100); +// } +// if(winheight > 600) +// { +// window.resizeTo(winwidth,600); +// } + +// $('.ubw-container').width(winwidth-2); +// + if(checkMinimize) + minimizedHeight = winheight-40; + + + controlTextField(); + } + + if (window.widget) { + window.widget.onleave = function(){ + window.sankore.setPreference("noteText", textField.html()); + window.sankore.setPreference("fontSize", newFontSize); + } + } +} diff --git a/resources/library/applications/OpenStreetMap.wgt/api/OpenLayers.js b/resources/library/applications/OpenStreetMap.wgt/api/OpenLayers.js new file mode 100755 index 0000000..9523007 --- /dev/null +++ b/resources/library/applications/OpenStreetMap.wgt/api/OpenLayers.js @@ -0,0 +1,2885 @@ +/* + + OpenLayers.js -- OpenLayers Map Viewer Library + + Copyright 2005-2011 OpenLayers Contributors, released under the FreeBSD + license. Please see http://svn.openlayers.org/trunk/openlayers/license.txt + for the full text of the license. + + Includes compressed code under the following licenses: + + (For uncompressed versions of the code used please see the + OpenLayers SVN repository: ) + +*/ + +/* Contains portions of Prototype.js: + * + * Prototype JavaScript framework, version 1.4.0 + * (c) 2005 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://prototype.conio.net/ + * + *--------------------------------------------------------------------------*/ + +/** +* +* Contains portions of Rico +* +* Copyright 2005 Sabre Airline Solutions +* +* Licensed under the Apache License, Version 2.0 (the "License"); you +* may not use this file except in compliance with the License. You +* may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +* implied. See the License for the specific language governing +* permissions and limitations under the License. +* +**/ + +/** + * Contains XMLHttpRequest.js + * Copyright 2007 Sergey Ilinsky (http://www.ilinsky.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +/** + * Contains portions of Gears + * + * Copyright 2007, Google Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Google Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Sets up google.gears.*, which is *the only* supported way to access Gears. + * + * Circumvent this file at your own risk! + * + * In the future, Gears may automatically define google.gears.* without this + * file. Gears may use these objects to transparently fix bugs and compatibility + * issues. Applications that use the code below will continue to work seamlessly + * when that happens. + */ + +/** + * OpenLayers.Util.pagePosition is based on Yahoo's getXY method, which is + * Copyright (c) 2006, Yahoo! Inc. + * All rights reserved. + * + * Redistribution and use of this software in source and binary forms, with or + * without modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * * Neither the name of Yahoo! Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission of Yahoo! Inc. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */(function(){if(window.google&&google.gears){return;} +var factory=null;if(typeof GearsFactory!='undefined'){factory=new GearsFactory();}else{try{factory=new ActiveXObject('Gears.Factory');if(factory.getBuildInfo().indexOf('ie_mobile')!=-1){factory.privateSetGlobalObject(this);}}catch(e){if((typeof navigator.mimeTypes!='undefined')&&navigator.mimeTypes["application/x-googlegears"]){factory=document.createElement("object");factory.style.display="none";factory.width=0;factory.height=0;factory.type="application/x-googlegears";document.documentElement.appendChild(factory);}}} +if(!factory){return;} +if(!window.google){google={};} +if(!google.gears){google.gears={factory:factory};}})();var OpenLayers={VERSION_NUMBER:"Release 2.11",singleFile:true,_getScriptLocation:(function(){var r=new RegExp("(^|(.*?\\/))(OpenLayers\.js)(\\?|$)"),s=document.getElementsByTagName('script'),src,m,l="";for(var i=0,len=s.length;i1){var newArgs=[C,P].concat(Array.prototype.slice.call(arguments).slice(1,len-1),F);OpenLayers.inherit.apply(null,newArgs);}else{C.prototype=F;} +return C;};OpenLayers.Class.isPrototype=function(){};OpenLayers.Class.create=function(){return function(){if(arguments&&arguments[0]!=OpenLayers.Class.isPrototype){this.initialize.apply(this,arguments);}};};OpenLayers.Class.inherit=function(P){var C=function(){P.call(this);};var newArgs=[C].concat(Array.prototype.slice.call(arguments));OpenLayers.inherit.apply(null,newArgs);return C.prototype;};OpenLayers.inherit=function(C,P){var F=function(){};F.prototype=P.prototype;C.prototype=new F;var i,l,o;for(i=2,l=arguments.length;i0;},CLASS_NAME:"OpenLayers.Protocol.Response"});OpenLayers.Protocol.Response.SUCCESS=1;OpenLayers.Protocol.Response.FAILURE=0;OpenLayers.Protocol.SQL=OpenLayers.Class(OpenLayers.Protocol,{databaseName:'ol',tableName:"ol_vector_features",postReadFiltering:true,initialize:function(options){OpenLayers.Protocol.prototype.initialize.apply(this,[options]);},destroy:function(){OpenLayers.Protocol.prototype.destroy.apply(this);},supported:function(){return false;},evaluateFilter:function(feature,filter){return filter&&this.postReadFiltering?filter.evaluate(feature):true;},CLASS_NAME:"OpenLayers.Protocol.SQL"});OpenLayers.Console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){},userError:function(error){alert(error);},assert:function(){},dir:function(){},dirxml:function(){},trace:function(){},group:function(){},groupEnd:function(){},time:function(){},timeEnd:function(){},profile:function(){},profileEnd:function(){},count:function(){},CLASS_NAME:"OpenLayers.Console"};(function(){var scripts=document.getElementsByTagName("script");for(var i=0,len=scripts.length;i0){fig=parseFloat(num.toPrecision(sig));} +return fig;},format:function(num,dec,tsep,dsep){dec=(typeof dec!="undefined")?dec:0;tsep=(typeof tsep!="undefined")?tsep:OpenLayers.Number.thousandsSeparator;dsep=(typeof dsep!="undefined")?dsep:OpenLayers.Number.decimalSeparator;if(dec!=null){num=parseFloat(num.toFixed(dec));} +var parts=num.toString().split(".");if(parts.length==1&&dec==null){dec=0;} +var integer=parts[0];if(tsep){var thousands=/(-?[0-9]+)([0-9]{3})/;while(thousands.test(integer)){integer=integer.replace(thousands,"$1"+tsep+"$2");}} +var str;if(dec==0){str=integer;}else{var rem=parts.length>1?parts[1]:"0";if(dec!=null){rem=rem+new Array(dec-rem.length+1).join("0");} +str=integer+dsep+rem;} +return str;}};if(!Number.prototype.limitSigDigs){Number.prototype.limitSigDigs=function(sig){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Number.limitSigDigs'}));return OpenLayers.Number.limitSigDigs(this,sig);};} +OpenLayers.Function={bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},bindAsEventListener:function(func,object){return function(event){return func.call(object,event||window.event);};},False:function(){return false;},True:function(){return true;},Void:function(){}};if(!Function.prototype.bind){Function.prototype.bind=function(){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bind'}));Array.prototype.unshift.apply(arguments,[this]);return OpenLayers.Function.bind.apply(null,arguments);};} +if(!Function.prototype.bindAsEventListener){Function.prototype.bindAsEventListener=function(object){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'OpenLayers.Function.bindAsEventListener'}));return OpenLayers.Function.bindAsEventListener(this,object);};} +OpenLayers.Array={filter:function(array,callback,caller){var selected=[];if(Array.prototype.filter){selected=array.filter(callback,caller);}else{var len=array.length;if(typeof callback!="function"){throw new TypeError();} +for(var i=0;ithis.right)){this.right=bounds.right;} +if((this.top==null)||(bounds.top>this.top)){this.top=bounds.top;}}}},containsLonLat:function(ll,inclusive){return this.contains(ll.lon,ll.lat,inclusive);},containsPixel:function(px,inclusive){return this.contains(px.x,px.y,inclusive);},contains:function(x,y,inclusive){if(inclusive==null){inclusive=true;} +if(x==null||y==null){return false;} +x=OpenLayers.Util.toFloat(x);y=OpenLayers.Util.toFloat(y);var contains=false;if(inclusive){contains=((x>=this.left)&&(x<=this.right)&&(y>=this.bottom)&&(y<=this.top));}else{contains=((x>this.left)&&(xthis.bottom)&&(y=this.bottom)&&(bounds.bottom<=this.top))||((this.bottom>=bounds.bottom)&&(this.bottom<=bounds.top)));var inTop=(((bounds.top>=this.bottom)&&(bounds.top<=this.top))||((this.top>bounds.bottom)&&(this.top=this.left)&&(bounds.left<=this.right))||((this.left>=bounds.left)&&(this.left<=bounds.right)));var inRight=(((bounds.right>=this.left)&&(bounds.right<=this.right))||((this.right>=bounds.left)&&(this.right<=bounds.right)));intersects=((inBottom||inTop)&&(inLeft||inRight));} +return intersects;},containsBounds:function(bounds,partial,inclusive){if(partial==null){partial=false;} +if(inclusive==null){inclusive=true;} +var bottomLeft=this.contains(bounds.left,bounds.bottom,inclusive);var bottomRight=this.contains(bounds.right,bounds.bottom,inclusive);var topLeft=this.contains(bounds.left,bounds.top,inclusive);var topRight=this.contains(bounds.right,bounds.top,inclusive);return(partial)?(bottomLeft||bottomRight||topLeft||topRight):(bottomLeft&&bottomRight&&topLeft&&topRight);},determineQuadrant:function(lonlat){var quadrant="";var center=this.getCenterLonLat();quadrant+=(lonlat.lat=maxExtent.right&&newBounds.right>maxExtent.right){newBounds=newBounds.add(-maxExtent.getWidth(),0);}} +return newBounds;},CLASS_NAME:"OpenLayers.Bounds"});OpenLayers.Bounds.fromString=function(str,reverseAxisOrder){var bounds=str.split(",");return OpenLayers.Bounds.fromArray(bounds,reverseAxisOrder);};OpenLayers.Bounds.fromArray=function(bbox,reverseAxisOrder){return reverseAxisOrder===true?new OpenLayers.Bounds(parseFloat(bbox[1]),parseFloat(bbox[0]),parseFloat(bbox[3]),parseFloat(bbox[2])):new OpenLayers.Bounds(parseFloat(bbox[0]),parseFloat(bbox[1]),parseFloat(bbox[2]),parseFloat(bbox[3]));};OpenLayers.Bounds.fromSize=function(size){return new OpenLayers.Bounds(0,size.h,size.w,0);};OpenLayers.Bounds.oppositeQuadrant=function(quadrant){var opp="";opp+=(quadrant.charAt(0)=='t')?'b':'t';opp+=(quadrant.charAt(1)=='l')?'r':'l';return opp;};OpenLayers.Element={visible:function(element){return OpenLayers.Util.getElement(element).style.display!='none';},toggle:function(){for(var i=0,len=arguments.length;imaxExtent.right){newLonLat.lon-=maxExtent.getWidth();}} +return newLonLat;},CLASS_NAME:"OpenLayers.LonLat"});OpenLayers.LonLat.fromString=function(str){var pair=str.split(",");return new OpenLayers.LonLat(pair[0],pair[1]);};OpenLayers.LonLat.fromArray=function(arr){var gotArr=OpenLayers.Util.isArray(arr),lon=gotArr&&arr[0],lat=gotArr&&arr[1];return new OpenLayers.LonLat(lon,lat);};OpenLayers.Pixel=OpenLayers.Class({x:0.0,y:0.0,initialize:function(x,y){this.x=parseFloat(x);this.y=parseFloat(y);},toString:function(){return("x="+this.x+",y="+this.y);},clone:function(){return new OpenLayers.Pixel(this.x,this.y);},equals:function(px){var equals=false;if(px!=null){equals=((this.x==px.x&&this.y==px.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(px.x)&&isNaN(px.y)));} +return equals;},distanceTo:function(px){return Math.sqrt(Math.pow(this.x-px.x,2)+ +Math.pow(this.y-px.y,2));},add:function(x,y){if((x==null)||(y==null)){var msg=OpenLayers.i18n("pixelAddError");OpenLayers.Console.error(msg);return null;} +return new OpenLayers.Pixel(this.x+x,this.y+y);},offset:function(px){var newPx=this.clone();if(px){newPx=this.add(px.x,px.y);} +return newPx;},CLASS_NAME:"OpenLayers.Pixel"});OpenLayers.Size=OpenLayers.Class({w:0.0,h:0.0,initialize:function(w,h){this.w=parseFloat(w);this.h=parseFloat(h);},toString:function(){return("w="+this.w+",h="+this.h);},clone:function(){return new OpenLayers.Size(this.w,this.h);},equals:function(sz){var equals=false;if(sz!=null){equals=((this.w==sz.w&&this.h==sz.h)||(isNaN(this.w)&&isNaN(this.h)&&isNaN(sz.w)&&isNaN(sz.h)));} +return equals;},CLASS_NAME:"OpenLayers.Size"});OpenLayers.Util=OpenLayers.Util||{};OpenLayers.Util.getElement=function(){var elements=[];for(var i=0,len=arguments.length;i=0;i--){if(array[i]==item){array.splice(i,1);}} +return array;};OpenLayers.Util.clearArray=function(array){OpenLayers.Console.warn(OpenLayers.i18n("methodDeprecated",{'newMethod':'array = []'}));array.length=0;};OpenLayers.Util.indexOf=function(array,obj){if(typeof array.indexOf=="function"){return array.indexOf(obj);}else{for(var i=0,len=array.length;i=0.0&&parseFloat(opacity)<1.0){element.style.filter='alpha(opacity='+(opacity*100)+')';element.style.opacity=opacity;}else if(parseFloat(opacity)==1.0){element.style.filter='';element.style.opacity='';}};OpenLayers.Util.createDiv=function(id,px,sz,imgURL,position,border,overflow,opacity){var dom=document.createElement('div');if(imgURL){dom.style.backgroundImage='url('+imgURL+')';} +if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");} +if(!position){position="absolute";} +OpenLayers.Util.modifyDOMElement(dom,id,px,sz,position,border,overflow,opacity);return dom;};OpenLayers.Util.createImage=function(id,px,sz,imgURL,position,border,opacity,delayDisplay){var image=document.createElement("img");if(!id){id=OpenLayers.Util.createUniqueID("OpenLayersDiv");} +if(!position){position="relative";} +OpenLayers.Util.modifyDOMElement(image,id,px,sz,position,border,null,opacity);if(delayDisplay){image.style.display="none";OpenLayers.Event.observe(image,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,image));OpenLayers.Event.observe(image,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,image));} +image.style.alt=id;image.galleryImg="no";if(imgURL){image.src=imgURL;} +return image;};OpenLayers.Util.setOpacity=function(element,opacity){OpenLayers.Util.modifyDOMElement(element,null,null,null,null,null,null,opacity);};OpenLayers.Util.onImageLoad=function(){if(!this.viewRequestID||(this.map&&this.viewRequestID==this.map.viewRequestID)){this.style.display="";} +OpenLayers.Element.removeClass(this,"olImageLoadError");};OpenLayers.IMAGE_RELOAD_ATTEMPTS=0;OpenLayers.Util.onImageLoadError=function(){this._attempts=(this._attempts)?(this._attempts+1):1;if(this._attempts<=OpenLayers.IMAGE_RELOAD_ATTEMPTS){var urls=this.urls;if(urls&&OpenLayers.Util.isArray(urls)&&urls.length>1){var src=this.src.toString();var current_url,k;for(k=0;current_url=urls[k];k++){if(src.indexOf(current_url)!=-1){break;}} +var guess=Math.floor(urls.length*Math.random());var new_url=urls[guess];k=0;while(new_url==current_url&&k++<4){guess=Math.floor(urls.length*Math.random());new_url=urls[guess];} +this.src=src.replace(current_url,new_url);}else{this.src=this.src;}}else{OpenLayers.Element.addClass(this,"olImageLoadError");} +this.style.display="";};OpenLayers.Util.alphaHackNeeded=null;OpenLayers.Util.alphaHack=function(){if(OpenLayers.Util.alphaHackNeeded==null){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);var filter=false;try{filter=!!(document.body.filters);}catch(e){} +OpenLayers.Util.alphaHackNeeded=(filter&&(version>=5.5)&&(version<7));} +return OpenLayers.Util.alphaHackNeeded;};OpenLayers.Util.modifyAlphaImageDiv=function(div,id,px,sz,imgURL,position,border,sizing,opacity){OpenLayers.Util.modifyDOMElement(div,id,px,sz,position,null,null,opacity);var img=div.childNodes[0];if(imgURL){img.src=imgURL;} +OpenLayers.Util.modifyDOMElement(img,div.id+"_innerImage",null,sz,"relative",border);if(OpenLayers.Util.alphaHack()){if(div.style.display!="none"){div.style.display="inline-block";} +if(sizing==null){sizing="scale";} +div.style.filter="progid:DXImageTransform.Microsoft"+".AlphaImageLoader(src='"+img.src+"', "+"sizingMethod='"+sizing+"')";if(parseFloat(div.style.opacity)>=0.0&&parseFloat(div.style.opacity)<1.0){div.style.filter+=" alpha(opacity="+div.style.opacity*100+")";} +img.style.filter="alpha(opacity=0)";}};OpenLayers.Util.createAlphaImageDiv=function(id,px,sz,imgURL,position,border,sizing,opacity,delayDisplay){var div=OpenLayers.Util.createDiv();var img=OpenLayers.Util.createImage(null,null,null,null,null,null,null,false);div.appendChild(img);if(delayDisplay){img.style.display="none";OpenLayers.Event.observe(img,"load",OpenLayers.Function.bind(OpenLayers.Util.onImageLoad,div));OpenLayers.Event.observe(img,"error",OpenLayers.Function.bind(OpenLayers.Util.onImageLoadError,div));} +OpenLayers.Util.modifyAlphaImageDiv(div,id,px,sz,imgURL,position,border,sizing,opacity);return div;};OpenLayers.Util.upperCaseObject=function(object){var uObject={};for(var key in object){uObject[key.toUpperCase()]=object[key];} +return uObject;};OpenLayers.Util.applyDefaults=function(to,from){to=to||{};var fromIsEvt=typeof window.Event=="function"&&from instanceof window.Event;for(var key in from){if(to[key]===undefined||(!fromIsEvt&&from.hasOwnProperty&&from.hasOwnProperty(key)&&!to.hasOwnProperty(key))){to[key]=from[key];}} +if(!fromIsEvt&&from&&from.hasOwnProperty&&from.hasOwnProperty('toString')&&!to.hasOwnProperty('toString')){to.toString=from.toString;} +return to;};OpenLayers.Util.getParameterString=function(params){var paramsArray=[];for(var key in params){var value=params[key];if((value!=null)&&(typeof value!='function')){var encodedValue;if(typeof value=='object'&&value.constructor==Array){var encodedItemArray=[];var item;for(var itemIndex=0,len=value.length;itemIndex1e-12&&--iterLimit>0){var sinLambda=Math.sin(lambda),cosLambda=Math.cos(lambda);var sinSigma=Math.sqrt((cosU2*sinLambda)*(cosU2*sinLambda)+ +(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma==0){return 0;} +var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cosSigma);var alpha=Math.asin(cosU1*cosU2*sinLambda/sinSigma);var cosSqAlpha=Math.cos(alpha)*Math.cos(alpha);var cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*f*Math.sin(alpha)*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));} +if(iterLimit==0){return NaN;} +var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- +B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);var d=s.toFixed(3)/1000;return d;};OpenLayers.Util.destinationVincenty=function(lonlat,brng,dist){var u=OpenLayers.Util;var ct=u.VincentyConstants;var a=ct.a,b=ct.b,f=ct.f;var lon1=lonlat.lon;var lat1=lonlat.lat;var s=dist;var alpha1=u.rad(brng);var sinAlpha1=Math.sin(alpha1);var cosAlpha1=Math.cos(alpha1);var tanU1=(1-f)*Math.tan(u.rad(lat1));var cosU1=1/Math.sqrt((1+tanU1*tanU1)),sinU1=tanU1*cosU1;var sigma1=Math.atan2(tanU1,cosAlpha1);var sinAlpha=cosU1*sinAlpha1;var cosSqAlpha=1-sinAlpha*sinAlpha;var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var sigma=s/(b*A),sigmaP=2*Math.PI;while(Math.abs(sigma-sigmaP)>1e-12){var cos2SigmaM=Math.cos(2*sigma1+sigma);var sinSigma=Math.sin(sigma);var cosSigma=Math.cos(sigma);var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)- +B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));sigmaP=sigma;sigma=s/(b*A)+deltaSigma;} +var tmp=sinU1*sinSigma-cosU1*cosSigma*cosAlpha1;var lat2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1-f)*Math.sqrt(sinAlpha*sinAlpha+tmp*tmp));var lambda=Math.atan2(sinSigma*sinAlpha1,cosU1*cosSigma-sinU1*sinSigma*cosAlpha1);var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));var revAz=Math.atan2(sinAlpha,-tmp);return new OpenLayers.LonLat(lon1+u.deg(L),u.deg(lat2));};OpenLayers.Util.getParameters=function(url){url=(url===null||url===undefined)?window.location.href:url;var paramsString="";if(OpenLayers.String.contains(url,'?')){var start=url.indexOf('?')+1;var end=OpenLayers.String.contains(url,"#")?url.indexOf('#'):url.length;paramsString=url.substring(start,end);} +var parameters={};var pairs=paramsString.split(/[&;]/);for(var i=0,len=pairs.length;i1.0)?(1.0/scale):scale;return normScale;};OpenLayers.Util.getResolutionFromScale=function(scale,units){var resolution;if(scale){if(units==null){units="degrees";} +var normScale=OpenLayers.Util.normalizeScale(scale);resolution=1/(normScale*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH);} +return resolution;};OpenLayers.Util.getScaleFromResolution=function(resolution,units){if(units==null){units="degrees";} +var scale=resolution*OpenLayers.INCHES_PER_UNIT[units]*OpenLayers.DOTS_PER_INCH;return scale;};OpenLayers.Util.safeStopPropagation=function(evt){OpenLayers.Event.stop(evt,true);};OpenLayers.Util.pagePosition=function(forElement){var pos=[0,0];var viewportElement=OpenLayers.Util.getViewportElement();if(!forElement||forElement==window||forElement==viewportElement){return pos;} +var BUGGY_GECKO_BOX_OBJECT=OpenLayers.IS_GECKO&&document.getBoxObjectFor&&OpenLayers.Element.getStyle(forElement,'position')=='absolute'&&(forElement.style.top==''||forElement.style.left=='');var parent=null;var box;if(forElement.getBoundingClientRect){box=forElement.getBoundingClientRect();var scrollTop=viewportElement.scrollTop;var scrollLeft=viewportElement.scrollLeft;pos[0]=box.left+scrollLeft;pos[1]=box.top+scrollTop;}else if(document.getBoxObjectFor&&!BUGGY_GECKO_BOX_OBJECT){box=document.getBoxObjectFor(forElement);var vpBox=document.getBoxObjectFor(viewportElement);pos[0]=box.screenX-vpBox.screenX;pos[1]=box.screenY-vpBox.screenY;}else{pos[0]=forElement.offsetLeft;pos[1]=forElement.offsetTop;parent=forElement.offsetParent;if(parent!=forElement){while(parent){pos[0]+=parent.offsetLeft;pos[1]+=parent.offsetTop;parent=parent.offsetParent;}} +var browser=OpenLayers.BROWSER_NAME;if(browser=="opera"||(browser=="safari"&&OpenLayers.Element.getStyle(forElement,'position')=='absolute')){pos[1]-=document.body.offsetTop;} +parent=forElement.offsetParent;while(parent&&parent!=document.body){pos[0]-=parent.scrollLeft;if(browser!="opera"||parent.tagName!='TR'){pos[1]-=parent.scrollTop;} +parent=parent.offsetParent;}} +return pos;};OpenLayers.Util.getViewportElement=function(){var viewportElement=arguments.callee.viewportElement;if(viewportElement==undefined){viewportElement=(OpenLayers.BROWSER_NAME=="msie"&&document.compatMode!='CSS1Compat')?document.body:document.documentElement;arguments.callee.viewportElement=viewportElement;} +return viewportElement;};OpenLayers.Util.isEquivalentUrl=function(url1,url2,options){options=options||{};OpenLayers.Util.applyDefaults(options,{ignoreCase:true,ignorePort80:true,ignoreHash:true});var urlObj1=OpenLayers.Util.createUrlObject(url1,options);var urlObj2=OpenLayers.Util.createUrlObject(url2,options);for(var key in urlObj1){if(key!=="args"){if(urlObj1[key]!=urlObj2[key]){return false;}}} +for(var key in urlObj1.args){if(urlObj1.args[key]!=urlObj2.args[key]){return false;} +delete urlObj2.args[key];} +for(var key in urlObj2.args){return false;} +return true;};OpenLayers.Util.createUrlObject=function(url,options){options=options||{};if(!(/^\w+:\/\//).test(url)){var loc=window.location;var port=loc.port?":"+loc.port:"";var fullUrl=loc.protocol+"//"+loc.host.split(":").shift()+port;if(url.indexOf("/")===0){url=fullUrl+url;}else{var parts=loc.pathname.split("/");parts.pop();url=fullUrl+parts.join("/")+"/"+url;}} +if(options.ignoreCase){url=url.toLowerCase();} +var a=document.createElement('a');a.href=url;var urlObject={};urlObject.host=a.host.split(":").shift();urlObject.protocol=a.protocol;if(options.ignorePort80){urlObject.port=(a.port=="80"||a.port=="0")?"":a.port;}else{urlObject.port=(a.port==""||a.port=="0")?"80":a.port;} +urlObject.hash=(options.ignoreHash||a.hash==="#")?"":a.hash;var queryString=a.search;if(!queryString){var qMark=url.indexOf("?");queryString=(qMark!=-1)?url.substr(qMark):"";} +urlObject.args=OpenLayers.Util.getParameters(queryString);urlObject.pathname=(a.pathname.charAt(0)=="/")?a.pathname:"/"+a.pathname;return urlObject;};OpenLayers.Util.removeTail=function(url){var head=null;var qMark=url.indexOf("?");var hashMark=url.indexOf("#");if(qMark==-1){head=(hashMark!=-1)?url.substr(0,hashMark):url;}else{head=(hashMark!=-1)?url.substr(0,Math.min(qMark,hashMark)):url.substr(0,qMark);} +return head;};OpenLayers.IS_GECKO=(function(){var ua=navigator.userAgent.toLowerCase();return ua.indexOf("webkit")==-1&&ua.indexOf("gecko")!=-1;})();OpenLayers.BROWSER_NAME=(function(){var name="";var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("opera")!=-1){name="opera";}else if(ua.indexOf("msie")!=-1){name="msie";}else if(ua.indexOf("safari")!=-1){name="safari";}else if(ua.indexOf("mozilla")!=-1){if(ua.indexOf("firefox")!=-1){name="firefox";}else{name="mozilla";}} +return name;})();OpenLayers.Util.getBrowserName=function(){return OpenLayers.BROWSER_NAME;};OpenLayers.Util.getRenderedDimensions=function(contentHTML,size,options){var w,h;var container=document.createElement("div");container.style.visibility="hidden";var containerElement=(options&&options.containerElement)?options.containerElement:document.body;if(size){if(size.w){w=size.w;container.style.width=w+"px";}else if(size.h){h=size.h;container.style.height=h+"px";}} +if(options&&options.displayClass){container.className=options.displayClass;} +var content=document.createElement("div");content.innerHTML=contentHTML;content.style.overflow="visible";if(content.childNodes){for(var i=0,l=content.childNodes.length;i=60){coordinateseconds-=60;coordinateminutes+=1;if(coordinateminutes>=60){coordinateminutes-=60;coordinatedegrees+=1;}} +if(coordinatedegrees<10){coordinatedegrees="0"+coordinatedegrees;} +var str=coordinatedegrees+"\u00B0";if(dmsOption.indexOf('dm')>=0){if(coordinateminutes<10){coordinateminutes="0"+coordinateminutes;} +str+=coordinateminutes+"'";if(dmsOption.indexOf('dms')>=0){if(coordinateseconds<10){coordinateseconds="0"+coordinateseconds;} +str+=coordinateseconds+'"';}} +if(axis=="lon"){str+=coordinate<0?OpenLayers.i18n("W"):OpenLayers.i18n("E");}else{str+=coordinate<0?OpenLayers.i18n("S"):OpenLayers.i18n("N");} +return str;};OpenLayers.Format=OpenLayers.Class({options:null,externalProjection:null,internalProjection:null,data:null,keepData:false,initialize:function(options){OpenLayers.Util.extend(this,options);this.options=options;},destroy:function(){},read:function(data){OpenLayers.Console.userError(OpenLayers.i18n("readNotImplemented"));},write:function(object){OpenLayers.Console.userError(OpenLayers.i18n("writeNotImplemented"));},CLASS_NAME:"OpenLayers.Format"});OpenLayers.Format.JSON=OpenLayers.Class(OpenLayers.Format,{indent:" ",space:" ",newline:"\n",level:0,pretty:false,nativeJSON:(function(){return!!(window.JSON&&typeof JSON.parse=="function"&&typeof JSON.stringify=="function");})(),read:function(json,filter){var object;if(this.nativeJSON){object=JSON.parse(json,filter);}else try{if(/^[\],:{}\s]*$/.test(json.replace(/\\["\\\/bfnrtu]/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){object=eval('('+json+')');if(typeof filter==='function'){function walk(k,v){if(v&&typeof v==='object'){for(var i in v){if(v.hasOwnProperty(i)){v[i]=walk(i,v[i]);}}} +return filter(k,v);} +object=walk('',object);}}}catch(e){} +if(this.keepData){this.data=object;} +return object;},write:function(value,pretty){this.pretty=!!pretty;var json=null;var type=typeof value;if(this.serialize[type]){try{json=(!this.pretty&&this.nativeJSON)?JSON.stringify(value):this.serialize[type].apply(this,[value]);}catch(err){OpenLayers.Console.error("Trouble serializing: "+err);}} +return json;},writeIndent:function(){var pieces=[];if(this.pretty){for(var i=0;i0){pieces.push(',');} +pieces.push(this.writeNewline(),this.writeIndent(),json);}} +this.level-=1;pieces.push(this.writeNewline(),this.writeIndent(),']');return pieces.join('');},'string':function(string){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};if(/["\\\x00-\x1f]/.test(string)){return'"'+string.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;} +c=b.charCodeAt();return'\\u00'+ +Math.floor(c/16).toString(16)+ +(c%16).toString(16);})+'"';} +return'"'+string+'"';},'number':function(number){return isFinite(number)?String(number):"null";},'boolean':function(bool){return String(bool);},'date':function(date){function format(number){return(number<10)?'0'+number:number;} +return'"'+date.getFullYear()+'-'+ +format(date.getMonth()+1)+'-'+ +format(date.getDate())+'T'+ +format(date.getHours())+':'+ +format(date.getMinutes())+':'+ +format(date.getSeconds())+'"';}},CLASS_NAME:"OpenLayers.Format.JSON"});OpenLayers.Feature=OpenLayers.Class({layer:null,id:null,lonlat:null,data:null,marker:null,popupClass:null,popup:null,initialize:function(layer,lonlat,data){this.layer=layer;this.lonlat=lonlat;this.data=(data!=null)?data:{};this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){if((this.layer!=null)&&(this.layer.map!=null)){if(this.popup!=null){this.layer.map.removePopup(this.popup);}} +if(this.layer!=null&&this.marker!=null){this.layer.removeMarker(this.marker);} +this.layer=null;this.id=null;this.lonlat=null;this.data=null;if(this.marker!=null){this.destroyMarker(this.marker);this.marker=null;} +if(this.popup!=null){this.destroyPopup(this.popup);this.popup=null;}},onScreen:function(){var onScreen=false;if((this.layer!=null)&&(this.layer.map!=null)){var screenBounds=this.layer.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);} +return onScreen;},createMarker:function(){if(this.lonlat!=null){this.marker=new OpenLayers.Marker(this.lonlat,this.data.icon);} +return this.marker;},destroyMarker:function(){this.marker.destroy();},createPopup:function(closeBox){if(this.lonlat!=null){if(!this.popup){var anchor=(this.marker)?this.marker.icon:null;var popupClass=this.popupClass?this.popupClass:OpenLayers.Popup.AnchoredBubble;this.popup=new popupClass(this.id+"_popup",this.lonlat,this.data.popupSize,this.data.popupContentHTML,anchor,closeBox);} +if(this.data.overflow!=null){this.popup.contentDiv.style.overflow=this.data.overflow;} +this.popup.feature=this;} +return this.popup;},destroyPopup:function(){if(this.popup){this.popup.feature=null;this.popup.destroy();this.popup=null;}},CLASS_NAME:"OpenLayers.Feature"});OpenLayers.State={UNKNOWN:'Unknown',INSERT:'Insert',UPDATE:'Update',DELETE:'Delete'};OpenLayers.Feature.Vector=OpenLayers.Class(OpenLayers.Feature,{fid:null,geometry:null,attributes:null,bounds:null,state:null,style:null,url:null,renderIntent:"default",modified:null,initialize:function(geometry,attributes,style){OpenLayers.Feature.prototype.initialize.apply(this,[null,null,attributes]);this.lonlat=null;this.geometry=geometry?geometry:null;this.state=null;this.attributes={};if(attributes){this.attributes=OpenLayers.Util.extend(this.attributes,attributes);} +this.style=style?style:null;},destroy:function(){if(this.layer){this.layer.removeFeatures(this);this.layer=null;} +this.geometry=null;this.modified=null;OpenLayers.Feature.prototype.destroy.apply(this,arguments);},clone:function(){return new OpenLayers.Feature.Vector(this.geometry?this.geometry.clone():null,this.attributes,this.style);},onScreen:function(boundsOnly){var onScreen=false;if(this.layer&&this.layer.map){var screenBounds=this.layer.map.getExtent();if(boundsOnly){var featureBounds=this.geometry.getBounds();onScreen=screenBounds.intersectsBounds(featureBounds);}else{var screenPoly=screenBounds.toGeometry();onScreen=screenPoly.intersects(this.geometry);}} +return onScreen;},getVisibility:function(){return!(this.style&&this.style.display=='none'||!this.layer||this.layer&&this.layer.styleMap&&this.layer.styleMap.createSymbolizer(this,this.renderIntent).display=='none'||this.layer&&!this.layer.getVisibility());},createMarker:function(){return null;},destroyMarker:function(){},createPopup:function(){return null;},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;if(this.geometry){atPoint=this.geometry.atPoint(lonlat,toleranceLon,toleranceLat);} +return atPoint;},destroyPopup:function(){},move:function(location){if(!this.layer||!this.geometry.move){return undefined;} +var pixel;if(location.CLASS_NAME=="OpenLayers.LonLat"){pixel=this.layer.getViewPortPxFromLonLat(location);}else{pixel=location;} +var lastPixel=this.layer.getViewPortPxFromLonLat(this.geometry.getBounds().getCenterLonLat());var res=this.layer.map.getResolution();this.geometry.move(res*(pixel.x-lastPixel.x),res*(lastPixel.y-pixel.y));this.layer.drawFeature(this);return lastPixel;},toState:function(state){if(state==OpenLayers.State.UPDATE){switch(this.state){case OpenLayers.State.UNKNOWN:case OpenLayers.State.DELETE:this.state=state;break;case OpenLayers.State.UPDATE:case OpenLayers.State.INSERT:break;}}else if(state==OpenLayers.State.INSERT){switch(this.state){case OpenLayers.State.UNKNOWN:break;default:this.state=state;break;}}else if(state==OpenLayers.State.DELETE){switch(this.state){case OpenLayers.State.INSERT:break;case OpenLayers.State.DELETE:break;case OpenLayers.State.UNKNOWN:case OpenLayers.State.UPDATE:this.state=state;break;}}else if(state==OpenLayers.State.UNKNOWN){this.state=state;}},CLASS_NAME:"OpenLayers.Feature.Vector"});OpenLayers.Feature.Vector.style={'default':{fillColor:"#ee9900",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#ee9900",strokeOpacity:1,strokeWidth:1,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'select':{fillColor:"blue",fillOpacity:0.4,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"blue",strokeOpacity:1,strokeWidth:2,strokeLinecap:"round",strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"pointer"},'temporary':{fillColor:"#66cccc",fillOpacity:0.2,hoverFillColor:"white",hoverFillOpacity:0.8,strokeColor:"#66cccc",strokeOpacity:1,strokeLinecap:"round",strokeWidth:2,strokeDashstyle:"solid",hoverStrokeColor:"red",hoverStrokeOpacity:1,hoverStrokeWidth:0.2,pointRadius:6,hoverPointRadius:1,hoverPointUnit:"%",pointerEvents:"visiblePainted",cursor:"inherit"},'delete':{display:"none"}};OpenLayers.Format.WKT=OpenLayers.Class(OpenLayers.Format,{initialize:function(options){this.regExes={'typeStr':/^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,'spaces':/\s+/,'parenComma':/\)\s*,\s*\(/,'doubleParenComma':/\)\s*\)\s*,\s*\(\s*\(/,'trimParens':/^\s*\(?(.*?)\)?\s*$/};OpenLayers.Format.prototype.initialize.apply(this,[options]);},read:function(wkt){var features,type,str;wkt=wkt.replace(/[\n\r]/g," ");var matches=this.regExes.typeStr.exec(wkt);if(matches){type=matches[1].toLowerCase();str=matches[2];if(this.parse[type]){features=this.parse[type].apply(this,[str]);} +if(this.internalProjection&&this.externalProjection){if(features&&features.CLASS_NAME=="OpenLayers.Feature.Vector"){features.geometry.transform(this.externalProjection,this.internalProjection);}else if(features&&type!="geometrycollection"&&typeof features=="object"){for(var i=0,len=features.length;i0){pieces.push(',');} +geometry=collection[i].geometry;pieces.push(this.extractGeometry(geometry));} +if(isCollection){pieces.push(')');} +return pieces.join('');},extractGeometry:function(geometry){var type=geometry.CLASS_NAME.split('.')[2].toLowerCase();if(!this.extract[type]){return null;} +if(this.internalProjection&&this.externalProjection){geometry=geometry.clone();geometry.transform(this.internalProjection,this.externalProjection);} +var wktType=type=='collection'?'GEOMETRYCOLLECTION':type.toUpperCase();var data=wktType+'('+this.extract[type].apply(this,[geometry])+')';return data;},extract:{'point':function(point){return point.x+' '+point.y;},'multipoint':function(multipoint){var array=[];for(var i=0,len=multipoint.components.length;i=0;i--){feature=features[i];switch(feature.state){case OpenLayers.State.INSERT:toCreate.push(feature);break;case OpenLayers.State.UPDATE:toUpdate.push(feature);break;case OpenLayers.State.DELETE:toDelete.push(feature);break;}} +if(toCreate.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options.create);resp.push(this.create(toCreate,opt));} +if(toUpdate.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options.update);resp.push(this.update(toUpdate,opt));} +if(toDelete.length>0){nRequests++;opt=OpenLayers.Util.applyDefaults({"callback":callback,"scope":this},options["delete"]);resp.push(this["delete"](toDelete,opt));} +return resp;},clear:function(){this.db.execute("DELETE FROM "+this.tableName);},callUserCallback:function(options,resp){var opt=options[resp.requestType];if(opt&&opt.callback){opt.callback.call(opt.scope,resp);} +if(resp.last&&options.callback){options.callback.call(options.scope);}},CLASS_NAME:"OpenLayers.Protocol.SQL.Gears"});OpenLayers.Event={observers:false,KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,element:function(event){return event.target||event.srcElement;},isSingleTouch:function(event){return event.touches&&event.touches.length==1;},isMultiTouch:function(event){return event.touches&&event.touches.length>1;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},isRightClick:function(event){return(((event.which)&&(event.which==3))||((event.button)&&(event.button==2)));},stop:function(event,allowDefault){if(!allowDefault){if(event.preventDefault){event.preventDefault();}else{event.returnValue=false;}} +if(event.stopPropagation){event.stopPropagation();}else{event.cancelBubble=true;}},findElement:function(event,tagName){var element=OpenLayers.Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;} +return element;},observe:function(elementParam,name,observer,useCapture){var element=OpenLayers.Util.getElement(elementParam);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)){name='keydown';} +if(!this.observers){this.observers={};} +if(!element._eventCacheID){var idPrefix="eventCacheID_";if(element.id){idPrefix=element.id+"_"+idPrefix;} +element._eventCacheID=OpenLayers.Util.createUniqueID(idPrefix);} +var cacheID=element._eventCacheID;if(!this.observers[cacheID]){this.observers[cacheID]=[];} +this.observers[cacheID].push({'element':element,'name':name,'observer':observer,'useCapture':useCapture});if(element.addEventListener){element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){element.attachEvent('on'+name,observer);}},stopObservingElement:function(elementParam){var element=OpenLayers.Util.getElement(elementParam);var cacheID=element._eventCacheID;this._removeElementObservers(OpenLayers.Event.observers[cacheID]);},_removeElementObservers:function(elementObservers){if(elementObservers){for(var i=elementObservers.length-1;i>=0;i--){var entry=elementObservers[i];var args=new Array(entry.element,entry.name,entry.observer,entry.useCapture);var removed=OpenLayers.Event.stopObserving.apply(this,args);}}},stopObserving:function(elementParam,name,observer,useCapture){useCapture=useCapture||false;var element=OpenLayers.Util.getElement(elementParam);var cacheID=element._eventCacheID;if(name=='keypress'){if(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent){name='keydown';}} +var foundEntry=false;var elementObservers=OpenLayers.Event.observers[cacheID];if(elementObservers){var i=0;while(!foundEntry&&ithis.duration){this.stop();}},CLASS_NAME:"OpenLayers.Tween"});OpenLayers.Easing={CLASS_NAME:"OpenLayers.Easing"};OpenLayers.Easing.Linear={easeIn:function(t,b,c,d){return c*t/d+b;},easeOut:function(t,b,c,d){return c*t/d+b;},easeInOut:function(t,b,c,d){return c*t/d+b;},CLASS_NAME:"OpenLayers.Easing.Linear"};OpenLayers.Easing.Expo={easeIn:function(t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOut:function(t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOut:function(t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},CLASS_NAME:"OpenLayers.Easing.Expo"};OpenLayers.Easing.Quad={easeIn:function(t,b,c,d){return c*(t/=d)*t+b;},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOut:function(t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},CLASS_NAME:"OpenLayers.Easing.Quad"};OpenLayers.Map=OpenLayers.Class({Z_INDEX_BASE:{BaseLayer:100,Overlay:325,Feature:725,Popup:750,Control:1000},EVENT_TYPES:["preaddlayer","addlayer","preremovelayer","removelayer","changelayer","movestart","move","moveend","zoomend","popupopen","popupclose","addmarker","removemarker","clearmarkers","mouseover","mouseout","mousemove","dragstart","drag","dragend","changebaselayer"],id:null,fractionalZoom:false,events:null,allOverlays:false,div:null,dragging:false,size:null,viewPortDiv:null,layerContainerOrigin:null,layerContainerDiv:null,layers:null,controls:null,popups:null,baseLayer:null,center:null,resolution:null,zoom:0,panRatio:1.5,viewRequestID:0,tileSize:null,projection:"EPSG:4326",units:'degrees',resolutions:null,maxResolution:1.40625,minResolution:null,maxScale:null,minScale:null,maxExtent:null,minExtent:null,restrictedExtent:null,numZoomLevels:16,theme:null,displayProjection:null,fallThrough:true,panTween:null,eventListeners:null,panMethod:OpenLayers.Easing.Expo.easeOut,panDuration:50,paddingForPopups:null,minPx:null,maxPx:null,initialize:function(div,options){if(arguments.length===1&&typeof div==="object"){options=div;div=options&&options.div;} +this.tileSize=new OpenLayers.Size(OpenLayers.Map.TILE_WIDTH,OpenLayers.Map.TILE_HEIGHT);this.maxExtent=new OpenLayers.Bounds(-180,-90,180,90);this.paddingForPopups=new OpenLayers.Bounds(15,15,15,15);this.theme=OpenLayers._getScriptLocation()+'theme/default/style.css';OpenLayers.Util.extend(this,options);this.layers=[];this.id=OpenLayers.Util.createUniqueID("OpenLayers.Map_");this.div=OpenLayers.Util.getElement(div);if(!this.div){this.div=document.createElement("div");this.div.style.height="1px";this.div.style.width="1px";} +OpenLayers.Element.addClass(this.div,'olMap');var id=this.id+"_OpenLayers_ViewPort";this.viewPortDiv=OpenLayers.Util.createDiv(id,null,null,null,"relative",null,"hidden");this.viewPortDiv.style.width="100%";this.viewPortDiv.style.height="100%";this.viewPortDiv.className="olMapViewport";this.div.appendChild(this.viewPortDiv);var eventsDiv=document.createElement("div");eventsDiv.id=this.id+"_events";eventsDiv.style.position="absolute";eventsDiv.style.width="100%";eventsDiv.style.height="100%";eventsDiv.style.zIndex=this.Z_INDEX_BASE.Control-1;this.viewPortDiv.appendChild(eventsDiv);this.eventsDiv=eventsDiv;this.events=new OpenLayers.Events(this,this.eventsDiv,this.EVENT_TYPES,this.fallThrough,{includeXY:true});id=this.id+"_OpenLayers_Container";this.layerContainerDiv=OpenLayers.Util.createDiv(id);this.layerContainerDiv.style.zIndex=this.Z_INDEX_BASE['Popup']-1;this.eventsDiv.appendChild(this.layerContainerDiv);this.updateSize();if(this.eventListeners instanceof Object){this.events.on(this.eventListeners);} +this.events.register("movestart",this,this.updateSize);if(OpenLayers.String.contains(navigator.appName,"Microsoft")){this.events.register("resize",this,this.updateSize);}else{this.updateSizeDestroy=OpenLayers.Function.bind(this.updateSize,this);OpenLayers.Event.observe(window,'resize',this.updateSizeDestroy);} +if(this.theme){var addNode=true;var nodes=document.getElementsByTagName('link');for(var i=0,len=nodes.length;i=0;--i){this.controls[i].destroy();} +this.controls=null;} +if(this.layers!=null){for(var i=this.layers.length-1;i>=0;--i){this.layers[i].destroy(false);} +this.layers=null;} +if(this.viewPortDiv){this.div.removeChild(this.viewPortDiv);} +this.viewPortDiv=null;if(this.eventListeners){this.events.un(this.eventListeners);this.eventListeners=null;} +this.events.destroy();this.events=null;},setOptions:function(options){var updatePxExtent=this.minPx&&options.restrictedExtent!=this.restrictedExtent;OpenLayers.Util.extend(this,options);updatePxExtent&&this.moveTo(this.getCachedCenter(),this.zoom,{forceZoomChange:true});},getTileSize:function(){return this.tileSize;},getBy:function(array,property,match){var test=(typeof match.test=="function");var found=OpenLayers.Array.filter(this[array],function(item){return item[property]==match||(test&&match.test(item[property]));});return found;},getLayersBy:function(property,match){return this.getBy("layers",property,match);},getLayersByName:function(match){return this.getLayersBy("name",match);},getLayersByClass:function(match){return this.getLayersBy("CLASS_NAME",match);},getControlsBy:function(property,match){return this.getBy("controls",property,match);},getControlsByClass:function(match){return this.getControlsBy("CLASS_NAME",match);},getLayer:function(id){var foundLayer=null;for(var i=0,len=this.layers.length;ithis.layers.length){idx=this.layers.length;} +if(base!=idx){this.layers.splice(base,1);this.layers.splice(idx,0,layer);for(var i=0,len=this.layers.length;i=0;--i){this.removePopup(this.popups[i]);}} +popup.map=this;this.popups.push(popup);var popupDiv=popup.draw();if(popupDiv){popupDiv.style.zIndex=this.Z_INDEX_BASE['Popup']+ +this.popups.length;this.layerContainerDiv.appendChild(popupDiv);}},removePopup:function(popup){OpenLayers.Util.removeItem(this.popups,popup);if(popup.div){try{this.layerContainerDiv.removeChild(popup.div);} +catch(e){}} +popup.map=null;},getSize:function(){var size=null;if(this.size!=null){size=this.size.clone();} +return size;},updateSize:function(){var newSize=this.getCurrentSize();if(newSize&&!isNaN(newSize.h)&&!isNaN(newSize.w)){this.events.clearMouseCache();var oldSize=this.getSize();if(oldSize==null){this.size=oldSize=newSize;} +if(!newSize.equals(oldSize)){this.size=newSize;for(var i=0,len=this.layers.length;i=this.minPx.x+xRestriction?Math.round(dx):0;dy=y<=this.maxPx.y-yRestriction&&y>=this.minPx.y+yRestriction?Math.round(dy):0;var minX=this.minPx.x,maxX=this.maxPx.x;if(dx||dy){if(!this.dragging){this.dragging=true;this.events.triggerEvent("movestart");} +this.center=null;if(dx){this.layerContainerDiv.style.left=parseInt(this.layerContainerDiv.style.left)-dx+"px";this.minPx.x-=dx;this.maxPx.x-=dx;if(wrapDateLine){if(this.maxPx.x>maxX){this.maxPx.x-=(maxX-minX);} +if(this.minPx.xthis.restrictedExtent.getWidth()){lonlat=new OpenLayers.LonLat(maxCenter.lon,lonlat.lat);}else if(extent.leftthis.restrictedExtent.right){lonlat=lonlat.add(this.restrictedExtent.right- +extent.right,0);} +if(extent.getHeight()>this.restrictedExtent.getHeight()){lonlat=new OpenLayers.LonLat(lonlat.lon,maxCenter.lat);}else if(extent.bottomthis.restrictedExtent.top){lonlat=lonlat.add(0,this.restrictedExtent.top- +extent.top);}}} +var zoomChanged=forceZoomChange||((this.isValidZoomLevel(zoom))&&(zoom!=this.getZoom()));var centerChanged=(this.isValidLonLat(lonlat))&&(!lonlat.equals(this.center));if(zoomChanged||centerChanged||dragging){dragging||this.events.triggerEvent("movestart");if(centerChanged){if(!zoomChanged&&this.center){this.centerLayerContainer(lonlat);} +this.center=lonlat.clone();} +var res=zoomChanged?this.getResolutionForZoom(zoom):this.getResolution();if(zoomChanged||this.layerContainerOrigin==null){this.layerContainerOrigin=this.getCachedCenter();this.layerContainerDiv.style.left="0px";this.layerContainerDiv.style.top="0px";var maxExtent=this.getMaxExtent({restricted:true});var maxExtentCenter=maxExtent.getCenterLonLat();var lonDelta=this.center.lon-maxExtentCenter.lon;var latDelta=maxExtentCenter.lat-this.center.lat;var extentWidth=Math.round(maxExtent.getWidth()/res);var extentHeight=Math.round(maxExtent.getHeight()/res);var left=(this.size.w-extentWidth)/2-lonDelta/res;var top=(this.size.h-extentHeight)/2-latDelta/res;this.minPx=new OpenLayers.Pixel(left,top);this.maxPx=new OpenLayers.Pixel(left+extentWidth,top+extentHeight);} +if(zoomChanged){this.zoom=zoom;this.resolution=res;this.viewRequestID++;} +var bounds=this.getExtent();if(this.baseLayer.visibility){this.baseLayer.moveTo(bounds,zoomChanged,options.dragging);options.dragging||this.baseLayer.events.triggerEvent("moveend",{zoomChanged:zoomChanged});} +bounds=this.baseLayer.getExtent();for(var i=this.layers.length-1;i>=0;--i){var layer=this.layers[i];if(layer!==this.baseLayer&&!layer.isBaseLayer){var inRange=layer.calculateInRange();if(layer.inRange!=inRange){layer.inRange=inRange;if(!inRange){layer.display(false);} +this.events.triggerEvent("changelayer",{layer:layer,property:"visibility"});} +if(inRange&&layer.visibility){layer.moveTo(bounds,zoomChanged,options.dragging);options.dragging||layer.events.triggerEvent("moveend",{zoomChanged:zoomChanged});}}} +this.events.triggerEvent("move");dragging||this.events.triggerEvent("moveend");if(zoomChanged){for(var i=0,len=this.popups.length;i=0)&&(zoomLevel0){resolution=this.layers[0].getResolution();} +return resolution;},getUnits:function(){var units=null;if(this.baseLayer!=null){units=this.baseLayer.units;} +return units;},getScale:function(){var scale=null;if(this.baseLayer!=null){var res=this.getResolution();var units=this.baseLayer.units;scale=OpenLayers.Util.getScaleFromResolution(res,units);} +return scale;},getZoomForExtent:function(bounds,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForExtent(bounds,closest);} +return zoom;},getResolutionForZoom:function(zoom){var resolution=null;if(this.baseLayer){resolution=this.baseLayer.getResolutionForZoom(zoom);} +return resolution;},getZoomForResolution:function(resolution,closest){var zoom=null;if(this.baseLayer!=null){zoom=this.baseLayer.getZoomForResolution(resolution,closest);} +return zoom;},zoomTo:function(zoom){if(this.isValidZoomLevel(zoom)){this.setCenter(null,zoom);}},zoomIn:function(){this.zoomTo(this.getZoom()+1);},zoomOut:function(){this.zoomTo(this.getZoom()-1);},zoomToExtent:function(bounds,closest){var center=bounds.getCenterLonLat();if(this.baseLayer.wrapDateLine){var maxExtent=this.getMaxExtent();bounds=bounds.clone();while(bounds.right=0){this.initResolutions();if(reinitialize&&this.map.baseLayer===this){this.map.setCenter(this.map.getCenter(),this.map.getZoomForResolution(resolution),false,true);this.map.events.triggerEvent("changebaselayer",{layer:this});} +break;}}}},onMapResize:function(){},redraw:function(){var redrawn=false;if(this.map){this.inRange=this.calculateInRange();var extent=this.getExtent();if(extent&&this.inRange&&this.visibility){var zoomChanged=true;this.moveTo(extent,zoomChanged,false);this.events.triggerEvent("moveend",{"zoomChanged":zoomChanged});redrawn=true;}} +return redrawn;},moveTo:function(bounds,zoomChanged,dragging){var display=this.visibility;if(!this.isBaseLayer){display=display&&this.inRange;} +this.display(display);},moveByPx:function(dx,dy){},setMap:function(map){if(this.map==null){this.map=map;this.maxExtent=this.maxExtent||this.map.maxExtent;this.minExtent=this.minExtent||this.map.minExtent;this.projection=this.projection||this.map.projection;if(typeof this.projection=="string"){this.projection=new OpenLayers.Projection(this.projection);} +this.units=this.projection.getUnits()||this.units||this.map.units;this.initResolutions();if(!this.isBaseLayer){this.inRange=this.calculateInRange();var show=((this.visibility)&&(this.inRange));this.div.style.display=show?"":"none";} +this.setTileSize();}},afterAdd:function(){},removeMap:function(map){},getImageSize:function(bounds){return(this.imageSize||this.tileSize);},setTileSize:function(size){var tileSize=(size)?size:((this.tileSize)?this.tileSize:this.map.getTileSize());this.tileSize=tileSize;if(this.gutter){this.imageOffset=new OpenLayers.Pixel(-this.gutter,-this.gutter);this.imageSize=new OpenLayers.Size(tileSize.w+(2*this.gutter),tileSize.h+(2*this.gutter));}},getVisibility:function(){return this.visibility;},setVisibility:function(visibility){if(visibility!=this.visibility){this.visibility=visibility;this.display(visibility);this.redraw();if(this.map!=null){this.map.events.triggerEvent("changelayer",{layer:this,property:"visibility"});} +this.events.triggerEvent("visibilitychanged");}},display:function(display){if(display!=(this.div.style.display!="none")){this.div.style.display=(display&&this.calculateInRange())?"block":"none";}},calculateInRange:function(){var inRange=false;if(this.alwaysInRange){inRange=true;}else{if(this.map){var resolution=this.map.getResolution();inRange=((resolution>=this.minResolution)&&(resolution<=this.maxResolution));}} +return inRange;},setIsBaseLayer:function(isBaseLayer){if(isBaseLayer!=this.isBaseLayer){this.isBaseLayer=isBaseLayer;if(this.map!=null){this.map.events.triggerEvent("changebaselayer",{layer:this});}}},initResolutions:function(){var i,len,p;var props={},alwaysInRange=true;for(i=0,len=this.RESOLUTION_PROPERTIES.length;i=resolution){highRes=res;lowZoom=i;} +if(res<=resolution){lowRes=res;highZoom=i;break;}} +var dRes=highRes-lowRes;if(dRes>0){zoom=lowZoom+((highRes-resolution)/dRes);}else{zoom=lowZoom;}}else{var diff;var minDiff=Number.POSITIVE_INFINITY;for(i=0,len=this.resolutions.length;iminDiff){break;} +minDiff=diff;}else{if(this.resolutions[i]0)){if(this.map.baseLayer){var layer=this.map.baseLayer.clone();this.layers=[layer];}else{this.map.events.register("changebaselayer",this,this.baseLayerDraw);return this.div;}} +this.element=document.createElement('div');this.element.className=this.displayClass+'Element';this.element.style.display='none';this.mapDiv=document.createElement('div');this.mapDiv.style.width=this.size.w+'px';this.mapDiv.style.height=this.size.h+'px';this.mapDiv.style.position='relative';this.mapDiv.style.overflow='hidden';this.mapDiv.id=OpenLayers.Util.createUniqueID('overviewMap');this.extentRectangle=document.createElement('div');this.extentRectangle.style.position='absolute';this.extentRectangle.style.zIndex=1000;this.extentRectangle.className=this.displayClass+'ExtentRectangle';this.element.appendChild(this.mapDiv);this.div.appendChild(this.element);if(!this.outsideViewport){this.div.className+=" "+this.displayClass+'Container';var imgLocation=OpenLayers.Util.getImagesLocation();var img=imgLocation+'layer-switcher-maximize.png';this.maximizeDiv=OpenLayers.Util.createAlphaImageDiv(this.displayClass+'MaximizeButton',null,new OpenLayers.Size(18,18),img,'absolute');this.maximizeDiv.style.display='none';this.maximizeDiv.className=this.displayClass+'MaximizeButton';OpenLayers.Event.observe(this.maximizeDiv,'click',OpenLayers.Function.bindAsEventListener(this.maximizeControl,this));this.div.appendChild(this.maximizeDiv);var img=imgLocation+'layer-switcher-minimize.png';this.minimizeDiv=OpenLayers.Util.createAlphaImageDiv('OpenLayers_Control_minimizeDiv',null,new OpenLayers.Size(18,18),img,'absolute');this.minimizeDiv.style.display='none';this.minimizeDiv.className=this.displayClass+'MinimizeButton';OpenLayers.Event.observe(this.minimizeDiv,'click',OpenLayers.Function.bindAsEventListener(this.minimizeControl,this));this.div.appendChild(this.minimizeDiv);var eventsToStop=['dblclick','mousedown'];for(var i=0,len=eventsToStop.length;ithis.minRatio)&&(resRatio<=this.maxRatio)&&(this.ovmap.getExtent().containsBounds(testExtent)));},updateOverview:function(){var mapRes=this.map.getResolution();var targetRes=this.ovmap.getResolution();var resRatio=targetRes/mapRes;if(resRatio>this.maxRatio){targetRes=this.minRatio*mapRes;}else if(resRatio<=this.minRatio){targetRes=this.maxRatio*mapRes;} +var center;if(this.ovmap.getProjection()!=this.map.getProjection()){center=this.map.center.clone();center.transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject());}else{center=this.map.center;} +this.ovmap.setCenter(center,this.ovmap.getZoomForResolution(targetRes*this.resolutionFactor));this.updateRectToMap();},createMap:function(){var options=OpenLayers.Util.extend({controls:[],maxResolution:'auto',fallThrough:false},this.mapOptions);this.ovmap=new OpenLayers.Map(this.mapDiv,options);this.ovmap.eventsDiv.appendChild(this.extentRectangle);OpenLayers.Event.stopObserving(window,'unload',this.ovmap.unloadDestroy);this.ovmap.addLayers(this.layers);this.ovmap.zoomToMaxExtent();this.wComp=parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-left-width'))+ +parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-right-width'));this.wComp=(this.wComp)?this.wComp:2;this.hComp=parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-top-width'))+ +parseInt(OpenLayers.Element.getStyle(this.extentRectangle,'border-bottom-width'));this.hComp=(this.hComp)?this.hComp:2;this.handlers.drag=new OpenLayers.Handler.Drag(this,{move:this.rectDrag,done:this.updateMapToRect},{map:this.ovmap});this.handlers.click=new OpenLayers.Handler.Click(this,{"click":this.mapDivClick},{"single":true,"double":false,"stopSingle":true,"stopDouble":true,"pixelTolerance":1,map:this.ovmap});this.handlers.click.activate();this.rectEvents=new OpenLayers.Events(this,this.extentRectangle,null,true);this.rectEvents.register("mouseover",this,function(e){if(!this.handlers.drag.active&&!this.map.dragging){this.handlers.drag.activate();}});this.rectEvents.register("mouseout",this,function(e){if(!this.handlers.drag.dragging){this.handlers.drag.deactivate();}});if(this.ovmap.getProjection()!=this.map.getProjection()){var sourceUnits=this.map.getProjectionObject().getUnits()||this.map.units||this.map.baseLayer.units;var targetUnits=this.ovmap.getProjectionObject().getUnits()||this.ovmap.units||this.ovmap.baseLayer.units;this.resolutionFactor=sourceUnits&&targetUnits?OpenLayers.INCHES_PER_UNIT[sourceUnits]/OpenLayers.INCHES_PER_UNIT[targetUnits]:1;}},updateRectToMap:function(){var bounds;if(this.ovmap.getProjection()!=this.map.getProjection()){bounds=this.map.getExtent().transform(this.map.getProjectionObject(),this.ovmap.getProjectionObject());}else{bounds=this.map.getExtent();} +var pxBounds=this.getRectBoundsFromMapBounds(bounds);if(pxBounds){this.setRectPxBounds(pxBounds);}},updateMapToRect:function(){var lonLatBounds=this.getMapBoundsFromRectBounds(this.rectPxBounds);if(this.ovmap.getProjection()!=this.map.getProjection()){lonLatBounds=lonLatBounds.transform(this.ovmap.getProjectionObject(),this.map.getProjectionObject());} +this.map.panTo(lonLatBounds.getCenterLonLat());},setRectPxBounds:function(pxBounds){var top=Math.max(pxBounds.top,0);var left=Math.max(pxBounds.left,0);var bottom=Math.min(pxBounds.top+Math.abs(pxBounds.getHeight()),this.ovmap.size.h-this.hComp);var right=Math.min(pxBounds.left+pxBounds.getWidth(),this.ovmap.size.w-this.wComp);var width=Math.max(right-left,0);var height=Math.max(bottom-top,0);if(width0){text=text.substring(index);} +var node=OpenLayers.Util.Try(OpenLayers.Function.bind((function(){var xmldom;if(window.ActiveXObject&&!this.xmldom){xmldom=new ActiveXObject("Microsoft.XMLDOM");}else{xmldom=this.xmldom;} +xmldom.loadXML(text);return xmldom;}),this),function(){return new DOMParser().parseFromString(text,'text/xml');},function(){var req=new XMLHttpRequest();req.open("GET","data:"+"text/xml"+";charset=utf-8,"+encodeURIComponent(text),false);if(req.overrideMimeType){req.overrideMimeType("text/xml");} +req.send(null);return req.responseXML;});if(this.keepData){this.data=node;} +return node;},write:function(node){var data;if(this.xmldom){data=node.xml;}else{var serializer=new XMLSerializer();if(node.nodeType==1){var doc=document.implementation.createDocument("","",null);if(doc.importNode){node=doc.importNode(node,true);} +doc.appendChild(node);data=serializer.serializeToString(doc);}else{data=serializer.serializeToString(node);}} +return data;},createElementNS:function(uri,name){var element;if(this.xmldom){if(typeof uri=="string"){element=this.xmldom.createNode(1,name,uri);}else{element=this.xmldom.createNode(1,name,"");}}else{element=document.createElementNS(uri,name);} +return element;},createTextNode:function(text){var node;if(typeof text!=="string"){text=String(text);} +if(this.xmldom){node=this.xmldom.createTextNode(text);}else{node=document.createTextNode(text);} +return node;},getElementsByTagNameNS:function(node,uri,name){var elements=[];if(node.getElementsByTagNameNS){elements=node.getElementsByTagNameNS(uri,name);}else{var allNodes=node.getElementsByTagName("*");var potentialNode,fullName;for(var i=0,len=allNodes.length;i0){prefix=name.substring(0,split);local=name.substring(split+1);}else{if(parent){prefix=this.namespaceAlias[parent.namespaceURI];}else{prefix=this.defaultPrefix;} +local=name;} +var child=this.writers[prefix][local].apply(this,[obj]);if(parent){parent.appendChild(child);} +return child;},getChildEl:function(node,name,uri){return node&&this.getThisOrNextEl(node.firstChild,name,uri);},getNextEl:function(node,name,uri){return node&&this.getThisOrNextEl(node.nextSibling,name,uri);},getThisOrNextEl:function(node,name,uri){outer:for(var sibling=node;sibling;sibling=sibling.nextSibling){switch(sibling.nodeType){case 1:if((!name||name===(sibling.localName||sibling.nodeName.split(":").pop()))&&(!uri||uri===sibling.namespaceURI)){break outer;} +sibling=null;break outer;case 3:if(/^\s*$/.test(sibling.nodeValue)){break;} +case 4:case 6:case 12:case 10:case 11:sibling=null;break outer;}} +return sibling||null;},lookupNamespaceURI:function(node,prefix){var uri=null;if(node){if(node.lookupNamespaceURI){uri=node.lookupNamespaceURI(prefix);}else{outer:switch(node.nodeType){case 1:if(node.namespaceURI!==null&&node.prefix===prefix){uri=node.namespaceURI;break outer;} +var len=node.attributes.length;if(len){var attr;for(var i=0;i0){appliedRules=true;for(var i=0,len=elseRules.length;i0&&appliedRules==false){style.display="none";} +if(style.label&&typeof style.label!=="string"){style.label=String(style.label);} +return style;},applySymbolizer:function(rule,style,feature){var symbolizerPrefix=feature.geometry?this.getSymbolizerPrefix(feature.geometry):OpenLayers.Style.SYMBOLIZER_PREFIXES[0];var symbolizer=rule.symbolizer[symbolizerPrefix]||rule.symbolizer;if(this.defaultsPerSymbolizer===true){var defaults=this.defaultStyle;OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:defaults.pointRadius});if(symbolizer.stroke===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{strokeWidth:defaults.strokeWidth,strokeColor:defaults.strokeColor,strokeOpacity:defaults.strokeOpacity,strokeDashstyle:defaults.strokeDashstyle,strokeLinecap:defaults.strokeLinecap});} +if(symbolizer.fill===true||symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{fillColor:defaults.fillColor,fillOpacity:defaults.fillOpacity});} +if(symbolizer.graphic===true){OpenLayers.Util.applyDefaults(symbolizer,{pointRadius:this.defaultStyle.pointRadius,externalGraphic:this.defaultStyle.externalGraphic,graphicName:this.defaultStyle.graphicName,graphicOpacity:this.defaultStyle.graphicOpacity,graphicWidth:this.defaultStyle.graphicWidth,graphicHeight:this.defaultStyle.graphicHeight,graphicXOffset:this.defaultStyle.graphicXOffset,graphicYOffset:this.defaultStyle.graphicYOffset});}} +return this.createLiterals(OpenLayers.Util.extend(style,symbolizer),feature);},createLiterals:function(style,feature){var context=OpenLayers.Util.extend({},feature.attributes||feature.data);OpenLayers.Util.extend(context,this.context);for(var i in this.propertyStyles){style[i]=OpenLayers.Style.createLiteral(style[i],context,feature,i);} +return style;},findPropertyStyles:function(){var propertyStyles={};var style=this.defaultStyle;this.addPropertyStyles(propertyStyles,style);var rules=this.rules;var symbolizer,value;for(var i=0,len=rules.length;ithis.value;break;case OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO:result=got<=this.value;break;case OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO:result=got>=this.value;break;case OpenLayers.Filter.Comparison.BETWEEN:result=(got>=this.lowerBoundary)&&(got<=this.upperBoundary);break;case OpenLayers.Filter.Comparison.LIKE:var regexp=new RegExp(this.value,"gi");result=regexp.test(got);break;} +return result;},value2regex:function(wildCard,singleChar,escapeChar){if(wildCard=="."){var msg="'.' is an unsupported wildCard character for "+"OpenLayers.Filter.Comparison";OpenLayers.Console.error(msg);return null;} +wildCard=wildCard?wildCard:"*";singleChar=singleChar?singleChar:".";escapeChar=escapeChar?escapeChar:"!";this.value=this.value.replace(new RegExp("\\"+escapeChar+"(.|$)","g"),"\\$1");this.value=this.value.replace(new RegExp("\\"+singleChar,"g"),".");this.value=this.value.replace(new RegExp("\\"+wildCard,"g"),".*");this.value=this.value.replace(new RegExp("\\\\.\\*","g"),"\\"+wildCard);this.value=this.value.replace(new RegExp("\\\\\\.","g"),"\\"+singleChar);return this.value;},regex2value:function(){var value=this.value;value=value.replace(/!/g,"!!");value=value.replace(/(\\)?\\\./g,function($0,$1){return $1?$0:"!.";});value=value.replace(/(\\)?\\\*/g,function($0,$1){return $1?$0:"!*";});value=value.replace(/\\\\/g,"\\");value=value.replace(/\.\*/g,"*");return value;},clone:function(){return OpenLayers.Util.extend(new OpenLayers.Filter.Comparison(),this);},CLASS_NAME:"OpenLayers.Filter.Comparison"});OpenLayers.Filter.Comparison.EQUAL_TO="==";OpenLayers.Filter.Comparison.NOT_EQUAL_TO="!=";OpenLayers.Filter.Comparison.LESS_THAN="<";OpenLayers.Filter.Comparison.GREATER_THAN=">";OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO="<=";OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO=">=";OpenLayers.Filter.Comparison.BETWEEN="..";OpenLayers.Filter.Comparison.LIKE="~";OpenLayers.Format.Filter=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.0.0",CLASS_NAME:"OpenLayers.Format.Filter"});OpenLayers.Filter.Function=OpenLayers.Class(OpenLayers.Filter,{name:null,params:null,initialize:function(options){OpenLayers.Filter.prototype.initialize.apply(this,[options]);},CLASS_NAME:"OpenLayers.Filter.Function"});OpenLayers.Format.Filter.v1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{ogc:"http://www.opengis.net/ogc",gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},defaultPrefix:"ogc",schemaLocation:null,initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){var obj={};this.readers.ogc["Filter"].apply(this,[data,obj]);return obj.filter;},readers:{"ogc":{"Filter":function(node,parent){var obj={fids:[],filters:[]};this.readChildNodes(node,obj);if(obj.fids.length>0){parent.filter=new OpenLayers.Filter.FeatureId({fids:obj.fids});}else if(obj.filters.length>0){parent.filter=obj.filters[0];}},"FeatureId":function(node,obj){var fid=node.getAttribute("fid");if(fid){obj.fids.push(fid);}},"And":function(node,obj){var filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.AND});this.readChildNodes(node,filter);obj.filters.push(filter);},"Or":function(node,obj){var filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.OR});this.readChildNodes(node,filter);obj.filters.push(filter);},"Not":function(node,obj){var filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.NOT});this.readChildNodes(node,filter);obj.filters.push(filter);},"PropertyIsLessThan":function(node,obj){var filter=new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.LESS_THAN});this.readChildNodes(node,filter);obj.filters.push(filter);},"PropertyIsGreaterThan":function(node,obj){var filter=new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.GREATER_THAN});this.readChildNodes(node,filter);obj.filters.push(filter);},"PropertyIsLessThanOrEqualTo":function(node,obj){var filter=new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO});this.readChildNodes(node,filter);obj.filters.push(filter);},"PropertyIsGreaterThanOrEqualTo":function(node,obj){var filter=new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO});this.readChildNodes(node,filter);obj.filters.push(filter);},"PropertyIsBetween":function(node,obj){var filter=new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.BETWEEN});this.readChildNodes(node,filter);obj.filters.push(filter);},"Literal":function(node,obj){obj.value=OpenLayers.String.numericIf(this.getChildValue(node));},"PropertyName":function(node,filter){filter.property=this.getChildValue(node);},"LowerBoundary":function(node,filter){filter.lowerBoundary=OpenLayers.String.numericIf(this.readOgcExpression(node));},"UpperBoundary":function(node,filter){filter.upperBoundary=OpenLayers.String.numericIf(this.readOgcExpression(node));},"Intersects":function(node,obj){this.readSpatial(node,obj,OpenLayers.Filter.Spatial.INTERSECTS);},"Within":function(node,obj){this.readSpatial(node,obj,OpenLayers.Filter.Spatial.WITHIN);},"Contains":function(node,obj){this.readSpatial(node,obj,OpenLayers.Filter.Spatial.CONTAINS);},"DWithin":function(node,obj){this.readSpatial(node,obj,OpenLayers.Filter.Spatial.DWITHIN);},"Distance":function(node,obj){obj.distance=parseInt(this.getChildValue(node));obj.distanceUnits=node.getAttribute("units");},"Function":function(node,obj){return;}}},readSpatial:function(node,obj,type){var filter=new OpenLayers.Filter.Spatial({type:type});this.readChildNodes(node,filter);filter.value=filter.components[0];delete filter.components;obj.filters.push(filter);},readOgcExpression:function(node){var obj={};this.readChildNodes(node,obj);var value=obj.value;if(value===undefined){value=this.getChildValue(node);} +return value;},writeOgcExpression:function(value,node){if(value instanceof OpenLayers.Filter.Function){var child=this.writeNode("Function",value,node);node.appendChild(child);}else{this.writeNode("Literal",value,node);} +return node;},write:function(filter){return this.writers.ogc["Filter"].apply(this,[filter]);},writeFeatureIdNodes:function(filter,node){for(var i=0,ii=filter.fids.length;i":"PropertyIsGreaterThan","<=":"PropertyIsLessThanOrEqualTo",">=":"PropertyIsGreaterThanOrEqualTo","..":"PropertyIsBetween","~":"PropertyIsLike","BBOX":"BBOX","DWITHIN":"DWITHIN","WITHIN":"WITHIN","CONTAINS":"CONTAINS","INTERSECTS":"INTERSECTS","FID":"FeatureId"},CLASS_NAME:"OpenLayers.Format.Filter.v1"});OpenLayers.Geometry=OpenLayers.Class({id:null,parent:null,bounds:null,initialize:function(){this.id=OpenLayers.Util.createUniqueID(this.CLASS_NAME+"_");},destroy:function(){this.id=null;this.bounds=null;},clone:function(){return new OpenLayers.Geometry();},setBounds:function(bounds){if(bounds){this.bounds=bounds.clone();}},clearBounds:function(){this.bounds=null;if(this.parent){this.parent.clearBounds();}},extendBounds:function(newBounds){var bounds=this.getBounds();if(!bounds){this.setBounds(newBounds);}else{this.bounds.extend(newBounds);}},getBounds:function(){if(this.bounds==null){this.calculateBounds();} +return this.bounds;},calculateBounds:function(){},distanceTo:function(geometry,options){},getVertices:function(nodes){},atPoint:function(lonlat,toleranceLon,toleranceLat){var atPoint=false;var bounds=this.getBounds();if((bounds!=null)&&(lonlat!=null)){var dX=(toleranceLon!=null)?toleranceLon:0;var dY=(toleranceLat!=null)?toleranceLat:0;var toleranceBounds=new OpenLayers.Bounds(this.bounds.left-dX,this.bounds.bottom-dY,this.bounds.right+dX,this.bounds.top+dY);atPoint=toleranceBounds.containsLonLat(lonlat);} +return atPoint;},getLength:function(){return 0.0;},getArea:function(){return 0.0;},getCentroid:function(){return null;},toString:function(){return OpenLayers.Format.WKT.prototype.write(new OpenLayers.Feature.Vector(this));},CLASS_NAME:"OpenLayers.Geometry"});OpenLayers.Geometry.fromWKT=function(wkt){var format=arguments.callee.format;if(!format){format=new OpenLayers.Format.WKT();arguments.callee.format=format;} +var geom;var result=format.read(wkt);if(result instanceof OpenLayers.Feature.Vector){geom=result.geometry;}else if(OpenLayers.Util.isArray(result)){var len=result.length;var components=new Array(len);for(var i=0;i=0&&along1<=1&&along2>=0&&along2<=1){if(!point){intersection=true;}else{var x=seg1.x1+(along1*x12_11);var y=seg1.y1+(along1*y12_11);intersection=new OpenLayers.Geometry.Point(x,y);}}} +if(tolerance){var dist;if(intersection){if(point){var segs=[seg1,seg2];var seg,x,y;outer:for(var i=0;i<2;++i){seg=segs[i];for(var j=1;j<3;++j){x=seg["x"+j];y=seg["y"+j];dist=Math.sqrt(Math.pow(x-intersection.x,2)+ +Math.pow(y-intersection.y,2));if(dist=1.0){x=x2;y=y2;}else{x=x1+along*dx;y=y1+along*dy;} +return{distance:Math.sqrt(Math.pow(x-x0,2)+Math.pow(y-y0,2)),x:x,y:y};};OpenLayers.Geometry.Point=OpenLayers.Class(OpenLayers.Geometry,{x:null,y:null,initialize:function(x,y){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.x=parseFloat(x);this.y=parseFloat(y);},clone:function(obj){if(obj==null){obj=new OpenLayers.Geometry.Point(this.x,this.y);} +OpenLayers.Util.applyDefaults(obj,this);return obj;},calculateBounds:function(){this.bounds=new OpenLayers.Bounds(this.x,this.y,this.x,this.y);},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var distance,x0,y0,x1,y1,result;if(geometry instanceof OpenLayers.Geometry.Point){x0=this.x;y0=this.y;x1=geometry.x;y1=geometry.y;distance=Math.sqrt(Math.pow(x0-x1,2)+Math.pow(y0-y1,2));result=!details?distance:{x0:x0,y0:y0,x1:x1,y1:y1,distance:distance};}else{result=geometry.distanceTo(this,options);if(details){result={x0:result.x1,y0:result.y1,x1:result.x0,y1:result.y0,distance:result.distance};}} +return result;},equals:function(geom){var equals=false;if(geom!=null){equals=((this.x==geom.x&&this.y==geom.y)||(isNaN(this.x)&&isNaN(this.y)&&isNaN(geom.x)&&isNaN(geom.y)));} +return equals;},toShortString:function(){return(this.x+", "+this.y);},move:function(x,y){this.x=this.x+x;this.y=this.y+y;this.clearBounds();},rotate:function(angle,origin){angle*=Math.PI/180;var radius=this.distanceTo(origin);var theta=angle+Math.atan2(this.y-origin.y,this.x-origin.x);this.x=origin.x+(radius*Math.cos(theta));this.y=origin.y+(radius*Math.sin(theta));this.clearBounds();},getCentroid:function(){return new OpenLayers.Geometry.Point(this.x,this.y);},resize:function(scale,origin,ratio){ratio=(ratio==undefined)?1:ratio;this.x=origin.x+(scale*ratio*(this.x-origin.x));this.y=origin.y+(scale*(this.y-origin.y));this.clearBounds();return this;},intersects:function(geometry){var intersect=false;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.equals(geometry);}else{intersect=geometry.intersects(this);} +return intersect;},transform:function(source,dest){if((source&&dest)){OpenLayers.Projection.transform(this,source,dest);this.bounds=null;} +return this;},getVertices:function(nodes){return[this];},CLASS_NAME:"OpenLayers.Geometry.Point"});OpenLayers.Geometry.Collection=OpenLayers.Class(OpenLayers.Geometry,{components:null,componentTypes:null,initialize:function(components){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);this.components=[];if(components!=null){this.addComponents(components);}},destroy:function(){this.components.length=0;this.components=null;OpenLayers.Geometry.prototype.destroy.apply(this,arguments);},clone:function(){var geometry=eval("new "+this.CLASS_NAME+"()");for(var i=0,len=this.components.length;i-1)){if(index!=null&&(index=0;--i){removed=this.removeComponent(components[i])||removed;} +return removed;},removeComponent:function(component){OpenLayers.Util.removeItem(this.components,component);this.clearBounds();return true;},getLength:function(){var length=0.0;for(var i=0,len=this.components.length;i0)?area:minArea;centroids.push(centroid);} +len=areas.length;if(areaSum===0){for(var i=0;i1)){for(var i=1,len=this.components.length;i1)){var p1,p2;for(var i=1,len=geom.components.length;i2);if(removed){OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);} +return removed;},intersects:function(geometry){var intersect=false;var type=geometry.CLASS_NAME;if(type=="OpenLayers.Geometry.LineString"||type=="OpenLayers.Geometry.LinearRing"||type=="OpenLayers.Geometry.Point"){var segs1=this.getSortedSegments();var segs2;if(type=="OpenLayers.Geometry.Point"){segs2=[{x1:geometry.x,y1:geometry.y,x2:geometry.x,y2:geometry.y}];}else{segs2=geometry.getSortedSegments();} +var seg1,seg1x1,seg1x2,seg1y1,seg1y2,seg2,seg2y1,seg2y2;outer:for(var i=0,len=segs1.length;iseg1x2){break;} +if(seg2.x2Math.max(seg1y1,seg1y2)){continue;} +if(Math.max(seg2y1,seg2y2)0){var xDir=seg.x10){lines.unshift(j,1);Array.prototype.splice.apply(targetParts,lines);j+=lines.length-2;} +if(mutual){for(var k=0,len=splits.points.length;k0&&points.length>0){points.push(vert2.clone());sourceParts.push(new OpenLayers.Geometry.LineString(points));}}else{results=target.splitWith(this,options);} +if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];} +if(sourceParts&&sourceParts.length>1){sourceSplit=true;}else{sourceParts=[];} +if(targetSplit||sourceSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}} +return results;},splitWith:function(geometry,options){return geometry.split(this,options);},getVertices:function(nodes){var vertices;if(nodes===true){vertices=[this.components[0],this.components[this.components.length-1]];}else if(nodes===false){vertices=this.components.slice(1,this.components.length-1);}else{vertices=this.components.slice();} +return vertices;},distanceTo:function(geometry,options){var edge=!(options&&options.edge===false);var details=edge&&options&&options.details;var result,best={};var min=Number.POSITIVE_INFINITY;if(geometry instanceof OpenLayers.Geometry.Point){var segs=this.getSortedSegments();var x=geometry.x;var y=geometry.y;var seg;for(var i=0,len=segs.length;ix&&((y>seg.y1&&yseg.y2))){break;}}} +if(details){best={distance:best.distance,x0:best.x,y0:best.y,x1:x,y1:y};}else{best=best.distance;}}else if(geometry instanceof OpenLayers.Geometry.LineString){var segs0=this.getSortedSegments();var segs1=geometry.getSortedSegments();var seg0,seg1,intersection,x0,y0;var len1=segs1.length;var interOptions={point:true};outer:for(var i=0,len=segs0.length;imaxDistance){maxDistance=distance;indexFarthest=index;}} +if(maxDistance>tolerance&&indexFarthest!=firstPoint){pointIndexsToKeep.push(indexFarthest);douglasPeuckerReduction(points,firstPoint,indexFarthest,tolerance);douglasPeuckerReduction(points,indexFarthest,lastPoint,tolerance);}};var perpendicularDistance=function(point1,point2,point){var area=Math.abs(0.5*(point1.x*point2.y+point2.x*point.y+point.x*point1.y-point2.x*point1.y-point.x*point2.y-point1.x*point.y));var bottom=Math.sqrt(Math.pow(point1.x-point2.x,2)+Math.pow(point1.y-point2.y,2));var height=area/bottom*2;return height;};var firstPoint=0;var lastPoint=points.length-1;var pointIndexsToKeep=[];pointIndexsToKeep.push(firstPoint);pointIndexsToKeep.push(lastPoint);while(points[firstPoint].equals(points[lastPoint])){lastPoint--;pointIndexsToKeep.push(lastPoint);} +douglasPeuckerReduction(points,firstPoint,lastPoint,tolerance);var returnPoints=[];pointIndexsToKeep.sort(compareNumbers);for(var index=0;index1){sourceSplit=true;}else{sourceParts=[];} +if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];} +if(sourceSplit||targetSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}} +return results;},splitWith:function(geometry,options){var results=null;var mutual=options&&options.mutual;var splits,targetLine,sourceLines,sourceSplit,targetSplit,sourceParts,targetParts;if(geometry instanceof OpenLayers.Geometry.LineString){targetParts=[];sourceParts=[geometry];for(var i=0,len=this.components.length;i1){sourceSplit=true;}else{sourceParts=[];} +if(targetParts&&targetParts.length>1){targetSplit=true;}else{targetParts=[];} +if(sourceSplit||targetSplit){if(mutual){results=[sourceParts,targetParts];}else{results=targetParts;}} +return results;},CLASS_NAME:"OpenLayers.Geometry.MultiLineString"});OpenLayers.Geometry.LinearRing=OpenLayers.Class(OpenLayers.Geometry.LineString,{componentTypes:["OpenLayers.Geometry.Point"],initialize:function(points){OpenLayers.Geometry.LineString.prototype.initialize.apply(this,arguments);},addComponent:function(point,index){var added=false;var lastPoint=this.components.pop();if(index!=null||!point.equals(lastPoint)){added=OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,arguments);} +var firstPoint=this.components[0];OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,[firstPoint]);return added;},removeComponent:function(point){var removed=this.components&&(this.components.length>3);if(removed){this.components.pop();OpenLayers.Geometry.Collection.prototype.removeComponent.apply(this,arguments);var firstPoint=this.components[0];OpenLayers.Geometry.Collection.prototype.addComponent.apply(this,[firstPoint]);} +return removed;},move:function(x,y){for(var i=0,len=this.components.length;i2)){var sumX=0.0;var sumY=0.0;for(var i=0;i2)){var sum=0.0;for(var i=0,len=this.components.length;i2){var p1,p2;for(var i=0;i=x1&&px<=x2)||x1>=x2&&(px<=x1&&px>=x2)){crosses=-1;break;}} +continue;} +cx=approx(getX(py,x1,y1,x2,y2),digs);if(cx==px){if(y1=y1&&py<=y2)||y1>y2&&(py<=y1&&py>=y2)){crosses=-1;break;}} +if(cx<=px){continue;} +if(x1!=x2&&(cxMath.max(x1,x2))){continue;} +if(y1=y1&&pyy2&&(py=y2)){++crosses;}} +var contained=(crosses==-1)?1:!!(crosses&1);return contained;},intersects:function(geometry){var intersect=false;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){intersect=this.containsPoint(geometry);}else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LineString"){intersect=geometry.intersects(this);}else if(geometry.CLASS_NAME=="OpenLayers.Geometry.LinearRing"){intersect=OpenLayers.Geometry.LineString.prototype.intersects.apply(this,[geometry]);}else{for(var i=0,len=geometry.components.length;i0)){area+=Math.abs(this.components[0].getArea());for(var i=1,len=this.components.length;i0)){area+=Math.abs(this.components[0].getGeodesicArea(projection));for(var i=1,len=this.components.length;i0){contained=this.components[0].containsPoint(point);if(contained!==1){if(contained&&numRings>1){var hole;for(var i=1;i0){parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));} +break;}} +var bounds;var boxNodes=this.getElementsByTagNameNS(node,this.gmlns,"Box");for(i=0;i0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);} +if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");}} +if(coords.length==0){nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coord");if(nodeList.length>0){var xList=this.getElementsByTagNameNS(nodeList[0],this.gmlns,"X");var yList=this.getElementsByTagNameNS(nodeList[0],this.gmlns,"Y");if(xList.length>0&&yList.length>0){coords=[xList[0].firstChild.nodeValue,yList[0].firstChild.nodeValue];}}} +if(coords.length==2){coords[2]=null;} +if(this.xy){return new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);} +else{return new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}},multipoint:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"Point");var components=[];if(nodeList.length>0){var point;for(var i=0;i0){coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);var dim=parseInt(nodeList[0].getAttribute("dimension"));var j,x,y,z;for(var i=0;i0){coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coordString=coordString.replace(this.regExes.trimComma,",");var pointList=coordString.split(this.regExes.splitSpace);for(var i=0;i0){var line;for(var i=0;i0){var ring;for(var i=0;i0){var polygon;for(var i=0;i0){var coords=[];if(lpoint.length>0){coordString=lpoint[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);} +if(coords.length==2){coords[2]=null;} +if(this.xy){var lowerPoint=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{var lowerPoint=new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}} +var upoint=this.getElementsByTagNameNS(node,this.gmlns,"upperCorner");if(upoint.length>0){var coords=[];if(upoint.length>0){coordString=upoint[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.trimSpace,"");coords=coordString.split(this.regExes.splitSpace);} +if(coords.length==2){coords[2]=null;} +if(this.xy){var upperPoint=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{var upperPoint=new OpenLayers.Geometry.Point(coords[1],coords[0],coords[2]);}} +if(lowerPoint&&upperPoint){components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,lowerPoint.y));components.push(new OpenLayers.Geometry.Point(upperPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,upperPoint.y));components.push(new OpenLayers.Geometry.Point(lowerPoint.x,lowerPoint.y));var ring=new OpenLayers.Geometry.LinearRing(components);envelope=new OpenLayers.Geometry.Polygon([ring]);} +return envelope;},box:function(node){var nodeList=this.getElementsByTagNameNS(node,this.gmlns,"coordinates");var coordString;var coords,beginPoint=null,endPoint=null;if(nodeList.length>0){coordString=nodeList[0].firstChild.nodeValue;coords=coordString.split(" ");if(coords.length==2){beginPoint=coords[0].split(",");endPoint=coords[1].split(",");}} +if(beginPoint!==null&&endPoint!==null){return new OpenLayers.Bounds(parseFloat(beginPoint[0]),parseFloat(beginPoint[1]),parseFloat(endPoint[0]),parseFloat(endPoint[1]));}}},parseAttributes:function(node){var attributes={};var childNode=node.firstChild;var children,i,child,grandchildren,grandchild,name,value;while(childNode){if(childNode.nodeType==1){children=childNode.childNodes;for(i=0;i0){obj.bounds=container.components[0];}},"Point":function(node,container){var obj={points:[]};this.readChildNodes(node,obj);if(!container.components){container.components=[];} +container.components.push(obj.points[0]);},"coordinates":function(node,obj){var str=this.getChildValue(node).replace(this.regExes.trimSpace,"");str=str.replace(this.regExes.trimComma,",");var pointList=str.split(this.regExes.splitSpace);var coords;var numPoints=pointList.length;var points=new Array(numPoints);for(var i=0;i0){container.components=[new OpenLayers.Geometry.MultiLineString(obj.components)];}},"curveMember":function(node,obj){this.readChildNodes(node,obj);},"MultiSurface":function(node,container){var obj={components:[]};this.readChildNodes(node,obj);if(obj.components.length>0){container.components=[new OpenLayers.Geometry.MultiPolygon(obj.components)];}},"surfaceMember":function(node,obj){this.readChildNodes(node,obj);},"surfaceMembers":function(node,obj){this.readChildNodes(node,obj);},"pointMembers":function(node,obj){this.readChildNodes(node,obj);},"lineStringMembers":function(node,obj){this.readChildNodes(node,obj);},"polygonMembers":function(node,obj){this.readChildNodes(node,obj);},"geometryMembers":function(node,obj){this.readChildNodes(node,obj);},"Envelope":function(node,container){var obj={points:new Array(2)};this.readChildNodes(node,obj);if(!container.components){container.components=[];} +var min=obj.points[0];var max=obj.points[1];container.components.push(new OpenLayers.Bounds(min.x,min.y,max.x,max.y));},"lowerCorner":function(node,container){var obj={};this.readers.gml.pos.apply(this,[node,obj]);container.points[0]=obj.points[0];},"upperCorner":function(node,container){var obj={};this.readers.gml.pos.apply(this,[node,obj]);container.points[1]=obj.points[0];}},OpenLayers.Format.GML.Base.prototype.readers["gml"]),"feature":OpenLayers.Format.GML.Base.prototype.readers["feature"],"wfs":OpenLayers.Format.GML.Base.prototype.readers["wfs"]},write:function(features){var name;if(OpenLayers.Util.isArray(features)){name="featureMembers";}else{name="featureMember";} +var root=this.writeNode("gml:"+name,features);this.setAttributeNS(root,this.namespaces["xsi"],"xsi:schemaLocation",this.schemaLocation);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},writers:{"gml":OpenLayers.Util.applyDefaults({"featureMembers":function(features){var node=this.createElementNSPlus("gml:featureMembers");for(var i=0,len=features.length;i=0;i--){ctl=this.controls[i];if(ctl.events){ctl.events.un({activate:this.iconOn,deactivate:this.iconOff});} +OpenLayers.Event.stopObservingElement(ctl.panel_div);ctl.panel_div=null;} +this.activeState=null;},activate:function(){if(OpenLayers.Control.prototype.activate.apply(this,arguments)){var control;for(var i=0,len=this.controls.length;i=0;i--){this.div.removeChild(this.div.childNodes[i]);} +this.div.innerHTML="";if(this.active){for(var i=0,len=this.controls.length;i=bounds.bottom-tilelat*this.buffer)||rowidx=0)&&(testCell=0)){tile=this.grid[testRow][testCell];} +if((tile!=null)&&(!tile.queued)){tileQueue.unshift(tile);tile.queued=true;directionsTried=0;iRow=testRow;iCell=testCell;}else{direction=(direction+1)%4;directionsTried++;}} +for(var i=0,len=tileQueue.length;i-this.tileSize.w*(buffer-1)){this.shiftColumn(true);}else if(tlViewPort.x<-this.tileSize.w*buffer){this.shiftColumn(false);}else if(tlViewPort.y>-this.tileSize.h*(buffer-1)){this.shiftRow(true);}else if(tlViewPort.y<-this.tileSize.h*buffer){this.shiftRow(false);}else{shifted=false;} +if(shifted){this.timerId=window.setTimeout(this._moveGriddedTiles,0);}},shiftRow:function(prepend){var modelRowIndex=(prepend)?0:(this.grid.length-1);var grid=this.grid;var modelRow=grid[modelRowIndex];var resolution=this.map.getResolution();var deltaY=(prepend)?-this.tileSize.h:this.tileSize.h;var deltaLat=resolution*-deltaY;var row=(prepend)?grid.pop():grid.shift();for(var i=0,len=modelRow.length;irows){var row=this.grid.pop();for(var i=0,l=row.length;icolumns){for(var i=0,l=this.grid.length;ibottomRight.lon){if(topLeft.lon<0){topLeft.lon=-180-(topLeft.lon+180);}else{bottomRight.lon=180+bottomRight.lon+180;}} +var bounds=new OpenLayers.Bounds(topLeft.lon,bottomRight.lat,bottomRight.lon,topLeft.lat);return bounds;},showTile:function(){if(this.shouldDraw){this.show();}},show:function(){},hide:function(){},CLASS_NAME:"OpenLayers.Tile"});OpenLayers.Tile.Image=OpenLayers.Class(OpenLayers.Tile,{url:null,imgDiv:null,frame:null,layerAlphaHack:null,isBackBuffer:false,isFirstDraw:true,backBufferTile:null,maxGetUrlLength:null,initialize:function(layer,position,bounds,url,size,options){OpenLayers.Tile.prototype.initialize.apply(this,arguments);if(this.maxGetUrlLength!=null){OpenLayers.Util.extend(this,OpenLayers.Tile.Image.IFrame);} +this.url=url;this.frame=document.createElement('div');this.frame.style.overflow='hidden';this.frame.style.position='absolute';this.layerAlphaHack=this.layer.alpha&&OpenLayers.Util.alphaHack();},destroy:function(){if(this.imgDiv!=null){this.removeImgDiv();} +this.imgDiv=null;if((this.frame!=null)&&(this.frame.parentNode==this.layer.div)){this.layer.div.removeChild(this.frame);} +this.frame=null;if(this.backBufferTile){this.backBufferTile.destroy();this.backBufferTile=null;} +this.layer.events.unregister("loadend",this,this.resetBackBuffer);OpenLayers.Tile.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Tile.Image(this.layer,this.position,this.bounds,this.url,this.size);} +obj=OpenLayers.Tile.prototype.clone.apply(this,[obj]);obj.imgDiv=null;return obj;},draw:function(){if(this.layer!=this.layer.map.baseLayer&&this.layer.reproject){this.bounds=this.getBoundsFromBaseLayer(this.position);} +var drawTile=OpenLayers.Tile.prototype.draw.apply(this,arguments);if((OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1)||this.layer.singleTile){if(drawTile){if(!this.backBufferTile){this.backBufferTile=this.clone();this.backBufferTile.hide();this.backBufferTile.isBackBuffer=true;this.events.register('loadend',this,this.resetBackBuffer);this.layer.events.register("loadend",this,this.resetBackBuffer);} +this.startTransition();}else{if(this.backBufferTile){this.backBufferTile.clear();}}}else{if(drawTile&&this.isFirstDraw){this.events.register('loadend',this,this.showTile);this.isFirstDraw=false;}} +if(!drawTile){return false;} +if(this.isLoading){this.events.triggerEvent("reload");}else{this.isLoading=true;this.events.triggerEvent("loadstart");} +return this.renderTile();},resetBackBuffer:function(){this.showTile();if(this.backBufferTile&&(this.isFirstDraw||!this.layer.numLoadingTiles)){this.isFirstDraw=false;var maxExtent=this.layer.maxExtent;var withinMaxExtent=(maxExtent&&this.bounds.intersectsBounds(maxExtent,false));if(withinMaxExtent){this.backBufferTile.position=this.position;this.backBufferTile.bounds=this.bounds;this.backBufferTile.size=this.size;this.backBufferTile.imageSize=this.layer.getImageSize(this.bounds)||this.size;this.backBufferTile.imageOffset=this.layer.imageOffset;this.backBufferTile.resolution=this.layer.getResolution();this.backBufferTile.renderTile();} +this.backBufferTile.hide();}},renderTile:function(){if(this.layer.async){this.initImgDiv();this.layer.getURLasync(this.bounds,this,"url",this.positionImage);}else{this.url=this.layer.getURL(this.bounds);this.initImgDiv();this.positionImage();} +return true;},positionImage:function(){if(this.layer===null){return;} +OpenLayers.Util.modifyDOMElement(this.frame,null,this.position,this.size);var imageSize=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){OpenLayers.Util.modifyAlphaImageDiv(this.imgDiv,null,null,imageSize,this.url);}else{OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,imageSize);this.imgDiv.src=this.url;}},clear:function(){if(this.imgDiv){this.hide();if(OpenLayers.Tile.Image.useBlankTile){this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}}},initImgDiv:function(){if(this.imgDiv==null){var offset=this.layer.imageOffset;var size=this.layer.getImageSize(this.bounds);if(this.layerAlphaHack){this.imgDiv=OpenLayers.Util.createAlphaImageDiv(null,offset,size,null,"relative",null,null,null,true);}else{this.imgDiv=OpenLayers.Util.createImage(null,offset,size,null,"relative",null,null,true);} +if(OpenLayers.Util.isArray(this.layer.url)){this.imgDiv.urls=this.layer.url.slice();} +this.imgDiv.className='olTileImage';this.frame.style.zIndex=this.isBackBuffer?0:1;this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,null,null,this.layer.opacity);} +this.imgDiv.map=this.layer.map;var onload=function(){if(this.isLoading){this.isLoading=false;this.events.triggerEvent("loadend");}};if(this.layerAlphaHack){OpenLayers.Event.observe(this.imgDiv.childNodes[0],'load',OpenLayers.Function.bind(onload,this));}else{OpenLayers.Event.observe(this.imgDiv,'load',OpenLayers.Function.bind(onload,this));} +var onerror=function(){if(this.imgDiv._attempts>OpenLayers.IMAGE_RELOAD_ATTEMPTS){onload.call(this);}};OpenLayers.Event.observe(this.imgDiv,"error",OpenLayers.Function.bind(onerror,this));} +this.imgDiv.viewRequestID=this.layer.map.viewRequestID;},removeImgDiv:function(){OpenLayers.Event.stopObservingElement(this.imgDiv);if(this.imgDiv.parentNode==this.frame){this.frame.removeChild(this.imgDiv);this.imgDiv.map=null;} +this.imgDiv.urls=null;var child=this.imgDiv.firstChild;if(child){OpenLayers.Event.stopObservingElement(child);this.imgDiv.removeChild(child);delete child;}else{this.imgDiv.src=OpenLayers.Util.getImagesLocation()+"blank.gif";}},checkImgURL:function(){if(this.layer){var loaded=this.layerAlphaHack?this.imgDiv.firstChild.src:this.imgDiv.src;if(!OpenLayers.Util.isEquivalentUrl(loaded,this.url)){this.hide();}}},startTransition:function(){if(!this.backBufferTile||!this.backBufferTile.imgDiv){return;} +var ratio=1;if(this.backBufferTile.resolution){ratio=this.backBufferTile.resolution/this.layer.getResolution();} +if(ratio!=1){if(this.layer.transitionEffect=='resize'){var upperLeft=new OpenLayers.LonLat(this.backBufferTile.bounds.left,this.backBufferTile.bounds.top);var size=new OpenLayers.Size(this.backBufferTile.size.w*ratio,this.backBufferTile.size.h*ratio);var px=this.layer.map.getLayerPxFromLonLat(upperLeft);OpenLayers.Util.modifyDOMElement(this.backBufferTile.frame,null,px,size);var imageSize=this.backBufferTile.imageSize;imageSize=new OpenLayers.Size(imageSize.w*ratio,imageSize.h*ratio);var imageOffset=this.backBufferTile.imageOffset;if(imageOffset){imageOffset=new OpenLayers.Pixel(imageOffset.x*ratio,imageOffset.y*ratio);} +OpenLayers.Util.modifyDOMElement(this.backBufferTile.imgDiv,null,imageOffset,imageSize);this.backBufferTile.show();}}else{if(this.layer.singleTile){this.backBufferTile.show();}else{this.backBufferTile.hide();}}},show:function(){this.frame.style.display='';if(OpenLayers.Util.indexOf(this.layer.SUPPORTED_TRANSITIONS,this.layer.transitionEffect)!=-1){if(OpenLayers.IS_GECKO===true){this.frame.scrollLeft=this.frame.scrollLeft;}}},hide:function(){this.frame.style.display='none';},CLASS_NAME:"OpenLayers.Tile.Image"});OpenLayers.Tile.Image.useBlankTile=(OpenLayers.BROWSER_NAME=="safari"||OpenLayers.BROWSER_NAME=="opera");OpenLayers.Format.ArcXML=OpenLayers.Class(OpenLayers.Format.XML,{fontStyleKeys:['antialiasing','blockout','font','fontcolor','fontsize','fontstyle','glowing','interval','outline','printmode','shadow','transparency'],request:null,response:null,initialize:function(options){this.request=new OpenLayers.Format.ArcXML.Request();this.response=new OpenLayers.Format.ArcXML.Response();if(options){if(options.requesttype=="feature"){this.request.get_image=null;var qry=this.request.get_feature.query;this.addCoordSys(qry.featurecoordsys,options.featureCoordSys);this.addCoordSys(qry.filtercoordsys,options.filterCoordSys);if(options.polygon){qry.isspatial=true;qry.spatialfilter.polygon=options.polygon;}else if(options.envelope){qry.isspatial=true;qry.spatialfilter.envelope={minx:0,miny:0,maxx:0,maxy:0};this.parseEnvelope(qry.spatialfilter.envelope,options.envelope);}}else if(options.requesttype=="image"){this.request.get_feature=null;var props=this.request.get_image.properties;this.parseEnvelope(props.envelope,options.envelope);this.addLayers(props.layerlist,options.layers);this.addImageSize(props.imagesize,options.tileSize);this.addCoordSys(props.featurecoordsys,options.featureCoordSys);this.addCoordSys(props.filtercoordsys,options.filterCoordSys);}else{this.request=null;}} +OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},parseEnvelope:function(env,arr){if(arr&&arr.length==4){env.minx=arr[0];env.miny=arr[1];env.maxx=arr[2];env.maxy=arr[3];}},addLayers:function(ll,lyrs){for(var lind=0,len=lyrs.length;lind0);} +return ret;},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} +var arcNode=null;if(data&&data.documentElement){if(data.documentElement.nodeName=="ARCXML"){arcNode=data.documentElement;}else{arcNode=data.documentElement.getElementsByTagName("ARCXML")[0];}} +if(!arcNode||arcNode.firstChild.nodeName==='parsererror'){var error,source;try{error=data.firstChild.nodeValue;source=data.firstChild.childNodes[1].firstChild.nodeValue;}catch(err){} +throw{message:"Error parsing the ArcXML request",error:error,source:source};} +var response=this.parseResponse(arcNode);return response;},write:function(request){if(!request){request=this.request;} +var root=this.createElementNS("","ARCXML");root.setAttribute("version","1.1");var reqElem=this.createElementNS("","REQUEST");if(request.get_image!=null){var getElem=this.createElementNS("","GET_IMAGE");reqElem.appendChild(getElem);var propElem=this.createElementNS("","PROPERTIES");getElem.appendChild(propElem);var props=request.get_image.properties;if(props.featurecoordsys!=null){var feat=this.createElementNS("","FEATURECOORDSYS");propElem.appendChild(feat);if(props.featurecoordsys.id===0){feat.setAttribute("string",props.featurecoordsys['string']);} +else{feat.setAttribute("id",props.featurecoordsys.id);}} +if(props.filtercoordsys!=null){var filt=this.createElementNS("","FILTERCOORDSYS");propElem.appendChild(filt);if(props.filtercoordsys.id===0){filt.setAttribute("string",props.filtercoordsys.string);} +else{filt.setAttribute("id",props.filtercoordsys.id);}} +if(props.envelope!=null){var env=this.createElementNS("","ENVELOPE");propElem.appendChild(env);env.setAttribute("minx",props.envelope.minx);env.setAttribute("miny",props.envelope.miny);env.setAttribute("maxx",props.envelope.maxx);env.setAttribute("maxy",props.envelope.maxy);} +var imagesz=this.createElementNS("","IMAGESIZE");propElem.appendChild(imagesz);imagesz.setAttribute("height",props.imagesize.height);imagesz.setAttribute("width",props.imagesize.width);if(props.imagesize.height!=props.imagesize.printheight||props.imagesize.width!=props.imagesize.printwidth){imagesz.setAttribute("printheight",props.imagesize.printheight);imagesz.setArrtibute("printwidth",props.imagesize.printwidth);} +if(props.background!=null){var backgrnd=this.createElementNS("","BACKGROUND");propElem.appendChild(backgrnd);backgrnd.setAttribute("color",props.background.color.r+","+ +props.background.color.g+","+ +props.background.color.b);if(props.background.transcolor!==null){backgrnd.setAttribute("transcolor",props.background.transcolor.r+","+ +props.background.transcolor.g+","+ +props.background.transcolor.b);}} +if(props.layerlist!=null&&props.layerlist.length>0){var layerlst=this.createElementNS("","LAYERLIST");propElem.appendChild(layerlst);for(var ld=0;ld0){queryElem.setAttribute("accuracy",query.accuracy);} +if(typeof query.featurelimit=="number"&&query.featurelimit<2000){queryElem.setAttribute("featurelimit",query.featurelimit);} +if(typeof query.subfields=="string"&&query.subfields!="#ALL#"){queryElem.setAttribute("subfields",query.subfields);} +if(typeof query.joinexpression=="string"&&query.joinexpression.length>0){queryElem.setAttribute("joinexpression",query.joinexpression);} +if(typeof query.jointables=="string"&&query.jointables.length>0){queryElem.setAttribute("jointables",query.jointables);} +ldef.appendChild(queryElem);} +if(typeof props.layerlist[ld].renderer=="object"){this.addRenderer(ldef,props.layerlist[ld].renderer);}}}}else if(request.get_feature!=null){var getElem=this.createElementNS("","GET_FEATURES");getElem.setAttribute("outputmode","newxml");getElem.setAttribute("checkesc","true");if(request.get_feature.geometry){getElem.setAttribute("geometry",request.get_feature.geometry);} +else{getElem.setAttribute("geometry","false");} +if(request.get_feature.compact){getElem.setAttribute("compact",request.get_feature.compact);} +if(request.get_feature.featurelimit=="number"){getElem.setAttribute("featurelimit",request.get_feature.featurelimit);} +getElem.setAttribute("globalenvelope","true");reqElem.appendChild(getElem);if(request.get_feature.layer!=null&&request.get_feature.layer.length>0){var lyrElem=this.createElementNS("","LAYER");lyrElem.setAttribute("id",request.get_feature.layer);getElem.appendChild(lyrElem);} +var fquery=request.get_feature.query;if(fquery!=null){var qElem=null;if(fquery.isspatial){qElem=this.createElementNS("","SPATIALQUERY");}else{qElem=this.createElementNS("","QUERY");} +getElem.appendChild(qElem);if(typeof fquery.accuracy=="number"){qElem.setAttribute("accuracy",fquery.accuracy);} +if(fquery.featurecoordsys!=null){var fcsElem1=this.createElementNS("","FEATURECOORDSYS");if(fquery.featurecoordsys.id==0){fcsElem1.setAttribute("string",fquery.featurecoordsys.string);}else{fcsElem1.setAttribute("id",fquery.featurecoordsys.id);} +qElem.appendChild(fcsElem1);} +if(fquery.filtercoordsys!=null){var fcsElem2=this.createElementNS("","FILTERCOORDSYS");if(fquery.filtercoordsys.id===0){fcsElem2.setAttribute("string",fquery.filtercoordsys.string);}else{fcsElem2.setAttribute("id",fquery.filtercoordsys.id);} +qElem.appendChild(fcsElem2);} +if(fquery.buffer>0){var bufElem=this.createElementNS("","BUFFER");bufElem.setAttribute("distance",fquery.buffer);qElem.appendChild(bufElem);} +if(fquery.isspatial){var spfElem=this.createElementNS("","SPATIALFILTER");spfElem.setAttribute("relation",fquery.spatialfilter.relation);qElem.appendChild(spfElem);if(fquery.spatialfilter.envelope){var envElem=this.createElementNS("","ENVELOPE");envElem.setAttribute("minx",fquery.spatialfilter.envelope.minx);envElem.setAttribute("miny",fquery.spatialfilter.envelope.miny);envElem.setAttribute("maxx",fquery.spatialfilter.envelope.maxx);envElem.setAttribute("maxy",fquery.spatialfilter.envelope.maxy);spfElem.appendChild(envElem);}else if(typeof fquery.spatialfilter.polygon=="object"){spfElem.appendChild(this.writePolygonGeometry(fquery.spatialfilter.polygon));}} +if(fquery.where!=null&&fquery.where.length>0){qElem.setAttribute("where",fquery.where);}}} +root.appendChild(reqElem);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},addGroupRenderer:function(ldef,toprenderer){var topRelem=this.createElementNS("","GROUPRENDERER");ldef.appendChild(topRelem);for(var rind=0;rind0){response.error=this.getChildValue(errorNode,"Unknown error.");}else{var responseNode=data.getElementsByTagName("RESPONSE");if(responseNode==null||responseNode.length==0){response.error="No RESPONSE tag found in ArcXML response.";return response;} +var rtype=responseNode[0].firstChild.nodeName;if(rtype=="#text"){rtype=responseNode[0].firstChild.nextSibling.nodeName;} +if(rtype=="IMAGE"){var envelopeNode=data.getElementsByTagName("ENVELOPE");var outputNode=data.getElementsByTagName("OUTPUT");if(envelopeNode==null||envelopeNode.length==0){response.error="No ENVELOPE tag found in ArcXML response.";}else if(outputNode==null||outputNode.length==0){response.error="No OUTPUT tag found in ArcXML response.";}else{var envAttr=this.parseAttributes(envelopeNode[0]);var outputAttr=this.parseAttributes(outputNode[0]);if(typeof outputAttr.type=="string"){response.image={envelope:envAttr,output:{type:outputAttr.type,data:this.getChildValue(outputNode[0])}};}else{response.image={envelope:envAttr,output:outputAttr};}}}else if(rtype=="FEATURES"){var features=responseNode[0].getElementsByTagName("FEATURES");var featureCount=features[0].getElementsByTagName("FEATURECOUNT");response.features.featurecount=featureCount[0].getAttribute("count");if(response.features.featurecount>0){var envelope=features[0].getElementsByTagName("ENVELOPE");response.features.envelope=this.parseAttributes(envelope[0],typeof(0));var featureList=features[0].getElementsByTagName("FEATURE");for(var fn=0;fn0){var ring=geom[0].getElementsByTagName("RING");var polys=[];for(var rn=0;rn0){var coordArr=this.getChildValue(coords[0]);coordArr=coordArr.split(/;/);for(var cn=0;cn0){for(var pn=0;pn=200&&request.status<300)){this.events.triggerEvent("success",options);if(success){success(request);}} +if(request.status&&(request.status<200||request.status>=300)){this.events.triggerEvent("failure",options);if(failure){failure(request);}}},GET:function(config){config=OpenLayers.Util.extend(config,{method:"GET"});return OpenLayers.Request.issue(config);},POST:function(config){config=OpenLayers.Util.extend(config,{method:"POST"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";} +return OpenLayers.Request.issue(config);},PUT:function(config){config=OpenLayers.Util.extend(config,{method:"PUT"});config.headers=config.headers?config.headers:{};if(!("CONTENT-TYPE"in OpenLayers.Util.upperCaseObject(config.headers))){config.headers["Content-Type"]="application/xml";} +return OpenLayers.Request.issue(config);},DELETE:function(config){config=OpenLayers.Util.extend(config,{method:"DELETE"});return OpenLayers.Request.issue(config);},HEAD:function(config){config=OpenLayers.Util.extend(config,{method:"HEAD"});return OpenLayers.Request.issue(config);},OPTIONS:function(config){config=OpenLayers.Util.extend(config,{method:"OPTIONS"});return OpenLayers.Request.issue(config);}};OpenLayers.Layer.ArcIMS=OpenLayers.Class(OpenLayers.Layer.Grid,{DEFAULT_PARAMS:{ClientVersion:"9.2",ServiceName:''},tileSize:null,featureCoordSys:"4326",filterCoordSys:"4326",layers:null,async:true,name:"ArcIMS",isBaseLayer:true,DEFAULT_OPTIONS:{tileSize:new OpenLayers.Size(512,512),featureCoordSys:"4326",filterCoordSys:"4326",layers:null,isBaseLayer:true,async:true,name:"ArcIMS"},initialize:function(name,url,options){this.tileSize=new OpenLayers.Size(512,512);this.params=OpenLayers.Util.applyDefaults({ServiceName:options.serviceName},this.DEFAULT_PARAMS);this.options=OpenLayers.Util.applyDefaults(options,this.DEFAULT_OPTIONS);OpenLayers.Layer.Grid.prototype.initialize.apply(this,[name,url,this.params,options]);if(this.transparent){if(!this.isBaseLayer){this.isBaseLayer=false;} +if(this.format=="image/jpeg"){this.format=OpenLayers.Util.alphaHack()?"image/gif":"image/png";}} +if(this.options.layers===null){this.options.layers=[];}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},getURL:function(bounds){var url="";bounds=this.adjustBounds(bounds);var axlReq=new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options,{requesttype:"image",envelope:bounds.toArray(),tileSize:this.tileSize}));var req=new OpenLayers.Request.POST({url:this.getFullRequestString(),data:axlReq.write(),async:false});if(req!=null){var doc=req.responseXML;if(!doc||!doc.documentElement){doc=req.responseText;} +var axlResp=new OpenLayers.Format.ArcXML();var arcxml=axlResp.read(doc);url=this.getUrlOrImage(arcxml.image.output);} +return url;},getURLasync:function(bounds,scope,prop,callback){bounds=this.adjustBounds(bounds);var axlReq=new OpenLayers.Format.ArcXML(OpenLayers.Util.extend(this.options,{requesttype:"image",envelope:bounds.toArray(),tileSize:this.tileSize}));OpenLayers.Request.POST({url:this.getFullRequestString(),async:true,data:axlReq.write(),callback:function(req){var doc=req.responseXML;if(!doc||!doc.documentElement){doc=req.responseText;} +var axlResp=new OpenLayers.Format.ArcXML();var arcxml=axlResp.read(doc);scope[prop]=this.getUrlOrImage(arcxml.image.output);callback.apply(scope);},scope:this});},getUrlOrImage:function(output){var ret="";if(output.url){ret=output.url;}else if(output.data){ret="data:image/"+output.type+";base64,"+output.data;} +return ret;},setLayerQuery:function(id,querydef){for(var lyr=0;lyr=0;--i){this._removeButton(this.buttons[i]);}},doubleClick:function(evt){OpenLayers.Event.stop(evt);return false;},buttonDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;} +switch(this.action){case"panup":this.map.pan(0,-this.getSlideFactor("h"));break;case"pandown":this.map.pan(0,this.getSlideFactor("h"));break;case"panleft":this.map.pan(-this.getSlideFactor("w"),0);break;case"panright":this.map.pan(this.getSlideFactor("w"),0);break;case"zoomin":this.map.zoomIn();break;case"zoomout":this.map.zoomOut();break;case"zoomworld":this.map.zoomToMaxExtent();break;} +OpenLayers.Event.stop(evt);},CLASS_NAME:"OpenLayers.Control.PanZoom"});OpenLayers.Control.PanZoom.X=4;OpenLayers.Control.PanZoom.Y=4;OpenLayers.Control.PanZoomBar=OpenLayers.Class(OpenLayers.Control.PanZoom,{zoomStopWidth:18,zoomStopHeight:11,slider:null,sliderEvents:null,zoombarDiv:null,divEvents:null,zoomWorldIcon:false,panIcons:true,forceFixedZoomLevel:false,mouseDragStart:null,deltaY:null,zoomStart:null,destroy:function(){this._removeZoomBar();this.map.events.un({"changebaselayer":this.redraw,scope:this});OpenLayers.Control.PanZoom.prototype.destroy.apply(this,arguments);delete this.mouseDragStart;delete this.zoomStart;},setMap:function(map){OpenLayers.Control.PanZoom.prototype.setMap.apply(this,arguments);this.map.events.register("changebaselayer",this,this.redraw);},redraw:function(){if(this.div!=null){this.removeButtons();this._removeZoomBar();} +this.draw();},draw:function(px){OpenLayers.Control.prototype.draw.apply(this,arguments);px=this.position.clone();this.buttons=[];var sz=new OpenLayers.Size(18,18);if(this.panIcons){var centered=new OpenLayers.Pixel(px.x+sz.w/2,px.y);var wposition=sz.w;if(this.zoomWorldIcon){centered=new OpenLayers.Pixel(px.x+sz.w,px.y);} +this._addButton("panup","north-mini.png",centered,sz);px.y=centered.y+sz.h;this._addButton("panleft","west-mini.png",px,sz);if(this.zoomWorldIcon){this._addButton("zoomworld","zoom-world-mini.png",px.add(sz.w,0),sz);wposition*=2;} +this._addButton("panright","east-mini.png",px.add(wposition,0),sz);this._addButton("pandown","south-mini.png",centered.add(0,sz.h*2),sz);this._addButton("zoomin","zoom-plus-mini.png",centered.add(0,sz.h*3+5),sz);centered=this._addZoomBar(centered.add(0,sz.h*4+5));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);} +else{this._addButton("zoomin","zoom-plus-mini.png",px,sz);centered=this._addZoomBar(px.add(0,sz.h));this._addButton("zoomout","zoom-minus-mini.png",centered,sz);if(this.zoomWorldIcon){centered=centered.add(0,sz.h+3);this._addButton("zoomworld","zoom-world-mini.png",centered,sz);}} +return this.div;},_addZoomBar:function(centered){var imgLocation=OpenLayers.Util.getImagesLocation();var id=this.id+"_"+this.map.id;var zoomsToEnd=this.map.getNumZoomLevels()-1-this.map.getZoom();var slider=OpenLayers.Util.createAlphaImageDiv(id,centered.add(-1,zoomsToEnd*this.zoomStopHeight),new OpenLayers.Size(20,9),imgLocation+"slider.png","absolute");slider.style.cursor="move";this.slider=slider;this.sliderEvents=new OpenLayers.Events(this,slider,null,true,{includeXY:true});this.sliderEvents.on({"touchstart":this.zoomBarDown,"touchmove":this.zoomBarDrag,"touchend":this.zoomBarUp,"mousedown":this.zoomBarDown,"mousemove":this.zoomBarDrag,"mouseup":this.zoomBarUp,"dblclick":this.doubleClick,"click":this.doubleClick});var sz=new OpenLayers.Size();sz.h=this.zoomStopHeight*this.map.getNumZoomLevels();sz.w=this.zoomStopWidth;var div=null;if(OpenLayers.Util.alphaHack()){var id=this.id+"_"+this.map.id;div=OpenLayers.Util.createAlphaImageDiv(id,centered,new OpenLayers.Size(sz.w,this.zoomStopHeight),imgLocation+"zoombar.png","absolute",null,"crop");div.style.height=sz.h+"px";}else{div=OpenLayers.Util.createDiv('OpenLayers_Control_PanZoomBar_Zoombar'+this.map.id,centered,sz,imgLocation+"zoombar.png");} +div.style.cursor="pointer";this.zoombarDiv=div;this.divEvents=new OpenLayers.Events(this,div,null,true,{includeXY:true});this.divEvents.on({"touchmove":this.passEventToSlider,"mousedown":this.divClick,"mousemove":this.passEventToSlider,"dblclick":this.doubleClick,"click":this.doubleClick});this.div.appendChild(div);this.startTop=parseInt(div.style.top);this.div.appendChild(slider);this.map.events.register("zoomend",this,this.moveZoomBar);centered=centered.add(0,this.zoomStopHeight*this.map.getNumZoomLevels());return centered;},_removeZoomBar:function(){this.sliderEvents.un({"touchmove":this.zoomBarDrag,"mousedown":this.zoomBarDown,"mousemove":this.zoomBarDrag,"mouseup":this.zoomBarUp,"dblclick":this.doubleClick,"click":this.doubleClick});this.sliderEvents.destroy();this.divEvents.un({"touchmove":this.passEventToSlider,"mousedown":this.divClick,"mousemove":this.passEventToSlider,"dblclick":this.doubleClick,"click":this.doubleClick});this.divEvents.destroy();this.div.removeChild(this.zoombarDiv);this.zoombarDiv=null;this.div.removeChild(this.slider);this.slider=null;this.map.events.unregister("zoomend",this,this.moveZoomBar);},passEventToSlider:function(evt){this.sliderEvents.handleBrowserEvent(evt);},divClick:function(evt){if(!OpenLayers.Event.isLeftClick(evt)){return;} +var levels=evt.xy.y/this.zoomStopHeight;if(this.forceFixedZoomLevel||!this.map.fractionalZoom){levels=Math.floor(levels);} +var zoom=(this.map.getNumZoomLevels()-1)-levels;zoom=Math.min(Math.max(zoom,0),this.map.getNumZoomLevels()-1);this.map.zoomTo(zoom);OpenLayers.Event.stop(evt);},zoomBarDown:function(evt){if(!OpenLayers.Event.isLeftClick(evt)&&!OpenLayers.Event.isSingleTouch(evt)){return;} +this.map.events.on({"touchmove":this.passEventToSlider,"mousemove":this.passEventToSlider,"mouseup":this.passEventToSlider,scope:this});this.mouseDragStart=evt.xy.clone();this.zoomStart=evt.xy.clone();this.div.style.cursor="move";this.zoombarDiv.offsets=null;OpenLayers.Event.stop(evt);},zoomBarDrag:function(evt){if(this.mouseDragStart!=null){var deltaY=this.mouseDragStart.y-evt.xy.y;var offsets=OpenLayers.Util.pagePosition(this.zoombarDiv);if((evt.clientY-offsets[1])>0&&(evt.clientY-offsets[1])0){this.layer.destroyFeatures(destroys);} +this.events.triggerEvent("success",evt);}else{this.events.triggerEvent("fail",evt);}},CLASS_NAME:"OpenLayers.Strategy.Save"});OpenLayers.Format.GPX=OpenLayers.Class(OpenLayers.Format.XML,{extractWaypoints:true,extractTracks:true,extractRoutes:true,extractAttributes:true,initialize:function(options){this.externalProjection=new OpenLayers.Projection("EPSG:4326");OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(doc){if(typeof doc=="string"){doc=OpenLayers.Format.XML.prototype.read.apply(this,[doc]);} +var features=[];if(this.extractTracks){var tracks=doc.getElementsByTagName("trk");for(var i=0,len=tracks.length;i0){typeName=query[0].getAttribute('typeName');if(!typeName){typeName=query[0].getAttribute('typename');}} +describelayer.push({layerName:layerName,owsType:owsType,owsURL:owsURL,typeName:typeName});}} +return describelayer;},CLASS_NAME:"OpenLayers.Format.WMSDescribeLayer.v1_1"});OpenLayers.Format.XLS=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{defaultVersion:"1.1.0",stringifyOutput:true,CLASS_NAME:"OpenLayers.Format.XLS"});OpenLayers.Format.XLS.v1=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{xls:"http://www.opengis.net/xls",gml:"http://www.opengis.net/gml",xsi:"http://www.w3.org/2001/XMLSchema-instance"},regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)},xy:true,defaultPrefix:"xls",schemaLocation:null,initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data,options){options=OpenLayers.Util.applyDefaults(options,this.options);var xls={};this.readChildNodes(data,xls);return xls;},readers:{"xls":{"XLS":function(node,xls){xls.version=node.getAttribute("version");this.readChildNodes(node,xls);},"Response":function(node,xls){this.readChildNodes(node,xls);},"GeocodeResponse":function(node,xls){xls.responseLists=[];this.readChildNodes(node,xls);},"GeocodeResponseList":function(node,xls){var responseList={features:[],numberOfGeocodedAddresses:parseInt(node.getAttribute("numberOfGeocodedAddresses"))};xls.responseLists.push(responseList);this.readChildNodes(node,responseList);},"GeocodedAddress":function(node,responseList){var feature=new OpenLayers.Feature.Vector();responseList.features.push(feature);this.readChildNodes(node,feature);feature.geometry=feature.components[0];},"GeocodeMatchCode":function(node,feature){feature.attributes.matchCode={accuracy:parseFloat(node.getAttribute("accuracy")),matchType:node.getAttribute("matchType")};},"Address":function(node,feature){var address={countryCode:node.getAttribute("countryCode"),addressee:node.getAttribute("addressee"),street:[],place:[]};feature.attributes.address=address;this.readChildNodes(node,address);},"freeFormAddress":function(node,address){address.freeFormAddress=this.getChildValue(node);},"StreetAddress":function(node,address){this.readChildNodes(node,address);},"Building":function(node,address){address.building={'number':node.getAttribute("number"),subdivision:node.getAttribute("subdivision"),buildingName:node.getAttribute("buildingName")};},"Street":function(node,address){address.street.push(this.getChildValue(node));},"Place":function(node,address){address.place[node.getAttribute("type")]=this.getChildValue(node);},"PostalCode":function(node,address){address.postalCode=this.getChildValue(node);}},"gml":OpenLayers.Format.GML.v3.prototype.readers.gml},write:function(request){return this.writers.xls.XLS.apply(this,[request]);},writers:{"xls":{"XLS":function(request){var root=this.createElementNSPlus("xls:XLS",{attributes:{"version":this.VERSION,"xsi:schemaLocation":this.schemaLocation}});this.writeNode("RequestHeader",request.header,root);this.writeNode("Request",request,root);return root;},"RequestHeader":function(header){return this.createElementNSPlus("xls:RequestHeader");},"Request":function(request){var node=this.createElementNSPlus("xls:Request",{attributes:{methodName:"GeocodeRequest",requestID:request.requestID||"",version:this.VERSION}});this.writeNode("GeocodeRequest",request.addresses,node);return node;},"GeocodeRequest":function(addresses){var node=this.createElementNSPlus("xls:GeocodeRequest");for(var i=0,len=addresses.length;i=16777216){this.hitOverflow=id-16777215;id=id%16777216+1;} +var hex="000000"+id.toString(16);var len=hex.length;hex="#"+hex.substring(len-6,len);return hex;},setHitContextStyle:function(type,featureId,symbolizer){var hex=this.featureIdToHex(featureId);if(type=="fill"){this.hitContext.globalAlpha=1.0;this.hitContext.fillStyle=hex;}else if(type=="stroke"){this.hitContext.globalAlpha=1.0;this.hitContext.strokeStyle=hex;this.hitContext.lineWidth=symbolizer.strokeWidth+2;}else{this.hitContext.globalAlpha=0;this.hitContext.lineWidth=1;}},drawPoint:function(geometry,style,featureId){if(style.graphic!==false){if(style.externalGraphic){this.drawExternalGraphic(geometry,style,featureId);}else{var pt=this.getLocalXY(geometry);var p0=pt[0];var p1=pt[1];if(!isNaN(p0)&&!isNaN(p1)){var twoPi=Math.PI*2;var radius=style.pointRadius;if(style.fill!==false){this.setCanvasStyle("fill",style);this.canvas.beginPath();this.canvas.arc(p0,p1,radius,0,twoPi,true);this.canvas.fill();if(this.hitDetection){this.setHitContextStyle("fill",featureId,style);this.hitContext.beginPath();this.hitContext.arc(p0,p1,radius,0,twoPi,true);this.hitContext.fill();}} +if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.canvas.beginPath();this.canvas.arc(p0,p1,radius,0,twoPi,true);this.canvas.stroke();if(this.hitDetection){this.setHitContextStyle("stroke",featureId,style);this.hitContext.beginPath();this.hitContext.arc(p0,p1,radius,0,twoPi,true);this.hitContext.stroke();} +this.setCanvasStyle("reset");}}}}},drawLineString:function(geometry,style,featureId){style=OpenLayers.Util.applyDefaults({fill:false},style);this.drawLinearRing(geometry,style,featureId);},drawLinearRing:function(geometry,style,featureId){if(style.fill!==false){this.setCanvasStyle("fill",style);this.renderPath(this.canvas,geometry,style,featureId,"fill");if(this.hitDetection){this.setHitContextStyle("fill",featureId,style);this.renderPath(this.hitContext,geometry,style,featureId,"fill");}} +if(style.stroke!==false){this.setCanvasStyle("stroke",style);this.renderPath(this.canvas,geometry,style,featureId,"stroke");if(this.hitDetection){this.setHitContextStyle("stroke",featureId,style);this.renderPath(this.hitContext,geometry,style,featureId,"stroke");}} +this.setCanvasStyle("reset");},renderPath:function(context,geometry,style,featureId,type){var components=geometry.components;var len=components.length;context.beginPath();var start=this.getLocalXY(components[0]);var x=start[0];var y=start[1];if(!isNaN(x)&&!isNaN(y)){context.moveTo(start[0],start[1]);for(var i=1;i=0;i--){var nodes=this.createFeatureNodes(features[i]);for(var j=0;j0){this.timeoutId=setTimeout(OpenLayers.Function.bind(this.removeTimeout,this),this.interval);} +this.dragging=true;this.move(evt);this.callback("move",[evt.xy]);if(!this.oldOnselectstart){this.oldOnselectstart=document.onselectstart;document.onselectstart=OpenLayers.Function.False;} +this.last=evt.xy;} +return true;},dragend:function(evt){if(this.started){if(this.documentDrag===true&&this.documentEvents){this.adjustXY(evt);this.removeDocumentEvents();} +var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.up(evt);this.callback("up",[evt.xy]);if(dragged){this.callback("done",[evt.xy]);} +document.onselectstart=this.oldOnselectstart;} +return true;},down:function(evt){},move:function(evt){},up:function(evt){},out:function(evt){},mousedown:function(evt){return this.dragstart(evt);},touchstart:function(evt){if(!this.touch){this.touch=true;this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,mousemove:this.mousemove,click:this.click,scope:this});} +return this.dragstart(evt);},mousemove:function(evt){return this.dragmove(evt);},touchmove:function(evt){return this.dragmove(evt);},removeTimeout:function(){this.timeoutId=null;if(this.dragging){this.mousemove(this.lastMoveEvt);}},mouseup:function(evt){return this.dragend(evt);},touchend:function(evt){evt.xy=this.last;return this.dragend(evt);},mouseout:function(evt){if(this.started&&OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){if(this.documentDrag===true){this.addDocumentEvents();}else{var dragged=(this.start!=this.last);this.started=false;this.dragging=false;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");this.out(evt);this.callback("out",[]);if(dragged){this.callback("done",[evt.xy]);} +if(document.onselectstart){document.onselectstart=this.oldOnselectstart;}}} +return true;},click:function(evt){return(this.start==this.last);},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragging=false;activated=true;} +return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.touch=false;this.started=false;this.dragging=false;this.start=null;this.last=null;deactivated=true;OpenLayers.Element.removeClass(this.map.viewPortDiv,"olDragDown");} +return deactivated;},adjustXY:function(evt){var pos=OpenLayers.Util.pagePosition(this.map.viewPortDiv);evt.xy.x-=pos[0];evt.xy.y-=pos[1];},addDocumentEvents:function(){OpenLayers.Element.addClass(document.body,"olDragDown");this.documentEvents=true;OpenLayers.Event.observe(document,"mousemove",this._docMove);OpenLayers.Event.observe(document,"mouseup",this._docUp);},removeDocumentEvents:function(){OpenLayers.Element.removeClass(document.body,"olDragDown");this.documentEvents=false;OpenLayers.Event.stopObserving(document,"mousemove",this._docMove);OpenLayers.Event.stopObserving(document,"mouseup",this._docUp);},CLASS_NAME:"OpenLayers.Handler.Drag"});OpenLayers.Handler.Feature=OpenLayers.Class(OpenLayers.Handler,{EVENTMAP:{'click':{'in':'click','out':'clickout'},'mousemove':{'in':'over','out':'out'},'dblclick':{'in':'dblclick','out':null},'mousedown':{'in':null,'out':null},'mouseup':{'in':null,'out':null},'touchstart':{'in':'click','out':'clickout'}},feature:null,lastFeature:null,down:null,up:null,touch:false,clickTolerance:4,geometryTypes:null,stopClick:true,stopDown:true,stopUp:false,initialize:function(control,layer,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,[control,callbacks,options]);this.layer=layer;},touchstart:function(evt){if(!this.touch){this.touch=true;this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,mousemove:this.mousemove,click:this.click,dblclick:this.dblclick,scope:this});} +return OpenLayers.Event.isMultiTouch(evt)?true:this.mousedown(evt);},touchmove:function(evt){OpenLayers.Event.stop(evt);},mousedown:function(evt){this.down=evt.xy;return this.handle(evt)?!this.stopDown:true;},mouseup:function(evt){this.up=evt.xy;return this.handle(evt)?!this.stopUp:true;},click:function(evt){return this.handle(evt)?!this.stopClick:true;},mousemove:function(evt){if(!this.callbacks['over']&&!this.callbacks['out']){return true;} +this.handle(evt);return true;},dblclick:function(evt){return!this.handle(evt);},geometryTypeMatches:function(feature){return this.geometryTypes==null||OpenLayers.Util.indexOf(this.geometryTypes,feature.geometry.CLASS_NAME)>-1;},handle:function(evt){if(this.feature&&!this.feature.layer){this.feature=null;} +var type=evt.type;var handled=false;var previouslyIn=!!(this.feature);var click=(type=="click"||type=="dblclick"||type=="touchstart");this.feature=this.layer.getFeatureFromEvent(evt);if(this.feature&&!this.feature.layer){this.feature=null;} +if(this.lastFeature&&!this.lastFeature.layer){this.lastFeature=null;} +if(this.feature){if(type==="touchstart"){OpenLayers.Event.stop(evt);} +var inNew=(this.feature!=this.lastFeature);if(this.geometryTypeMatches(this.feature)){if(previouslyIn&&inNew){if(this.lastFeature){this.triggerCallback(type,'out',[this.lastFeature]);} +this.triggerCallback(type,'in',[this.feature]);}else if(!previouslyIn||click){this.triggerCallback(type,'in',[this.feature]);} +this.lastFeature=this.feature;handled=true;}else{if(this.lastFeature&&(previouslyIn&&inNew||click)){this.triggerCallback(type,'out',[this.lastFeature]);} +this.feature=null;}}else{if(this.lastFeature&&(previouslyIn||click)){this.triggerCallback(type,'out',[this.lastFeature]);}} +return handled;},triggerCallback:function(type,mode,args){var key=this.EVENTMAP[type][mode];if(key){if(type=='click'&&this.up&&this.down){var dpx=Math.sqrt(Math.pow(this.up.x-this.down.x,2)+ +Math.pow(this.up.y-this.down.y,2));if(dpx<=this.clickTolerance){this.callback(key,args);}}else{this.callback(key,args);}}},activate:function(){var activated=false;if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.moveLayerToTop();this.map.events.on({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});activated=true;} +return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){this.moveLayerBack();this.feature=null;this.lastFeature=null;this.down=null;this.up=null;this.touch=false;this.map.events.un({"removelayer":this.handleMapEvents,"changelayer":this.handleMapEvents,scope:this});deactivated=true;} +return deactivated;},handleMapEvents:function(evt){if(evt.type=="removelayer"||evt.property=="order"){this.moveLayerToTop();}},moveLayerToTop:function(){var index=Math.max(this.map.Z_INDEX_BASE['Feature']-1,this.layer.getZIndex())+1;this.layer.setZIndex(index);},moveLayerBack:function(){var index=this.layer.getZIndex()-1;if(index>=this.map.Z_INDEX_BASE['Feature']){this.layer.setZIndex(index);}else{this.map.setLayerZIndex(this.layer,this.map.getLayerIndex(this.layer));}},CLASS_NAME:"OpenLayers.Handler.Feature"});OpenLayers.Control.DragFeature=OpenLayers.Class(OpenLayers.Control,{geometryTypes:null,onStart:function(feature,pixel){},onDrag:function(feature,pixel){},onComplete:function(feature,pixel){},onEnter:function(feature){},onLeave:function(feature){},documentDrag:false,layer:null,feature:null,dragCallbacks:{},featureCallbacks:{},lastPixel:null,initialize:function(layer,options){OpenLayers.Control.prototype.initialize.apply(this,[options]);this.layer=layer;this.handlers={drag:new OpenLayers.Handler.Drag(this,OpenLayers.Util.extend({down:this.downFeature,move:this.moveFeature,up:this.upFeature,out:this.cancel,done:this.doneDragging},this.dragCallbacks),{documentDrag:this.documentDrag}),feature:new OpenLayers.Handler.Feature(this,this.layer,OpenLayers.Util.extend({click:this.clickFeature,clickout:this.clickoutFeature,over:this.overFeature,out:this.outFeature},this.featureCallbacks),{geometryTypes:this.geometryTypes})};},clickFeature:function(feature){if(this.handlers.feature.touch&&!this.over&&this.overFeature(feature)){this.handlers.drag.dragstart(this.handlers.feature.evt);this.handlers.drag.stopDown=false;}},clickoutFeature:function(feature){if(this.handlers.feature.touch&&this.over){this.outFeature(feature);this.handlers.drag.stopDown=true;}},destroy:function(){this.layer=null;OpenLayers.Control.prototype.destroy.apply(this,[]);},activate:function(){return(this.handlers.feature.activate()&&OpenLayers.Control.prototype.activate.apply(this,arguments));},deactivate:function(){this.handlers.drag.deactivate();this.handlers.feature.deactivate();this.feature=null;this.dragging=false;this.lastPixel=null;OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},overFeature:function(feature){var activated=false;if(!this.handlers.drag.dragging){this.feature=feature;this.handlers.drag.activate();activated=true;this.over=true;OpenLayers.Element.addClass(this.map.viewPortDiv,this.displayClass+"Over");this.onEnter(feature);}else{if(this.feature.id==feature.id){this.over=true;}else{this.over=false;}} +return activated;},downFeature:function(pixel){this.lastPixel=pixel;this.onStart(this.feature,pixel);},moveFeature:function(pixel){var res=this.map.getResolution();this.feature.geometry.move(res*(pixel.x-this.lastPixel.x),res*(this.lastPixel.y-pixel.y));this.layer.drawFeature(this.feature);this.lastPixel=pixel;this.onDrag(this.feature,pixel);},upFeature:function(pixel){if(!this.over){this.handlers.drag.deactivate();}},doneDragging:function(pixel){this.onComplete(this.feature,pixel);},outFeature:function(feature){if(!this.handlers.drag.dragging){this.over=false;this.handlers.drag.deactivate();OpenLayers.Element.removeClass(this.map.viewPortDiv,this.displayClass+"Over");this.onLeave(feature);this.feature=null;}else{if(this.feature.id==feature.id){this.over=false;}}},cancel:function(){this.handlers.drag.deactivate();this.over=false;},setMap:function(map){this.handlers.drag.setMap(map);this.handlers.feature.setMap(map);OpenLayers.Control.prototype.setMap.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.DragFeature"});OpenLayers.StyleMap=OpenLayers.Class({styles:null,extendDefault:true,initialize:function(style,options){this.styles={"default":new OpenLayers.Style(OpenLayers.Feature.Vector.style["default"]),"select":new OpenLayers.Style(OpenLayers.Feature.Vector.style["select"]),"temporary":new OpenLayers.Style(OpenLayers.Feature.Vector.style["temporary"]),"delete":new OpenLayers.Style(OpenLayers.Feature.Vector.style["delete"])};if(style instanceof OpenLayers.Style){this.styles["default"]=style;this.styles["select"]=style;this.styles["temporary"]=style;this.styles["delete"]=style;}else if(typeof style=="object"){for(var key in style){if(style[key]instanceof OpenLayers.Style){this.styles[key]=style[key];}else if(typeof style[key]=="object"){this.styles[key]=new OpenLayers.Style(style[key]);}else{this.styles["default"]=new OpenLayers.Style(style);this.styles["select"]=new OpenLayers.Style(style);this.styles["temporary"]=new OpenLayers.Style(style);this.styles["delete"]=new OpenLayers.Style(style);break;}}} +OpenLayers.Util.extend(this,options);},destroy:function(){for(var key in this.styles){this.styles[key].destroy();} +this.styles=null;},createSymbolizer:function(feature,intent){if(!feature){feature=new OpenLayers.Feature.Vector();} +if(!this.styles[intent]){intent="default";} +feature.renderIntent=intent;var defaultSymbolizer={};if(this.extendDefault&&intent!="default"){defaultSymbolizer=this.styles["default"].createSymbolizer(feature);} +return OpenLayers.Util.extend(defaultSymbolizer,this.styles[intent].createSymbolizer(feature));},addUniqueValueRules:function(renderIntent,property,symbolizers,context){var rules=[];for(var value in symbolizers){rules.push(new OpenLayers.Rule({symbolizer:symbolizers[value],context:context,filter:new OpenLayers.Filter.Comparison({type:OpenLayers.Filter.Comparison.EQUAL_TO,property:property,value:value})}));} +this.styles[renderIntent].addRules(rules);},CLASS_NAME:"OpenLayers.StyleMap"});OpenLayers.Layer.Vector=OpenLayers.Class(OpenLayers.Layer,{EVENT_TYPES:["beforefeatureadded","beforefeaturesadded","featureadded","featuresadded","beforefeatureremoved","beforefeaturesremoved","featureremoved","featuresremoved","beforefeatureselected","featureselected","featureunselected","beforefeaturemodified","featuremodified","afterfeaturemodified","vertexmodified","vertexremoved","sketchstarted","sketchmodified","sketchcomplete","refresh"],isBaseLayer:false,isFixed:false,features:null,filter:null,selectedFeatures:null,unrenderedFeatures:null,reportError:true,style:null,styleMap:null,strategies:null,protocol:null,renderers:['SVG','VML','Canvas'],renderer:null,rendererOptions:null,geometryType:null,drawn:false,initialize:function(name,options){this.EVENT_TYPES=OpenLayers.Layer.Vector.prototype.EVENT_TYPES.concat(OpenLayers.Layer.prototype.EVENT_TYPES);OpenLayers.Layer.prototype.initialize.apply(this,arguments);if(!this.renderer||!this.renderer.supported()){this.assignRenderer();} +if(!this.renderer||!this.renderer.supported()){this.renderer=null;this.displayError();} +if(!this.styleMap){this.styleMap=new OpenLayers.StyleMap();} +this.features=[];this.selectedFeatures=[];this.unrenderedFeatures={};if(this.strategies){for(var i=0,len=this.strategies.length;i=0;i--){if(i!=0&&features[i-1].geometry){this.renderer.locked=true;}else{this.renderer.locked=false;} +var feature=features[i];delete this.unrenderedFeatures[feature.id];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});} +this.features=OpenLayers.Util.removeItem(this.features,feature);feature.layer=null;if(feature.geometry){this.renderer.eraseFeatures(feature);} +if(OpenLayers.Util.indexOf(this.selectedFeatures,feature)!=-1){OpenLayers.Util.removeItem(this.selectedFeatures,feature);} +if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}} +if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},removeAllFeatures:function(options){var notify=!options||!options.silent;var features=this.features;if(notify){this.events.triggerEvent("beforefeaturesremoved",{features:features});} +var feature;for(var i=features.length-1;i>=0;i--){feature=features[i];if(notify){this.events.triggerEvent("beforefeatureremoved",{feature:feature});} +feature.layer=null;if(notify){this.events.triggerEvent("featureremoved",{feature:feature});}} +this.renderer.clear();this.features=[];this.unrenderedFeatures={};this.selectedFeatures=[];if(notify){this.events.triggerEvent("featuresremoved",{features:features});}},destroyFeatures:function(features,options){var all=(features==undefined);if(all){features=this.features;} +if(features){this.removeFeatures(features,options);for(var i=features.length-1;i>=0;i--){features[i].destroy();}}},drawFeature:function(feature,style){if(!this.drawn){return;} +if(typeof style!="object"){if(!style&&feature.state===OpenLayers.State.DELETE){style="delete";} +var renderIntent=style||feature.renderIntent;style=feature.style||this.style;if(!style){style=this.styleMap.createSymbolizer(feature,renderIntent);}} +var drawn=this.renderer.drawFeature(feature,style);if(drawn===false||drawn===null){this.unrenderedFeatures[feature.id]=feature;}else{delete this.unrenderedFeatures[feature.id];}},eraseFeatures:function(features){this.renderer.eraseFeatures(features);},getFeatureFromEvent:function(evt){if(!this.renderer){OpenLayers.Console.error(OpenLayers.i18n("getFeatureError"));return null;} +var feature=null;var featureId=this.renderer.getFeatureIdFromEvent(evt);if(featureId){if(typeof featureId==="string"){feature=this.getFeatureById(featureId);}else{feature=featureId;}} +return feature;},getFeatureBy:function(property,value){var feature=null;for(var i=0,len=this.features.length;i0)){var geometry=null;for(var i=0,len=features.length;i=0;--i){feature=layer.selectedFeatures[i];if(!options||options.except!=feature){this.unselect(feature);}}}},clickFeature:function(feature){if(!this.hover){var selected=(OpenLayers.Util.indexOf(feature.layer.selectedFeatures,feature)>-1);if(selected){if(this.toggleSelect()){this.unselect(feature);}else if(!this.multipleSelect()){this.unselectAll({except:feature});}}else{if(!this.multipleSelect()){this.unselectAll({except:feature});} +this.select(feature);}}},multipleSelect:function(){return this.multiple||(this.handlers.feature.evt&&this.handlers.feature.evt[this.multipleKey]);},toggleSelect:function(){return this.toggle||(this.handlers.feature.evt&&this.handlers.feature.evt[this.toggleKey]);},clickoutFeature:function(feature){if(!this.hover&&this.clickout){this.unselectAll();}},overFeature:function(feature){var layer=feature.layer;if(this.hover){if(this.highlightOnly){this.highlight(feature);}else if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}},outFeature:function(feature){if(this.hover){if(this.highlightOnly){if(feature._lastHighlighter==this.id){if(feature._prevHighlighter&&feature._prevHighlighter!=this.id){delete feature._lastHighlighter;var control=this.map.getControl(feature._prevHighlighter);if(control){control.highlight(feature);}}else{this.unhighlight(feature);}}}else{this.unselect(feature);}}},highlight:function(feature){var layer=feature.layer;var cont=this.events.triggerEvent("beforefeaturehighlighted",{feature:feature});if(cont!==false){feature._prevHighlighter=feature._lastHighlighter;feature._lastHighlighter=this.id;var style=this.selectStyle||this.renderIntent;layer.drawFeature(feature,style);this.events.triggerEvent("featurehighlighted",{feature:feature});}},unhighlight:function(feature){var layer=feature.layer;if(feature._prevHighlighter==undefined){delete feature._lastHighlighter;}else if(feature._prevHighlighter==this.id){delete feature._prevHighlighter;}else{feature._lastHighlighter=feature._prevHighlighter;delete feature._prevHighlighter;} +layer.drawFeature(feature,feature.style||feature.layer.style||"default");this.events.triggerEvent("featureunhighlighted",{feature:feature});},select:function(feature){var cont=this.onBeforeSelect.call(this.scope,feature);var layer=feature.layer;if(cont!==false){cont=layer.events.triggerEvent("beforefeatureselected",{feature:feature});if(cont!==false){layer.selectedFeatures.push(feature);this.highlight(feature);if(!this.handlers.feature.lastFeature){this.handlers.feature.lastFeature=layer.selectedFeatures[0];} +layer.events.triggerEvent("featureselected",{feature:feature});this.onSelect.call(this.scope,feature);}}},unselect:function(feature){var layer=feature.layer;this.unhighlight(feature);OpenLayers.Util.removeItem(layer.selectedFeatures,feature);layer.events.triggerEvent("featureunselected",{feature:feature});this.onUnselect.call(this.scope,feature);},selectBox:function(position){if(position instanceof OpenLayers.Bounds){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));var bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);if(!this.multipleSelect()){this.unselectAll();} +var prevMultiple=this.multiple;this.multiple=true;var layers=this.layers||[this.layer];var layer;for(var l=0;l-1){if(bounds.toGeometry().intersects(feature.geometry)){if(OpenLayers.Util.indexOf(layer.selectedFeatures,feature)==-1){this.select(feature);}}}}} +this.multiple=prevMultiple;}},setMap:function(map){this.handlers.feature.setMap(map);if(this.box){this.handlers.box.setMap(map);} +OpenLayers.Control.prototype.setMap.apply(this,arguments);},setLayer:function(layers){var isActive=this.active;this.unselectAll();this.deactivate();if(this.layers){this.layer.destroy();this.layers=null;} +this.initLayer(layers);this.handlers.feature.layer=this.layer;if(isActive){this.activate();}},CLASS_NAME:"OpenLayers.Control.SelectFeature"});OpenLayers.Handler.Keyboard=OpenLayers.Class(OpenLayers.Handler,{KEY_EVENTS:["keydown","keyup"],eventListener:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.eventListener=OpenLayers.Function.bindAsEventListener(this.handleKeyEvent,this);},destroy:function(){this.deactivate();this.eventListener=null;OpenLayers.Handler.prototype.destroy.apply(this,arguments);},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){for(var i=0,len=this.KEY_EVENTS.length;i0){this.layer.destroyFeatures(this.virtualVertices,{silent:true});this.virtualVertices=[];} +this.layer.drawFeature(this.feature,this.standalone?undefined:this.selectControl.renderIntent);} +this.layer.drawFeature(vertex);},dragComplete:function(vertex){this.resetVertices();this.setFeatureState();this.onModification(this.feature);this.layer.events.triggerEvent("featuremodified",{feature:this.feature});},setFeatureState:function(){if(this.feature.state!=OpenLayers.State.INSERT&&this.feature.state!=OpenLayers.State.DELETE){this.feature.state=OpenLayers.State.UPDATE;if(this.modified&&this._originalGeometry){var feature=this.feature;feature.modified=OpenLayers.Util.extend(feature.modified,{geometry:this._originalGeometry});delete this._originalGeometry;}}},resetVertices:function(){if(this.dragControl.feature){this.dragControl.outFeature(this.dragControl.feature);} +if(this.vertices.length>0){this.layer.removeFeatures(this.vertices,{silent:true});this.vertices=[];} +if(this.virtualVertices.length>0){this.layer.removeFeatures(this.virtualVertices,{silent:true});this.virtualVertices=[];} +if(this.dragHandle){this.layer.destroyFeatures([this.dragHandle],{silent:true});this.dragHandle=null;} +if(this.radiusHandle){this.layer.destroyFeatures([this.radiusHandle],{silent:true});this.radiusHandle=null;} +if(this.feature&&this.feature.geometry.CLASS_NAME!="OpenLayers.Geometry.Point"){if((this.mode&OpenLayers.Control.ModifyFeature.DRAG)){this.collectDragHandle();} +if((this.mode&(OpenLayers.Control.ModifyFeature.ROTATE|OpenLayers.Control.ModifyFeature.RESIZE))){this.collectRadiusHandle();} +if(this.mode&OpenLayers.Control.ModifyFeature.RESHAPE){if(!(this.mode&OpenLayers.Control.ModifyFeature.RESIZE)){this.collectVertices();}}}},handleKeypress:function(evt){var code=evt.keyCode;if(this.feature&&OpenLayers.Util.indexOf(this.deleteCodes,code)!=-1){var vertex=this.dragControl.feature;if(vertex&&OpenLayers.Util.indexOf(this.vertices,vertex)!=-1&&!this.dragControl.handlers.drag.dragging&&vertex.geometry.parent){vertex.geometry.parent.removeComponent(vertex.geometry);this.layer.events.triggerEvent("vertexremoved",{vertex:vertex.geometry,feature:this.feature,pixel:evt.xy});this.layer.drawFeature(this.feature,this.standalone?undefined:this.selectControl.renderIntent);this.modified=true;this.resetVertices();this.setFeatureState();this.onModification(this.feature);this.layer.events.triggerEvent("featuremodified",{feature:this.feature});}}},collectVertices:function(){this.vertices=[];this.virtualVertices=[];var control=this;function collectComponentVertices(geometry){var i,vertex,component,len;if(geometry.CLASS_NAME=="OpenLayers.Geometry.Point"){vertex=new OpenLayers.Feature.Vector(geometry);vertex._sketch=true;vertex.renderIntent=control.vertexRenderIntent;control.vertices.push(vertex);}else{var numVert=geometry.components.length;if(geometry.CLASS_NAME=="OpenLayers.Geometry.LinearRing"){numVert-=1;} +for(i=0;iOpenStreetMap",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.png',clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions());} +obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},wrapDateLine:true,CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Layer.Bing=OpenLayers.Class(OpenLayers.Layer.XYZ,{serverResolutions:[156543.03390625,78271.516953125,39135.7584765625,19567.87923828125,9783.939619140625,4891.9698095703125,2445.9849047851562,1222.9924523925781,611.4962261962891,305.74811309814453,152.87405654907226,76.43702827453613,38.218514137268066,19.109257068634033,9.554628534317017,4.777314267158508,2.388657133579254,1.194328566789627,0.5971642833948135,0.29858214169740677,0.14929107084870338,0.07464553542435169],attributionTemplate:''+'${copyrights}'+''+'Terms of Use',metadata:null,type:"Road",metadataParams:null,initialize:function(options){options=OpenLayers.Util.applyDefaults({sphericalMercator:true},options);var name=options.name||"Bing "+(options.type||this.type);var newArgs=[name,null,options];OpenLayers.Layer.XYZ.prototype.initialize.apply(this,newArgs);this.loadMetadata();},loadMetadata:function(){this._callbackId="_callback_"+this.id.replace(/\./g,"_");window[this._callbackId]=OpenLayers.Function.bind(OpenLayers.Layer.Bing.processMetadata,this);var params=OpenLayers.Util.applyDefaults({key:this.key,jsonp:this._callbackId,include:"ImageryProviders"},this.metadataParams);var url="http://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+ +this.type+"?"+OpenLayers.Util.getParameterString(params);var script=document.createElement("script");script.type="text/javascript";script.src=url;script.id=this._callbackId;document.getElementsByTagName("head")[0].appendChild(script);},initLayer:function(){var res=this.metadata.resourceSets[0].resources[0];var url=res.imageUrl.replace("{quadkey}","${quadkey}");this.url=[];for(var i=0;i0;--i){var digit='0';var mask=1<<(i-1);if((x&mask)!=0){digit++;} +if((y&mask)!=0){digit++;digit++;} +quadDigits.push(digit);} +var quadKey=quadDigits.join("");var url=this.selectUrl(''+x+y+z,this.url);return OpenLayers.String.format(url,{'quadkey':quadKey});},updateAttribution:function(){var metadata=this.metadata;if(!metadata||!this.map||!this.map.center){return;} +var res=metadata.resourceSets[0].resources[0];var extent=this.map.getExtent().transform(this.map.getProjectionObject(),new OpenLayers.Projection("EPSG:4326"));var providers=res.imageryProviders,zoom=this.map.getZoom()+1,copyrights="",provider,i,ii,j,jj,bbox,coverage;for(i=0,ii=providers.length;i=coverage.zoomMin){copyrights+=provider.attribution+" ";}}} +this.attribution=OpenLayers.String.format(this.attributionTemplate,{type:this.type.toLowerCase(),logo:metadata.brandLogoUri,copyrights:copyrights});this.map&&this.map.events.triggerEvent("changelayer",{layer:this,property:"attribution"});},setMap:function(){OpenLayers.Layer.XYZ.prototype.setMap.apply(this,arguments);this.updateAttribution();this.map.events.register("moveend",this,this.updateAttribution);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.Bing(this.options);} +obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},destroy:function(){this.map&&this.map.events.unregister("moveend",this,this.updateAttribution);OpenLayers.Layer.XYZ.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Layer.Bing"});OpenLayers.Layer.Bing.processMetadata=function(metadata){this.metadata=metadata;this.initLayer();var script=document.getElementById(this._callbackId);script.parentNode.removeChild(script);window[this._callbackId]=undefined;delete this._callbackId;};OpenLayers.Layer.PointGrid=OpenLayers.Class(OpenLayers.Layer.Vector,{dx:null,dy:null,ratio:1.5,maxFeatures:250,rotation:0,origin:null,gridBounds:null,initialize:function(config){config=config||{};OpenLayers.Layer.Vector.prototype.initialize.apply(this,[config.name,config]);},setMap:function(map){OpenLayers.Layer.Vector.prototype.setMap.apply(this,arguments);map.events.register("moveend",this,this.onMoveEnd);},removeMap:function(map){map.events.unregister("moveend",this,this.onMoveEnd);OpenLayers.Layer.Vector.prototype.removeMap.apply(this,arguments);},setRatio:function(ratio){this.ratio=ratio;this.updateGrid(true);},setMaxFeatures:function(maxFeatures){this.maxFeatures=maxFeatures;this.updateGrid(true);},setSpacing:function(dx,dy){this.dx=dx;this.dy=dy||dx;this.updateGrid(true);},setOrigin:function(origin){this.origin=origin;this.updateGrid(true);},getOrigin:function(){if(!this.origin){this.origin=this.map.getExtent().getCenterLonLat();} +return this.origin;},setRotation:function(rotation){this.rotation=rotation;this.updateGrid(true);},onMoveEnd:function(){this.updateGrid();},getViewBounds:function(){var bounds=this.map.getExtent();if(this.rotation){var origin=this.getOrigin();var rotationOrigin=new OpenLayers.Geometry.Point(origin.lon,origin.lat);var rect=bounds.toGeometry();rect.rotate(-this.rotation,rotationOrigin);bounds=rect.getBounds();} +return bounds;},updateGrid:function(force){if(force||this.invalidBounds()){var viewBounds=this.getViewBounds();var origin=this.getOrigin();var rotationOrigin=new OpenLayers.Geometry.Point(origin.lon,origin.lat);var viewBoundsWidth=viewBounds.getWidth();var viewBoundsHeight=viewBounds.getHeight();var aspectRatio=viewBoundsWidth/viewBoundsHeight;var maxHeight=Math.sqrt(this.dx*this.dy*this.maxFeatures/aspectRatio);var maxWidth=maxHeight*aspectRatio;var gridWidth=Math.min(viewBoundsWidth*this.ratio,maxWidth);var gridHeight=Math.min(viewBoundsHeight*this.ratio,maxHeight);var center=viewBounds.getCenterLonLat();this.gridBounds=new OpenLayers.Bounds(center.lon-(gridWidth/2),center.lat-(gridHeight/2),center.lon+(gridWidth/2),center.lat+(gridHeight/2));var rows=Math.floor(gridHeight/this.dy);var cols=Math.floor(gridWidth/this.dx);var gridLeft=origin.lon+(this.dx*Math.ceil((this.gridBounds.left-origin.lon)/this.dx));var gridBottom=origin.lat+(this.dy*Math.ceil((this.gridBounds.bottom-origin.lat)/this.dy));var features=new Array(rows*cols);var x,y,point;for(var i=0;i=OpenLayers.Style.createLiteral(this.minScaleDenominator,context);} +if(applies&&this.maxScaleDenominator){applies=scale1){middle=parseInt((leftIndex+rightIndex)/2);var placement=this.compare(this,newNode,OpenLayers.Util.getElement(this.order[middle]));if(placement>0){leftIndex=middle;}else{rightIndex=middle;}} +this.order.splice(rightIndex,0,nodeId);this.indices[nodeId]=this.getZIndex(newNode);return this.getNextElement(rightIndex);},remove:function(node){var nodeId=node.id;var arrayIndex=OpenLayers.Util.indexOf(this.order,nodeId);if(arrayIndex>=0){this.order.splice(arrayIndex,1);delete this.indices[nodeId];if(this.order.length>0){var lastId=this.order[this.order.length-1];this.maxZIndex=this.indices[lastId];}else{this.maxZIndex=0;}}},clear:function(){this.order=[];this.indices={};this.maxZIndex=0;},exists:function(node){return(this.indices[node.id]!=null);},getZIndex:function(node){return node._style.graphicZIndex;},determineZIndex:function(node){var zIndex=node._style.graphicZIndex;if(zIndex==null){zIndex=this.maxZIndex;node._style.graphicZIndex=zIndex;}else if(zIndex>this.maxZIndex){this.maxZIndex=zIndex;}},getNextElement:function(index){var nextIndex=index+1;if(nextIndex0){url='?'+url.substring(index+1,url.length);OpenLayers.Util.extend(parameters,OpenLayers.Util.getParameters(url));} +return parameters;},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);for(var i=0,len=this.map.controls.length;i0){if(!mapProjection.equals(layer.projection)){var geom;for(var i=0,len=features.length;i0){obj.featureNS=this.lookupNamespaceURI(node,parts[0]);}}},read_cap_Title:function(obj,node){var title=this.getChildValue(node);if(title){obj.title=title;}},read_cap_Abstract:function(obj,node){var abst=this.getChildValue(node);if(abst){obj["abstract"]=abst;}},CLASS_NAME:"OpenLayers.Format.WFSCapabilities.v1"});OpenLayers.Format.WFSCapabilities.v1_1_0=OpenLayers.Class(OpenLayers.Format.WFSCapabilities.v1,{initialize:function(options){OpenLayers.Format.WFSCapabilities.v1.prototype.initialize.apply(this,[options]);},read_cap_DefaultSRS:function(obj,node){var defaultSRS=this.getChildValue(node);if(defaultSRS){obj.srs=defaultSRS;}},CLASS_NAME:"OpenLayers.Format.WFSCapabilities.v1_1_0"});OpenLayers.Layer.PointTrack=OpenLayers.Class(OpenLayers.Layer.Vector,{dataFrom:null,styleFrom:null,initialize:function(name,options){OpenLayers.Layer.Vector.prototype.initialize.apply(this,arguments);},addNodes:function(pointFeatures,options){if(pointFeatures.length<2){OpenLayers.Console.error("At least two point features have to be added to create"+"a line from");return;} +var lines=new Array(pointFeatures.length-1);var pointFeature,startPoint,endPoint;for(var i=0,len=pointFeatures.length;i0){var attributes=(this.dataFrom!=null)?(pointFeatures[i+this.dataFrom].data||pointFeatures[i+this.dataFrom].attributes):null;var style=(this.styleFrom!=null)?(pointFeatures[i+this.styleFrom].style):null;var line=new OpenLayers.Geometry.LineString([startPoint,endPoint]);lines[i-1]=new OpenLayers.Feature.Vector(line,attributes,style);} +startPoint=endPoint;} +this.addFeatures(lines,options);},CLASS_NAME:"OpenLayers.Layer.PointTrack"});OpenLayers.Layer.PointTrack.SOURCE_NODE=-1;OpenLayers.Layer.PointTrack.TARGET_NODE=0;OpenLayers.Layer.PointTrack.dataFrom={'SOURCE_NODE':-1,'TARGET_NODE':0};OpenLayers.Protocol.WFS=function(options){options=OpenLayers.Util.applyDefaults(options,OpenLayers.Protocol.WFS.DEFAULTS);var cls=OpenLayers.Protocol.WFS["v"+options.version.replace(/\./g,"_")];if(!cls){throw"Unsupported WFS version: "+options.version;} +return new cls(options);};OpenLayers.Protocol.WFS.fromWMSLayer=function(layer,options){var typeName,featurePrefix;var param=layer.params["LAYERS"];var parts=(OpenLayers.Util.isArray(param)?param[0]:param).split(":");if(parts.length>1){featurePrefix=parts[0];} +typeName=parts.pop();var protocolOptions={url:layer.url,featureType:typeName,featurePrefix:featurePrefix,srsName:layer.projection&&layer.projection.getCode()||layer.map&&layer.map.getProjectionObject().getCode(),version:"1.1.0"};return new OpenLayers.Protocol.WFS(OpenLayers.Util.applyDefaults(options,protocolOptions));};OpenLayers.Protocol.WFS.DEFAULTS={"version":"1.0.0"};OpenLayers.Layer.Markers=OpenLayers.Class(OpenLayers.Layer,{isBaseLayer:false,markers:null,drawn:false,initialize:function(name,options){OpenLayers.Layer.prototype.initialize.apply(this,arguments);this.markers=[];},destroy:function(){this.clearMarkers();this.markers=null;OpenLayers.Layer.prototype.destroy.apply(this,arguments);},setOpacity:function(opacity){if(opacity!=this.opacity){this.opacity=opacity;for(var i=0,len=this.markers.length;i0){this.removeMarker(this.markers[0]);}}},drawMarker:function(marker){var px=this.map.getLayerPxFromLonLat(marker.lonlat);if(px==null){marker.display(false);}else{if(!marker.isDrawn()){var markerImg=marker.draw(px);this.div.appendChild(markerImg);}else if(marker.icon){marker.icon.moveTo(px);}}},getDataExtent:function(){var maxExtent=null;if(this.markers&&(this.markers.length>0)){var maxExtent=new OpenLayers.Bounds();for(var i=0,len=this.markers.length;i=1.3&&!params.EXCEPTIONS){params.EXCEPTIONS="INIMAGE";} +newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);OpenLayers.Util.applyDefaults(this.params,OpenLayers.Util.upperCaseObject(this.DEFAULT_PARAMS));if(!this.noMagic&&this.params.TRANSPARENT&&this.params.TRANSPARENT.toString().toLowerCase()=="true"){if((options==null)||(!options.isBaseLayer)){this.isBaseLayer=false;} +if(this.params.FORMAT=="image/jpeg"){this.params.FORMAT=OpenLayers.Util.alphaHack()?"image/gif":"image/png";}}},destroy:function(){OpenLayers.Layer.Grid.prototype.destroy.apply(this,arguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.WMS(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},reverseAxisOrder:function(){return(parseFloat(this.params.VERSION)>=1.3&&!!this.yx[this.map.getProjectionObject().getCode()]);},getURL:function(bounds){bounds=this.adjustBounds(bounds);var imageSize=this.getImageSize();var newParams={};var reverseAxisOrder=this.reverseAxisOrder();newParams.BBOX=this.encodeBBOX?bounds.toBBOX(null,reverseAxisOrder):bounds.toArray(reverseAxisOrder);newParams.WIDTH=imageSize.w;newParams.HEIGHT=imageSize.h;var requestString=this.getFullRequestString(newParams);return requestString;},mergeNewParams:function(newParams){var upperParams=OpenLayers.Util.upperCaseObject(newParams);var newArguments=[upperParams];return OpenLayers.Layer.Grid.prototype.mergeNewParams.apply(this,newArguments);},getFullRequestString:function(newParams,altUrl){var mapProjection=this.map.getProjectionObject();var projectionCode=this.projection&&this.projection.equals(mapProjection)?this.projection.getCode():mapProjection.getCode();var value=(projectionCode=="none")?null:projectionCode;if(parseFloat(this.params.VERSION)>=1.3){this.params.CRS=value;}else{this.params.SRS=value;} +if(typeof this.params.TRANSPARENT=="boolean"){newParams.TRANSPARENT=this.params.TRANSPARENT?"TRUE":"FALSE";} +return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);},CLASS_NAME:"OpenLayers.Layer.WMS"});OpenLayers.Layer.WMS.Untiled=OpenLayers.Class(OpenLayers.Layer.WMS,{singleTile:true,initialize:function(name,url,params,options){OpenLayers.Layer.WMS.prototype.initialize.apply(this,arguments);var msg="The OpenLayers.Layer.WMS.Untiled class is deprecated and "+"will be removed in 3.0. Instead, you should use the "+"normal OpenLayers.Layer.WMS class, passing it the option "+"'singleTile' as true.";OpenLayers.Console.warn(msg);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.WMS.Untiled(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.WMS.prototype.clone.apply(this,[obj]);return obj;},CLASS_NAME:"OpenLayers.Layer.WMS.Untiled"});OpenLayers.Geometry.Surface=OpenLayers.Class(OpenLayers.Geometry,{initialize:function(){OpenLayers.Geometry.prototype.initialize.apply(this,arguments);},CLASS_NAME:"OpenLayers.Geometry.Surface"});OpenLayers.Format.ArcXML.Features=OpenLayers.Class(OpenLayers.Format.XML,{initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){var axl=new OpenLayers.Format.ArcXML();var parsed=axl.read(data);return parsed.features.feature;}});OpenLayers.Control.Snapping=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:["beforesnap","snap","unsnap"],DEFAULTS:{tolerance:10,node:true,edge:true,vertex:true},greedy:true,precedence:["node","vertex","edge"],resolution:null,geoToleranceCache:null,layer:null,feature:null,point:null,initialize:function(options){Array.prototype.push.apply(this.EVENT_TYPES,OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);this.options=options||{};if(this.options.layer){this.setLayer(this.options.layer);} +var defaults=OpenLayers.Util.extend({},this.options.defaults);this.defaults=OpenLayers.Util.applyDefaults(defaults,this.DEFAULTS);this.setTargets(this.options.targets);if(this.targets.length===0&&this.layer){this.addTargetLayer(this.layer);} +this.geoToleranceCache={};},setLayer:function(layer){if(this.active){this.deactivate();this.layer=layer;this.activate();}else{this.layer=layer;}},setTargets:function(targets){this.targets=[];if(targets&&targets.length){var target;for(var i=0,len=targets.length;i=0;--i){target=this.targets[i];if(target.layer===layer){this.removeTarget(target);}}},removeTarget:function(target){return OpenLayers.Util.removeItem(this.targets,target);},activate:function(){var activated=OpenLayers.Control.prototype.activate.call(this);if(activated){if(this.layer&&this.layer.events){this.layer.events.on({sketchstarted:this.onSketchModified,sketchmodified:this.onSketchModified,vertexmodified:this.onVertexModified,scope:this});}} +return activated;},deactivate:function(){var deactivated=OpenLayers.Control.prototype.deactivate.call(this);if(deactivated){if(this.layer&&this.layer.events){this.layer.events.un({sketchstarted:this.onSketchModified,sketchmodified:this.onSketchModified,vertexmodified:this.onVertexModified,scope:this});}} +this.feature=null;this.point=null;return deactivated;},onSketchModified:function(event){this.feature=event.feature;this.considerSnapping(event.vertex,event.vertex);},onVertexModified:function(event){this.feature=event.feature;var loc=this.layer.map.getLonLatFromViewPortPx(event.pixel);this.considerSnapping(event.vertex,new OpenLayers.Geometry.Point(loc.lon,loc.lat));},considerSnapping:function(point,loc){var best={rank:Number.POSITIVE_INFINITY,dist:Number.POSITIVE_INFINITY,x:null,y:null};var snapped=false;var result,target;for(var i=0,len=this.targets.length;i=target.maxResolution){return null;}} +var tolerance={node:this.getGeoTolerance(target.nodeTolerance,resolution),vertex:this.getGeoTolerance(target.vertexTolerance,resolution),edge:this.getGeoTolerance(target.edgeTolerance,resolution)};var maxTolerance=Math.max(tolerance.node,tolerance.vertex,tolerance.edge);var result={rank:Number.POSITIVE_INFINITY,dist:Number.POSITIVE_INFINITY};var eligible=false;var features=target.layer.features;var feature,type,vertices,vertex,closest,dist,found;var numTypes=this.precedence.length;var ll=new OpenLayers.LonLat(loc.x,loc.y);for(var i=0,len=features.length;i4) +this._object.open(sMethod,sUrl,bAsync,sUser,sPassword);else +if(arguments.length>3) +this._object.open(sMethod,sUrl,bAsync,sUser);else +this._object.open(sMethod,sUrl,bAsync);this.readyState=cXMLHttpRequest.OPENED;fReadyStateChange(this);this._object.onreadystatechange=function(){if(bGecko&&!bAsync) +return;oRequest.readyState=oRequest._object.readyState;fSynchronizeValues(oRequest);if(oRequest._aborted){oRequest.readyState=cXMLHttpRequest.UNSENT;return;} +if(oRequest.readyState==cXMLHttpRequest.DONE){delete oRequest._data;fCleanTransport(oRequest);if(bIE&&bAsync) +window.detachEvent("onunload",fOnUnload);} +if(nState!=oRequest.readyState) +fReadyStateChange(oRequest);nState=oRequest.readyState;}};function fXMLHttpRequest_send(oRequest){oRequest._object.send(oRequest._data);if(bGecko&&!oRequest._async){oRequest.readyState=cXMLHttpRequest.OPENED;fSynchronizeValues(oRequest);while(oRequest.readyStatecXMLHttpRequest.UNSENT) +this._aborted=true;this._object.abort();fCleanTransport(this);this.readyState=cXMLHttpRequest.UNSENT;delete this._data;};cXMLHttpRequest.prototype.getAllResponseHeaders=function(){return this._object.getAllResponseHeaders();};cXMLHttpRequest.prototype.getResponseHeader=function(sName){return this._object.getResponseHeader(sName);};cXMLHttpRequest.prototype.setRequestHeader=function(sName,sValue){if(!this._headers) +this._headers={};this._headers[sName]=sValue;return this._object.setRequestHeader(sName,sValue);};cXMLHttpRequest.prototype.addEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++) +if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture) +return;this._listeners.push([sName,fHandler,bUseCapture]);};cXMLHttpRequest.prototype.removeEventListener=function(sName,fHandler,bUseCapture){for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++) +if(oListener[0]==sName&&oListener[1]==fHandler&&oListener[2]==bUseCapture) +break;if(oListener) +this._listeners.splice(nIndex,1);};cXMLHttpRequest.prototype.dispatchEvent=function(oEvent){var oEventPseudo={'type':oEvent.type,'target':this,'currentTarget':this,'eventPhase':2,'bubbles':oEvent.bubbles,'cancelable':oEvent.cancelable,'timeStamp':oEvent.timeStamp,'stopPropagation':function(){},'preventDefault':function(){},'initEvent':function(){}};if(oEventPseudo.type=="readystatechange"&&this.onreadystatechange) +(this.onreadystatechange.handleEvent||this.onreadystatechange).apply(this,[oEventPseudo]);for(var nIndex=0,oListener;oListener=this._listeners[nIndex];nIndex++) +if(oListener[0]==oEventPseudo.type&&!oListener[2]) +(oListener[1].handleEvent||oListener[1]).apply(this,[oEventPseudo]);};cXMLHttpRequest.prototype.toString=function(){return'['+"object"+' '+"XMLHttpRequest"+']';};cXMLHttpRequest.toString=function(){return'['+"XMLHttpRequest"+']';};function fReadyStateChange(oRequest){if(cXMLHttpRequest.onreadystatechange) +cXMLHttpRequest.onreadystatechange.apply(oRequest);oRequest.dispatchEvent({'type':"readystatechange",'bubbles':false,'cancelable':false,'timeStamp':new Date+0});};function fGetDocument(oRequest){var oDocument=oRequest.responseXML,sResponse=oRequest.responseText;if(bIE&&sResponse&&oDocument&&!oDocument.documentElement&&oRequest.getResponseHeader("Content-Type").match(/[^\/]+\/[^\+]+\+xml/)){oDocument=new window.ActiveXObject("Microsoft.XMLDOM");oDocument.async=false;oDocument.validateOnParse=false;oDocument.loadXML(sResponse);} +if(oDocument) +if((bIE&&oDocument.parseError!=0)||!oDocument.documentElement||(oDocument.documentElement&&oDocument.documentElement.tagName=="parsererror")) +return null;return oDocument;};function fSynchronizeValues(oRequest){try{oRequest.responseText=oRequest._object.responseText;}catch(e){} +try{oRequest.responseXML=fGetDocument(oRequest._object);}catch(e){} +try{oRequest.status=oRequest._object.status;}catch(e){} +try{oRequest.statusText=oRequest._object.statusText;}catch(e){}};function fCleanTransport(oRequest){oRequest._object.onreadystatechange=new window.Function;};if(!window.Function.prototype.apply){window.Function.prototype.apply=function(oRequest,oArguments){if(!oArguments) +oArguments=[];oRequest.__func=this;oRequest.__func(oArguments[0],oArguments[1],oArguments[2],oArguments[3],oArguments[4]);delete oRequest.__func;};};OpenLayers.Request.XMLHttpRequest=cXMLHttpRequest;})();OpenLayers.Format.KML=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{kml:"http://www.opengis.net/kml/2.2",gx:"http://www.google.com/kml/ext/2.2"},kmlns:"http://earth.google.com/kml/2.0",placemarksDesc:"No description available",foldersName:"OpenLayers export",foldersDesc:"Exported on "+new Date(),extractAttributes:true,extractStyles:false,extractTracks:false,trackAttributes:null,internalns:null,features:null,styles:null,styleBaseUrl:"",fetched:null,maxDepth:0,initialize:function(options){this.regExes={trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g),kmlColor:(/(\w{2})(\w{2})(\w{2})(\w{2})/),kmlIconPalette:(/root:\/\/icons\/palette-(\d+)(\.\w+)/),straightBracket:(/\$\[(.*?)\]/g)};this.externalProjection=new OpenLayers.Projection("EPSG:4326");OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){this.features=[];this.styles={};this.fetched={};var options={depth:0,styleBaseUrl:this.styleBaseUrl};return this.parseData(data,options);},parseData:function(data,options){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} +var types=["Link","NetworkLink","Style","StyleMap","Placemark"];for(var i=0,len=types.length;i=this.maxDepth){return false;} +var newOptions=OpenLayers.Util.extend({},options);newOptions.depth++;for(var i=0,len=nodes.length;i0){var track=tracks[0];var container={features:[],feature:feature};this.readNode(track,container);if(container.features.length>0){features.push.apply(features,container.features);}}}else{features.push(feature);}}else{throw"Bad Placemark: "+i;}} +this.features=this.features.concat(features);},readers:{"kml":{"when":function(node,container){container.whens.push(OpenLayers.Date.parse(this.getChildValue(node)));},"_trackPointAttribute":function(node,container){var name=node.nodeName.split(":").pop();container.attributes[name].push(this.getChildValue(node));}},"gx":{"Track":function(node,container){var obj={whens:[],points:[],angles:[]};if(this.trackAttributes){var name;obj.attributes={};for(var i=0,ii=this.trackAttributes.length;i0;if(hasAngles&&obj.whens.length!==obj.angles.length){throw new Error("gx:Track with unequal number of when ("+obj.whens.length+") and gx:angles ("+obj.angles.length+") elements.");} +var feature,point,angles;for(var i=0,ii=obj.whens.length;i2){point.z=parseFloat(coords[2]);} +container.points.push(point);},"angles":function(node,container){var str=this.getChildValue(node);var parts=str.replace(this.regExes.trimSpace,"").split(/\s+/);container.angles.push(parts);}}},parseFeature:function(node){var order=["MultiGeometry","Polygon","LineString","Point"];var type,nodeList,geometry,parser;for(var i=0,len=order.length;i0){var parser=this.parseGeometry[type.toLowerCase()];if(parser){geometry=parser.apply(this,[nodeList[0]]);if(this.internalProjection&&this.externalProjection){geometry.transform(this.externalProjection,this.internalProjection);}}else{OpenLayers.Console.error(OpenLayers.i18n("unsupportedGeometryType",{'geomType':type}));} +break;}} +var attributes;if(this.extractAttributes){attributes=this.parseAttributes(node);} +var feature=new OpenLayers.Feature.Vector(geometry,attributes);var fid=node.getAttribute("id")||node.getAttribute("name");if(fid!=null){feature.fid=fid;} +return feature;},getStyle:function(styleUrl,options){var styleBaseUrl=OpenLayers.Util.removeTail(styleUrl);var newOptions=OpenLayers.Util.extend({},options);newOptions.depth++;newOptions.styleBaseUrl=styleBaseUrl;if(!this.styles[styleUrl]&&!OpenLayers.String.startsWith(styleUrl,"#")&&newOptions.depth<=this.maxDepth&&!this.fetched[styleBaseUrl]){var data=this.fetchLink(styleBaseUrl);if(data){this.parseData(data,newOptions);}} +var style=OpenLayers.Util.extend({},this.styles[styleUrl]);return style;},parseGeometry:{point:function(node){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"coordinates");var coords=[];if(nodeList.length>0){var coordString=nodeList[0].firstChild.nodeValue;coordString=coordString.replace(this.regExes.removeSpace,"");coords=coordString.split(",");} +var point=null;if(coords.length>1){if(coords.length==2){coords[2]=null;} +point=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{throw"Bad coordinate string: "+coordString;} +return point;},linestring:function(node,ring){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"coordinates");var line=null;if(nodeList.length>0){var coordString=this.getChildValue(nodeList[0]);coordString=coordString.replace(this.regExes.trimSpace,"");coordString=coordString.replace(this.regExes.trimComma,",");var pointList=coordString.split(this.regExes.splitSpace);var numPoints=pointList.length;var points=new Array(numPoints);var coords,numCoords;for(var i=0;i1){if(coords.length==2){coords[2]=null;} +points[i]=new OpenLayers.Geometry.Point(coords[0],coords[1],coords[2]);}else{throw"Bad LineString point coordinates: "+ +pointList[i];}} +if(numPoints){if(ring){line=new OpenLayers.Geometry.LinearRing(points);}else{line=new OpenLayers.Geometry.LineString(points);}}else{throw"Bad LineString coordinates: "+coordString;}} +return line;},polygon:function(node){var nodeList=this.getElementsByTagNameNS(node,this.internalns,"LinearRing");var numRings=nodeList.length;var components=new Array(numRings);if(numRings>0){var ring;for(var i=0,len=nodeList.length;i=1&&grandchildren.length<=3){var grandchild;switch(grandchildren.length){case 1:grandchild=grandchildren[0];break;case 2:var c1=grandchildren[0];var c2=grandchildren[1];grandchild=(c1.nodeType==3||c1.nodeType==4)?c1:c2;break;case 3:default:grandchild=grandchildren[1];break;} +if(grandchild.nodeType==3||grandchild.nodeType==4){var name=(child.prefix)?child.nodeName.split(":")[1]:child.nodeName;var value=OpenLayers.Util.getXmlNodeValue(grandchild);if(value){value=value.replace(this.regExes.trimSpace,"");attributes[name]=value;}}}}} +return attributes;},parseExtendedData:function(node){var attributes={};var i,len,data,key;var dataNodes=node.getElementsByTagName("Data");for(i=0,len=dataNodes.length;i"+ +this.contentDiv.innerHTML+"";var containerElement=(this.map)?this.map.layerContainerDiv:document.body;var realSize=OpenLayers.Util.getRenderedDimensions(preparedHTML,null,{displayClass:this.displayClass,containerElement:containerElement});var safeSize=this.getSafeContentSize(realSize);var newSize=null;if(safeSize.equals(realSize)){newSize=realSize;}else{var fixedSize=new OpenLayers.Size();fixedSize.w=(safeSize.w(mapSize.w-this.map.paddingForPopups.right)){newTL.x=mapSize.w-this.map.paddingForPopups.right-this.size.w;} +if(origTL.y(mapSize.h-this.map.paddingForPopups.bottom)){newTL.y=mapSize.h-this.map.paddingForPopups.bottom-this.size.h;} +var dx=origTL.x-newTL.x;var dy=origTL.y-newTL.y;this.map.pan(dx,dy);},registerEvents:function(){this.events=new OpenLayers.Events(this,this.div,null,true);function onTouchstart(evt){OpenLayers.Event.stop(evt,true);} +this.events.on({"mousedown":this.onmousedown,"mousemove":this.onmousemove,"mouseup":this.onmouseup,"click":this.onclick,"mouseout":this.onmouseout,"dblclick":this.ondblclick,"touchstart":onTouchstart,scope:this});},onmousedown:function(evt){this.mousedown=true;OpenLayers.Event.stop(evt,true);},onmousemove:function(evt){if(this.mousedown){OpenLayers.Event.stop(evt,true);}},onmouseup:function(evt){if(this.mousedown){this.mousedown=false;OpenLayers.Event.stop(evt,true);}},onclick:function(evt){OpenLayers.Event.stop(evt,true);},onmouseout:function(evt){this.mousedown=false;},ondblclick:function(evt){OpenLayers.Event.stop(evt,true);},CLASS_NAME:"OpenLayers.Popup"});OpenLayers.Popup.WIDTH=200;OpenLayers.Popup.HEIGHT=200;OpenLayers.Popup.COLOR="white";OpenLayers.Popup.OPACITY=1;OpenLayers.Popup.BORDER="0px";OpenLayers.Popup.Anchored=OpenLayers.Class(OpenLayers.Popup,{relativePosition:null,keepInMap:true,anchor:null,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){var newArguments=[id,lonlat,contentSize,contentHTML,closeBox,closeBoxCallback];OpenLayers.Popup.prototype.initialize.apply(this,newArguments);this.anchor=(anchor!=null)?anchor:{size:new OpenLayers.Size(0,0),offset:new OpenLayers.Pixel(0,0)};},destroy:function(){this.anchor=null;this.relativePosition=null;OpenLayers.Popup.prototype.destroy.apply(this,arguments);},show:function(){this.updatePosition();OpenLayers.Popup.prototype.show.apply(this,arguments);},moveTo:function(px){var oldRelativePosition=this.relativePosition;this.relativePosition=this.calculateRelativePosition(px);var newPx=this.calculateNewPx(px);var newArguments=new Array(newPx);OpenLayers.Popup.prototype.moveTo.apply(this,newArguments);if(this.relativePosition!=oldRelativePosition){this.updateRelativePosition();}},setSize:function(contentSize){OpenLayers.Popup.prototype.setSize.apply(this,arguments);if((this.lonlat)&&(this.map)){var px=this.map.getLayerPxFromLonLat(this.lonlat);this.moveTo(px);}},calculateRelativePosition:function(px){var lonlat=this.map.getLonLatFromLayerPx(px);var extent=this.map.getExtent();var quadrant=extent.determineQuadrant(lonlat);return OpenLayers.Bounds.oppositeQuadrant(quadrant);},updateRelativePosition:function(){},calculateNewPx:function(px){var newPx=px.offset(this.anchor.offset);var size=this.size||this.contentSize;var top=(this.relativePosition.charAt(0)=='t');newPx.y+=(top)?-size.h:this.anchor.size.h;var left=(this.relativePosition.charAt(1)=='l');newPx.x+=(left)?-size.w:this.anchor.size.w;return newPx;},CLASS_NAME:"OpenLayers.Popup.Anchored"});OpenLayers.Rico=OpenLayers.Rico||{};OpenLayers.Rico.Color=OpenLayers.Class({initialize:function(red,green,blue){this.rgb={r:red,g:green,b:blue};},setRed:function(r){this.rgb.r=r;},setGreen:function(g){this.rgb.g=g;},setBlue:function(b){this.rgb.b=b;},setHue:function(h){var hsb=this.asHSB();hsb.h=h;this.rgb=OpenLayers.Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},setSaturation:function(s){var hsb=this.asHSB();hsb.s=s;this.rgb=OpenLayers.Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},setBrightness:function(b){var hsb=this.asHSB();hsb.b=b;this.rgb=OpenLayers.Rico.Color.HSBtoRGB(hsb.h,hsb.s,hsb.b);},darken:function(percent){var hsb=this.asHSB();this.rgb=OpenLayers.Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.max(hsb.b-percent,0));},brighten:function(percent){var hsb=this.asHSB();this.rgb=OpenLayers.Rico.Color.HSBtoRGB(hsb.h,hsb.s,Math.min(hsb.b+percent,1));},blend:function(other){this.rgb.r=Math.floor((this.rgb.r+other.rgb.r)/2);this.rgb.g=Math.floor((this.rgb.g+other.rgb.g)/2);this.rgb.b=Math.floor((this.rgb.b+other.rgb.b)/2);},isBright:function(){var hsb=this.asHSB();return this.asHSB().b>0.5;},isDark:function(){return!this.isBright();},asRGB:function(){return"rgb("+this.rgb.r+","+this.rgb.g+","+this.rgb.b+")";},asHex:function(){return"#"+this.rgb.r.toColorPart()+this.rgb.g.toColorPart()+this.rgb.b.toColorPart();},asHSB:function(){return OpenLayers.Rico.Color.RGBtoHSB(this.rgb.r,this.rgb.g,this.rgb.b);},toString:function(){return this.asHex();}});OpenLayers.Rico.Color.createFromHex=function(hexCode){if(hexCode.length==4){var shortHexCode=hexCode;var hexCode='#';for(var i=1;i<4;i++){hexCode+=(shortHexCode.charAt(i)+ +shortHexCode.charAt(i));}} +if(hexCode.indexOf('#')==0){hexCode=hexCode.substring(1);} +var red=hexCode.substring(0,2);var green=hexCode.substring(2,4);var blue=hexCode.substring(4,6);return new OpenLayers.Rico.Color(parseInt(red,16),parseInt(green,16),parseInt(blue,16));};OpenLayers.Rico.Color.createColorFromBackground=function(elem){var actualColor=OpenLayers.Element.getStyle(OpenLayers.Util.getElement(elem),"backgroundColor");if(actualColor=="transparent"&&elem.parentNode){return OpenLayers.Rico.Color.createColorFromBackground(elem.parentNode);} +if(actualColor==null){return new OpenLayers.Rico.Color(255,255,255);} +if(actualColor.indexOf("rgb(")==0){var colors=actualColor.substring(4,actualColor.length-1);var colorArray=colors.split(",");return new OpenLayers.Rico.Color(parseInt(colorArray[0]),parseInt(colorArray[1]),parseInt(colorArray[2]));} +else if(actualColor.indexOf("#")==0){return OpenLayers.Rico.Color.createFromHex(actualColor);} +else{return new OpenLayers.Rico.Color(255,255,255);}};OpenLayers.Rico.Color.HSBtoRGB=function(hue,saturation,brightness){var red=0;var green=0;var blue=0;if(saturation==0){red=parseInt(brightness*255.0+0.5);green=red;blue=red;} +else{var h=(hue-Math.floor(hue))*6.0;var f=h-Math.floor(h);var p=brightness*(1.0-saturation);var q=brightness*(1.0-saturation*f);var t=brightness*(1.0-(saturation*(1.0-f)));switch(parseInt(h)){case 0:red=(brightness*255.0+0.5);green=(t*255.0+0.5);blue=(p*255.0+0.5);break;case 1:red=(q*255.0+0.5);green=(brightness*255.0+0.5);blue=(p*255.0+0.5);break;case 2:red=(p*255.0+0.5);green=(brightness*255.0+0.5);blue=(t*255.0+0.5);break;case 3:red=(p*255.0+0.5);green=(q*255.0+0.5);blue=(brightness*255.0+0.5);break;case 4:red=(t*255.0+0.5);green=(p*255.0+0.5);blue=(brightness*255.0+0.5);break;case 5:red=(brightness*255.0+0.5);green=(p*255.0+0.5);blue=(q*255.0+0.5);break;}} +return{r:parseInt(red),g:parseInt(green),b:parseInt(blue)};};OpenLayers.Rico.Color.RGBtoHSB=function(r,g,b){var hue;var saturation;var brightness;var cmax=(r>g)?r:g;if(b>cmax){cmax=b;} +var cmin=(r"+el.innerHTML+"";},_roundTopCorners:function(el,color,bgColor){var corner=this._createCorner(bgColor);for(var i=0;i=0;i--){corner.appendChild(this._createCornerSlice(color,bgColor,i,"bottom"));} +el.style.paddingBottom=0;el.appendChild(corner);},_createCorner:function(bgColor){var corner=document.createElement("div");corner.style.backgroundColor=(this._isTransparent()?"transparent":bgColor);return corner;},_createCornerSlice:function(color,bgColor,n,position){var slice=document.createElement("span");var inStyle=slice.style;inStyle.backgroundColor=color;inStyle.display="block";inStyle.height="1px";inStyle.overflow="hidden";inStyle.fontSize="1px";var borderColor=this._borderColor(color,bgColor);if(this.options.border&&n==0){inStyle.borderTopStyle="solid";inStyle.borderTopWidth="1px";inStyle.borderLeftWidth="0px";inStyle.borderRightWidth="0px";inStyle.borderBottomWidth="0px";inStyle.height="0px";inStyle.borderColor=borderColor;} +else if(borderColor){inStyle.borderColor=borderColor;inStyle.borderStyle="solid";inStyle.borderWidth="0px 1px";} +if(!this.options.compact&&(n==(this.options.numSlices-1))){inStyle.height="2px";} +this._setMargin(slice,n,position);this._setBorder(slice,n,position);return slice;},_setOptions:function(options){this.options={corners:"all",color:"fromElement",bgColor:"fromParent",blend:true,border:false,compact:false};OpenLayers.Util.extend(this.options,options||{});this.options.numSlices=this.options.compact?2:4;if(this._isTransparent()){this.options.blend=false;}},_whichSideTop:function(){if(this._hasString(this.options.corners,"all","top")){return"";} +if(this.options.corners.indexOf("tl")>=0&&this.options.corners.indexOf("tr")>=0){return"";} +if(this.options.corners.indexOf("tl")>=0){return"left";}else if(this.options.corners.indexOf("tr")>=0){return"right";} +return"";},_whichSideBottom:function(){if(this._hasString(this.options.corners,"all","bottom")){return"";} +if(this.options.corners.indexOf("bl")>=0&&this.options.corners.indexOf("br")>=0){return"";} +if(this.options.corners.indexOf("bl")>=0){return"left";}else if(this.options.corners.indexOf("br")>=0){return"right";} +return"";},_borderColor:function(color,bgColor){if(color=="transparent"){return bgColor;}else if(this.options.border){return this.options.border;}else if(this.options.blend){return this._blend(bgColor,color);}else{return"";}},_setMargin:function(el,n,corners){var marginSize=this._marginSize(n);var whichSide=corners=="top"?this._whichSideTop():this._whichSideBottom();if(whichSide=="left"){el.style.marginLeft=marginSize+"px";el.style.marginRight="0px";} +else if(whichSide=="right"){el.style.marginRight=marginSize+"px";el.style.marginLeft="0px";} +else{el.style.marginLeft=marginSize+"px";el.style.marginRight=marginSize+"px";}},_setBorder:function(el,n,corners){var borderSize=this._borderSize(n);var whichSide=corners=="top"?this._whichSideTop():this._whichSideBottom();if(whichSide=="left"){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth="0px";} +else if(whichSide=="right"){el.style.borderRightWidth=borderSize+"px";el.style.borderLeftWidth="0px";} +else{el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";} +if(this.options.border!=false){el.style.borderLeftWidth=borderSize+"px";el.style.borderRightWidth=borderSize+"px";}},_marginSize:function(n){if(this._isTransparent()){return 0;} +var marginSizes=[5,3,2,1];var blendedMarginSizes=[3,2,1,0];var compactMarginSizes=[2,1];var smBlendedMarginSizes=[1,0];if(this.options.compact&&this.options.blend){return smBlendedMarginSizes[n];}else if(this.options.compact){return compactMarginSizes[n];}else if(this.options.blend){return blendedMarginSizes[n];}else{return marginSizes[n];}},_borderSize:function(n){var transparentBorderSizes=[5,3,2,1];var blendedBorderSizes=[2,1,1,1];var compactBorderSizes=[1,0];var actualBorderSizes=[0,2,0,0];if(this.options.compact&&(this.options.blend||this._isTransparent())){return 1;}else if(this.options.compact){return compactBorderSizes[n];}else if(this.options.blend){return blendedBorderSizes[n];}else if(this.options.border){return actualBorderSizes[n];}else if(this._isTransparent()){return transparentBorderSizes[n];} +return 0;},_hasString:function(str){for(var i=1;i=0){return true;}return false;},_blend:function(c1,c2){var cc1=OpenLayers.Rico.Color.createFromHex(c1);cc1.blend(OpenLayers.Rico.Color.createFromHex(c2));return cc1;},_background:function(el){try{return OpenLayers.Rico.Color.createColorFromBackground(el).asHex();}catch(err){return"#ffffff";}},_isTransparent:function(){return this.options.color=="transparent";},_isTopRounded:function(){return this._hasString(this.options.corners,"all","top","tl","tr");},_isBottomRounded:function(){return this._hasString(this.options.corners,"all","bottom","bl","br");},_hasSingleTextChild:function(el){return el.childNodes.length==1&&el.childNodes[0].nodeType==3;}};OpenLayers.Popup.AnchoredBubble=OpenLayers.Class(OpenLayers.Popup.Anchored,{rounded:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){this.padding=new OpenLayers.Bounds(0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE,0,OpenLayers.Popup.AnchoredBubble.CORNER_SIZE);OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);},draw:function(px){OpenLayers.Popup.Anchored.prototype.draw.apply(this,arguments);this.setContentHTML();this.setBackgroundColor();this.setOpacity();return this.div;},updateRelativePosition:function(){this.setRicoCorners();},setSize:function(contentSize){OpenLayers.Popup.Anchored.prototype.setSize.apply(this,arguments);this.setRicoCorners();},setBackgroundColor:function(color){if(color!=undefined){this.backgroundColor=color;} +if(this.div!=null){if(this.contentDiv!=null){this.div.style.background="transparent";OpenLayers.Rico.Corner.changeColor(this.groupDiv,this.backgroundColor);}}},setOpacity:function(opacity){OpenLayers.Popup.Anchored.prototype.setOpacity.call(this,opacity);if(this.div!=null){if(this.groupDiv!=null){OpenLayers.Rico.Corner.changeOpacity(this.groupDiv,this.opacity);}}},setBorder:function(border){this.border=0;},setRicoCorners:function(){var corners=this.getCornersToRound(this.relativePosition);var options={corners:corners,color:this.backgroundColor,bgColor:"transparent",blend:false};if(!this.rounded){OpenLayers.Rico.Corner.round(this.div,options);this.rounded=true;}else{OpenLayers.Rico.Corner.reRound(this.groupDiv,options);this.setBackgroundColor();this.setOpacity();}},getCornersToRound:function(){var corners=['tl','tr','bl','br'];var corner=OpenLayers.Bounds.oppositeQuadrant(this.relativePosition);OpenLayers.Util.removeItem(corners,corner);return corners.join(" ");},CLASS_NAME:"OpenLayers.Popup.AnchoredBubble"});OpenLayers.Popup.AnchoredBubble.CORNER_SIZE=5;OpenLayers.Protocol.WFS.v1=OpenLayers.Class(OpenLayers.Protocol,{version:null,srsName:"EPSG:4326",featureType:null,featureNS:null,geometryName:"the_geom",schema:null,featurePrefix:"feature",formatOptions:null,readFormat:null,readOptions:null,initialize:function(options){OpenLayers.Protocol.prototype.initialize.apply(this,[options]);if(!options.format){this.format=OpenLayers.Format.WFST(OpenLayers.Util.extend({version:this.version,featureType:this.featureType,featureNS:this.featureNS,featurePrefix:this.featurePrefix,geometryName:this.geometryName,srsName:this.srsName,schema:this.schema},this.formatOptions));} +if(!options.geometryName&&parseFloat(this.format.version)>1.0){this.setGeometryName(null);}},destroy:function(){if(this.options&&!this.options.format){this.format.destroy();} +this.format=null;OpenLayers.Protocol.prototype.destroy.apply(this);},read:function(options){OpenLayers.Protocol.prototype.read.apply(this,arguments);options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options||{});var response=new OpenLayers.Protocol.Response({requestType:"read"});var data=OpenLayers.Format.XML.prototype.write.apply(this.format,[this.format.writeNode("wfs:GetFeature",options)]);response.priv=OpenLayers.Request.POST({url:options.url,callback:this.createCallback(this.handleRead,response,options),params:options.params,headers:options.headers,data:data});return response;},setFeatureType:function(featureType){this.featureType=featureType;this.format.featureType=featureType;},setGeometryName:function(geometryName){this.geometryName=geometryName;this.format.geometryName=geometryName;},handleRead:function(response,options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options);if(options.callback){var request=response.priv;if(request.status>=200&&request.status<300){var result=this.parseResponse(request,options.readOptions);if(result&&result.success!==false){if(options.readOptions&&options.readOptions.output=="object"){OpenLayers.Util.extend(response,result);}else{response.features=result;} +response.code=OpenLayers.Protocol.Response.SUCCESS;}else{response.code=OpenLayers.Protocol.Response.FAILURE;response.error=result;}}else{response.code=OpenLayers.Protocol.Response.FAILURE;} +options.callback.call(options.scope,response);}},parseResponse:function(request,options){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;} +if(!doc||doc.length<=0){return null;} +var result=(this.readFormat!==null)?this.readFormat.read(doc):this.format.read(doc,options);if(!this.featureNS){var format=this.readFormat||this.format;this.featureNS=format.featureNS;format.autoConfig=false;if(!this.geometryName){this.setGeometryName(format.geometryName);}} +return result;},commit:function(features,options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options);var response=new OpenLayers.Protocol.Response({requestType:"commit",reqFeatures:features});response.priv=OpenLayers.Request.POST({url:options.url,headers:options.headers,data:this.format.write(features,options),callback:this.createCallback(this.handleCommit,response,options)});return response;},handleCommit:function(response,options){if(options.callback){var request=response.priv;var data=request.responseXML;if(!data||!data.documentElement){data=request.responseText;} +var obj=this.format.read(data)||{};response.insertIds=obj.insertIds||[];if(obj.success){response.code=OpenLayers.Protocol.Response.SUCCESS;}else{response.code=OpenLayers.Protocol.Response.FAILURE;response.error=obj;} +options.callback.call(options.scope,response);}},filterDelete:function(filter,options){options=OpenLayers.Util.extend({},options);OpenLayers.Util.applyDefaults(options,this.options);var response=new OpenLayers.Protocol.Response({requestType:"commit"});var root=this.format.createElementNSPlus("wfs:Transaction",{attributes:{service:"WFS",version:this.version}});var deleteNode=this.format.createElementNSPlus("wfs:Delete",{attributes:{typeName:(options.featureNS?this.featurePrefix+":":"")+ +options.featureType}});if(options.featureNS){deleteNode.setAttribute("xmlns:"+this.featurePrefix,options.featureNS);} +var filterNode=this.format.writeNode("ogc:Filter",filter);deleteNode.appendChild(filterNode);root.appendChild(deleteNode);var data=OpenLayers.Format.XML.prototype.write.apply(this.format,[root]);return OpenLayers.Request.POST({url:this.url,callback:options.callback||function(){},data:data});},abort:function(response){if(response){response.priv.abort();}},CLASS_NAME:"OpenLayers.Protocol.WFS.v1"});OpenLayers.Handler.Point=OpenLayers.Class(OpenLayers.Handler,{point:null,layer:null,multi:false,mouseDown:false,stoppedDown:null,lastDown:null,lastUp:null,persist:false,stopDown:false,stopUp:false,layerOptions:null,pixelTolerance:5,touch:false,lastTouchPx:null,initialize:function(control,callbacks,options){if(!(options&&options.layerOptions&&options.layerOptions.styleMap)){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});} +OpenLayers.Handler.prototype.initialize.apply(this,arguments);},activate:function(){if(!OpenLayers.Handler.prototype.activate.apply(this,arguments)){return false;} +var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);var geometry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);this.point=new OpenLayers.Feature.Vector(geometry);this.callback("create",[this.point.geometry,this.point]);this.point.geometry.clearBounds();this.layer.addFeatures([this.point],{silent:true});},deactivate:function(){if(!OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){return false;} +this.cancel();if(this.layer.map!=null){this.destroyFeature(true);this.layer.destroy(false);} +this.layer=null;this.touch=false;return true;},destroyFeature:function(force){if(this.layer&&(force||!this.persist)){this.layer.destroyFeatures();} +this.point=null;},destroyPersistedFeature:function(){var layer=this.layer;if(layer&&layer.features.length>1){this.layer.features[0].destroy();}},finalize:function(cancel){var key=cancel?"cancel":"done";this.mouseDown=false;this.lastDown=null;this.lastUp=null;this.lastTouchPx=null;this.callback(key,[this.geometryClone()]);this.destroyFeature(cancel);},cancel:function(){this.finalize(true);},click:function(evt){OpenLayers.Event.stop(evt);return false;},dblclick:function(evt){OpenLayers.Event.stop(evt);return false;},modifyFeature:function(pixel){if(!this.point){this.createFeature(pixel);} +var lonlat=this.map.getLonLatFromPixel(pixel);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.callback("modify",[this.point.geometry,this.point,false]);this.point.geometry.clearBounds();this.drawFeature();},drawFeature:function(){this.layer.drawFeature(this.point,this.style);},getGeometry:function(){var geometry=this.point&&this.point.geometry;if(geometry&&this.multi){geometry=new OpenLayers.Geometry.MultiPoint([geometry]);} +return geometry;},geometryClone:function(){var geom=this.getGeometry();return geom&&geom.clone();},mousedown:function(evt){return this.down(evt);},touchstart:function(evt){if(!this.touch){this.touch=true;this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,mousemove:this.mousemove,click:this.click,dblclick:this.dblclick,scope:this});} +this.lastTouchPx=evt.xy;return this.down(evt);},mousemove:function(evt){return this.move(evt);},touchmove:function(evt){this.lastTouchPx=evt.xy;return this.move(evt);},mouseup:function(evt){return this.up(evt);},touchend:function(evt){evt.xy=this.lastTouchPx;return this.up(evt);},down:function(evt){this.mouseDown=true;this.lastDown=evt.xy;if(!this.touch){this.modifyFeature(evt.xy);} +this.stoppedDown=this.stopDown;return!this.stopDown;},move:function(evt){if(!this.touch&&(!this.mouseDown||this.stoppedDown)){this.modifyFeature(evt.xy);} +return true;},up:function(evt){this.mouseDown=false;this.stoppedDown=this.stopDown;if(!this.checkModifiers(evt)){return true;} +if(this.lastUp&&this.lastUp.equals(evt.xy)){return true;} +if(this.lastDown&&this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance)){if(this.touch){this.modifyFeature(evt.xy);} +if(this.persist){this.destroyPersistedFeature();} +this.lastUp=evt.xy;this.finalize();return!this.stopUp;}else{return true;}},mouseout:function(evt){if(OpenLayers.Util.mouseLeft(evt,this.map.eventsDiv)){this.stoppedDown=this.stopDown;this.mouseDown=false;}},passesTolerance:function(pixel1,pixel2,tolerance){var passes=true;if(tolerance!=null&&pixel1&&pixel2){var dist=pixel1.distanceTo(pixel2);if(dist>tolerance){passes=false;}} +return passes;},CLASS_NAME:"OpenLayers.Handler.Point"});OpenLayers.Handler.Path=OpenLayers.Class(OpenLayers.Handler.Point,{line:null,maxVertices:null,doubleTouchTolerance:20,freehand:false,freehandToggle:'shiftKey',timerId:null,redoStack:null,initialize:function(control,callbacks,options){OpenLayers.Handler.Point.prototype.initialize.apply(this,arguments);},createFeature:function(pixel){var lonlat=this.map.getLonLatFromPixel(pixel);var geometry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);this.point=new OpenLayers.Feature.Vector(geometry);this.line=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([this.point.geometry]));this.callback("create",[this.point.geometry,this.getSketch()]);this.point.geometry.clearBounds();this.layer.addFeatures([this.line,this.point],{silent:true});},destroyFeature:function(force){OpenLayers.Handler.Point.prototype.destroyFeature.call(this,force);this.line=null;},destroyPersistedFeature:function(){var layer=this.layer;if(layer&&layer.features.length>2){this.layer.features[0].destroy();}},removePoint:function(){if(this.point){this.layer.removeFeatures([this.point]);}},addPoint:function(pixel){this.layer.removeFeatures([this.point]);var lonlat=this.control.map.getLonLatFromPixel(pixel);this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat));this.line.geometry.addComponent(this.point.geometry,this.line.geometry.components.length);this.layer.addFeatures([this.point]);this.callback("point",[this.point.geometry,this.getGeometry()]);this.callback("modify",[this.point.geometry,this.getSketch()]);this.drawFeature();delete this.redoStack;},insertXY:function(x,y){this.line.geometry.addComponent(new OpenLayers.Geometry.Point(x,y),this.getCurrentPointIndex());this.drawFeature();delete this.redoStack;},insertDeltaXY:function(dx,dy){var previousIndex=this.getCurrentPointIndex()-1;var p0=this.line.geometry.components[previousIndex];if(p0&&!isNaN(p0.x)&&!isNaN(p0.y)){this.insertXY(p0.x+dx,p0.y+dy);}},insertDirectionLength:function(direction,length){direction*=Math.PI/180;var dx=length*Math.cos(direction);var dy=length*Math.sin(direction);this.insertDeltaXY(dx,dy);},insertDeflectionLength:function(deflection,length){var previousIndex=this.getCurrentPointIndex()-1;if(previousIndex>0){var p1=this.line.geometry.components[previousIndex];var p0=this.line.geometry.components[previousIndex-1];var theta=Math.atan2(p1.y-p0.y,p1.x-p0.x);this.insertDirectionLength((theta*180/Math.PI)+deflection,length);}},getCurrentPointIndex:function(){return this.line.geometry.components.length-1;},undo:function(){var geometry=this.line.geometry;var components=geometry.components;var index=this.getCurrentPointIndex()-1;var target=components[index];var undone=geometry.removeComponent(target);if(undone){if(!this.redoStack){this.redoStack=[];} +this.redoStack.push(target);this.drawFeature();} +return undone;},redo:function(){var target=this.redoStack&&this.redoStack.pop();if(target){this.line.geometry.addComponent(target,this.getCurrentPointIndex());this.drawFeature();} +return!!target;},freehandMode:function(evt){return(this.freehandToggle&&evt[this.freehandToggle])?!this.freehand:this.freehand;},modifyFeature:function(pixel,drawing){if(!this.line){this.createFeature(pixel);} +var lonlat=this.control.map.getLonLatFromPixel(pixel);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.callback("modify",[this.point.geometry,this.getSketch(),drawing]);this.point.geometry.clearBounds();this.drawFeature();},drawFeature:function(){this.layer.drawFeature(this.line,this.style);this.layer.drawFeature(this.point,this.style);},getSketch:function(){return this.line;},getGeometry:function(){var geometry=this.line&&this.line.geometry;if(geometry&&this.multi){geometry=new OpenLayers.Geometry.MultiLineString([geometry]);} +return geometry;},touchstart:function(evt){if(this.timerId&&this.passesTolerance(this.lastTouchPx,evt.xy,this.doubleTouchTolerance)){this.finishGeometry();window.clearTimeout(this.timerId);this.timerId=null;return false;}else{if(this.timerId){window.clearTimeout(this.timerId);this.timerId=null;} +this.timerId=window.setTimeout(OpenLayers.Function.bind(function(){this.timerId=null;},this),300);return OpenLayers.Handler.Point.prototype.touchstart.call(this,evt);}},down:function(evt){var stopDown=this.stopDown;if(this.freehandMode(evt)){stopDown=true;} +if(!this.touch&&(!this.lastDown||!this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance))){this.modifyFeature(evt.xy,!!this.lastUp);} +this.mouseDown=true;this.lastDown=evt.xy;this.stoppedDown=stopDown;return!stopDown;},move:function(evt){if(this.stoppedDown&&this.freehandMode(evt)){if(this.persist){this.destroyPersistedFeature();} +this.addPoint(evt.xy);return false;} +if(!this.touch&&(!this.mouseDown||this.stoppedDown)){this.modifyFeature(evt.xy,!!this.lastUp);} +return true;},up:function(evt){if(this.mouseDown&&(!this.lastUp||!this.lastUp.equals(evt.xy))){if(this.stoppedDown&&this.freehandMode(evt)){if(this.persist){this.destroyPersistedFeature();} +this.removePoint();this.finalize();}else{if(this.passesTolerance(this.lastDown,evt.xy,this.pixelTolerance)){if(this.touch){this.modifyFeature(evt.xy);} +if(this.lastUp==null&&this.persist){this.destroyPersistedFeature();} +this.addPoint(evt.xy);this.lastUp=evt.xy;if(this.line.geometry.components.length===this.maxVertices+1){this.finishGeometry();}}}} +this.stoppedDown=this.stopDown;this.mouseDown=false;return!this.stopUp;},finishGeometry:function(){var index=this.line.geometry.components.length-1;this.line.geometry.removeComponent(this.line.geometry.components[index]);this.removePoint();this.finalize();},dblclick:function(evt){if(!this.freehandMode(evt)){this.finishGeometry();} +return false;},CLASS_NAME:"OpenLayers.Handler.Path"});OpenLayers.Layer.GML=OpenLayers.Class(OpenLayers.Layer.Vector,{loaded:false,format:null,formatOptions:null,initialize:function(name,url,options){var newArguments=[];newArguments.push(name,options);OpenLayers.Layer.Vector.prototype.initialize.apply(this,newArguments);this.url=url;},setVisibility:function(visibility,noEvent){OpenLayers.Layer.Vector.prototype.setVisibility.apply(this,arguments);if(this.visibility&&!this.loaded){this.loadGML();}},moveTo:function(bounds,zoomChanged,minor){OpenLayers.Layer.Vector.prototype.moveTo.apply(this,arguments);if(this.visibility&&!this.loaded){this.loadGML();}},loadGML:function(){if(!this.loaded){this.events.triggerEvent("loadstart");OpenLayers.Request.GET({url:this.url,success:this.requestSuccess,failure:this.requestFailure,scope:this});this.loaded=true;}},setUrl:function(url){this.url=url;this.destroyFeatures();this.loaded=false;this.loadGML();},requestSuccess:function(request){var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;} +var options={};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();} +var gml=this.format?new this.format(options):new OpenLayers.Format.GML(options);this.addFeatures(gml.read(doc));this.events.triggerEvent("loadend");},requestFailure:function(request){OpenLayers.Console.userError(OpenLayers.i18n("errorLoadingGML",{'url':this.url}));this.events.triggerEvent("loadend");},CLASS_NAME:"OpenLayers.Layer.GML"});OpenLayers.Format.Context=OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC,{layerOptions:null,layerParams:null,read:function(data,options){var context=OpenLayers.Format.XML.VersionedOGC.prototype.read.apply(this,arguments);var map;if(options&&options.map){this.context=context;if(options.map instanceof OpenLayers.Map){map=this.mergeContextToMap(context,options.map);}else{var mapOptions=options.map;if(OpenLayers.Util.isElement(mapOptions)||typeof mapOptions=="string"){mapOptions={div:mapOptions};} +map=this.contextToMap(context,mapOptions);}}else{map=context;} +return map;},getLayerFromContext:function(layerContext){var i,len;var options={queryable:layerContext.queryable,visibility:layerContext.visibility,maxExtent:layerContext.maxExtent,metadata:OpenLayers.Util.applyDefaults(layerContext.metadata,{styles:layerContext.styles,formats:layerContext.formats,"abstract":layerContext["abstract"],dataURL:layerContext.dataURL}),numZoomLevels:layerContext.numZoomLevels,units:layerContext.units,isBaseLayer:layerContext.isBaseLayer,opacity:layerContext.opacity,displayInLayerSwitcher:layerContext.displayInLayerSwitcher,singleTile:layerContext.singleTile,tileSize:(layerContext.tileSize)?new OpenLayers.Size(layerContext.tileSize.width,layerContext.tileSize.height):undefined,minScale:layerContext.minScale||layerContext.maxScaleDenominator,maxScale:layerContext.maxScale||layerContext.minScaleDenominator,srs:layerContext.srs,dimensions:layerContext.dimensions,metadataURL:layerContext.metadataURL};if(this.layerOptions){OpenLayers.Util.applyDefaults(options,this.layerOptions);} +var params={layers:layerContext.name,transparent:layerContext.transparent,version:layerContext.version};if(layerContext.formats&&layerContext.formats.length>0){params.format=layerContext.formats[0].value;for(i=0,len=layerContext.formats.length;i0){for(i=0,len=layerContext.styles.length;i0){for(var i=0,len=layer.metadata.formats.length;i0){for(var i=0,len=layer.metadata.styles.length;i0){this.read_wmc_OnlineResource(object,links[0]);} +return object.href;},CLASS_NAME:"OpenLayers.Format.WMC.v1"});OpenLayers.Control.PanPanel=OpenLayers.Class(OpenLayers.Control.Panel,{slideFactor:50,slideRatio:null,initialize:function(options){OpenLayers.Control.Panel.prototype.initialize.apply(this,[options]);var options={slideFactor:this.slideFactor,slideRatio:this.slideRatio};this.addControls([new OpenLayers.Control.Pan(OpenLayers.Control.Pan.NORTH,options),new OpenLayers.Control.Pan(OpenLayers.Control.Pan.SOUTH,options),new OpenLayers.Control.Pan(OpenLayers.Control.Pan.EAST,options),new OpenLayers.Control.Pan(OpenLayers.Control.Pan.WEST,options)]);},CLASS_NAME:"OpenLayers.Control.PanPanel"});OpenLayers.Control.Attribution=OpenLayers.Class(OpenLayers.Control,{separator:", ",destroy:function(){this.map.events.un({"removelayer":this.updateAttribution,"addlayer":this.updateAttribution,"changelayer":this.updateAttribution,"changebaselayer":this.updateAttribution,scope:this});OpenLayers.Control.prototype.destroy.apply(this,arguments);},draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);this.map.events.on({'changebaselayer':this.updateAttribution,'changelayer':this.updateAttribution,'addlayer':this.updateAttribution,'removelayer':this.updateAttribution,scope:this});this.updateAttribution();return this.div;},updateAttribution:function(){var attributions=[];if(this.map&&this.map.layers){for(var i=0,len=this.map.layers.length;inumRows){text.removeChild(text.lastChild);} +for(var i=0;ithis.nbPoints){this.points.pop();}},end:function(xy){var last,now=new Date().getTime();for(var i=0,l=this.points.length,point;ithis.delay){break;} +last=point;} +if(!last){return;} +var time=new Date().getTime()-last.tick;var dist=Math.sqrt(Math.pow(xy.x-last.xy.x,2)+ +Math.pow(xy.y-last.xy.y,2));var speed=dist/time;if(speed==0||speed0){text=text.substring(index);} +var ajaxResponse=OpenLayers.Util.Try(function(){var xmldom=new ActiveXObject('Microsoft.XMLDOM');xmldom.loadXML(text);return xmldom;},function(){return new DOMParser().parseFromString(text,'text/xml');},function(){var req=new XMLHttpRequest();req.open("GET","data:"+"text/xml"+";charset=utf-8,"+encodeURIComponent(text),false);if(req.overrideMimeType){req.overrideMimeType("text/xml");} +req.send(null);return req.responseXML;});return ajaxResponse;};OpenLayers.Ajax={emptyFunction:function(){},getTransport:function(){return OpenLayers.Util.Try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject('Msxml2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');})||false;},activeRequestCount:0};OpenLayers.Ajax.Responders={responders:[],register:function(responderToAdd){for(var i=0;i-1)?'&':'?')+params;}else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){params+='&_=';}} +try{var response=new OpenLayers.Ajax.Response(this);if(this.options.onCreate){this.options.onCreate(response);} +OpenLayers.Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous){window.setTimeout(OpenLayers.Function.bind(this.respondToReadyState,this,1),10);} +this.transport.onreadystatechange=OpenLayers.Function.bind(this.onStateChange,this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange();}}catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete)){this.respondToReadyState(this.transport.readyState);}},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','Accept':'text/javascript, text/html, application/xml, text/xml, */*','OpenLayers':true};if(this.method=='post'){headers['Content-type']=this.options.contentType+ +(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){headers['Connection']='close';}} +if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function'){for(var i=0,length=extras.length;i=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0;}},respondToReadyState:function(readyState){var state=OpenLayers.Ajax.Request.Events[readyState];var response=new OpenLayers.Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||OpenLayers.Ajax.emptyFunction)(response);}catch(e){this.dispatchException(e);} +var contentType=response.getHeader('Content-type');} +try{(this.options['on'+state]||OpenLayers.Ajax.emptyFunction)(response);OpenLayers.Ajax.Responders.dispatch('on'+state,this,response);}catch(e){this.dispatchException(e);} +if(state=='Complete'){this.transport.onreadystatechange=OpenLayers.Ajax.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null;}},dispatchException:function(exception){var handler=this.options.onException;if(handler){handler(this,exception);OpenLayers.Ajax.Responders.dispatch('onException',this,exception);}else{var listener=false;var responders=OpenLayers.Ajax.Responders.responders;for(var i=0;i2&&!(!!(window.attachEvent&&!window.opera)))||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=transport.responseText==null?'':String(transport.responseText);} +if(readyState==4){var xml=transport.responseXML;this.responseXML=xml===undefined?null:xml;}},getStatus:OpenLayers.Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return'';}},getHeader:OpenLayers.Ajax.Request.prototype.getHeader,getResponseHeader:function(name){return this.transport.getResponseHeader(name);}});OpenLayers.Ajax.getElementsByTagNameNS=function(parentnode,nsuri,nsprefix,tagname){var elem=null;if(parentnode.getElementsByTagNameNS){elem=parentnode.getElementsByTagNameNS(nsuri,tagname);}else{elem=parentnode.getElementsByTagName(nsprefix+':'+tagname);} +return elem;};OpenLayers.Ajax.serializeXMLToString=function(xmldom){var serializer=new XMLSerializer();var data=serializer.serializeToString(xmldom);return data;};OpenLayers.Layer.GeoRSS=OpenLayers.Class(OpenLayers.Layer.Markers,{location:null,features:null,formatOptions:null,selectedFeature:null,icon:null,popupSize:null,useFeedTitle:true,initialize:function(name,location,options){OpenLayers.Layer.Markers.prototype.initialize.apply(this,[name,options]);this.location=location;this.features=[];},destroy:function(){OpenLayers.Layer.Markers.prototype.destroy.apply(this,arguments);this.clearFeatures();this.features=null;},loadRSS:function(){if(!this.loaded){this.events.triggerEvent("loadstart");OpenLayers.Request.GET({url:this.location,success:this.parseData,scope:this});this.loaded=true;}},moveTo:function(bounds,zoomChanged,minor){OpenLayers.Layer.Markers.prototype.moveTo.apply(this,arguments);if(this.visibility&&!this.loaded){this.loadRSS();}},parseData:function(ajaxRequest){var doc=ajaxRequest.responseXML;if(!doc||!doc.documentElement){doc=OpenLayers.Format.XML.prototype.read(ajaxRequest.responseText);} +if(this.useFeedTitle){var name=null;try{name=doc.getElementsByTagNameNS('*','title')[0].firstChild.nodeValue;} +catch(e){name=doc.getElementsByTagName('title')[0].firstChild.nodeValue;} +if(name){this.setName(name);}} +var options={};OpenLayers.Util.extend(options,this.formatOptions);if(this.map&&!this.projection.equals(this.map.getProjectionObject())){options.externalProjection=this.projection;options.internalProjection=this.map.getProjectionObject();} +var format=new OpenLayers.Format.GeoRSS(options);var features=format.read(doc);for(var i=0,len=features.length;i';} +contentHTML+=title;if(link){contentHTML+='';} +contentHTML+='';contentHTML+='
        ';contentHTML+=description;contentHTML+='
        ';data['popupContentHTML']=contentHTML;} +var feature=new OpenLayers.Feature(this,location,data);this.features.push(feature);var marker=feature.createMarker();marker.events.register('click',feature,this.markerClick);this.addMarker(marker);} +this.events.triggerEvent("loadend");},markerClick:function(evt){var sameMarkerClicked=(this==this.layer.selectedFeature);this.layer.selectedFeature=(!sameMarkerClicked)?this:null;for(var i=0,len=this.layer.map.popups.length;i0){var feature=this.features[0];OpenLayers.Util.removeItem(this.features,feature);feature.destroy();}}},CLASS_NAME:"OpenLayers.Layer.GeoRSS"});OpenLayers.Format.SLD.v1=OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0,{namespaces:{sld:"http://www.opengis.net/sld",ogc:"http://www.opengis.net/ogc",gml:"http://www.opengis.net/gml",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},defaultPrefix:"sld",schemaLocation:null,multipleSymbolizers:false,featureTypeCounter:null,defaultSymbolizer:{fillColor:"#808080",fillOpacity:1,strokeColor:"#000000",strokeOpacity:1,strokeWidth:1,strokeDashstyle:"solid",pointRadius:3,graphicName:"square"},initialize:function(options){OpenLayers.Format.Filter.v1_0_0.prototype.initialize.apply(this,[options]);},read:function(data,options){options=OpenLayers.Util.applyDefaults(options,this.options);var sld={namedLayers:options.namedLayersAsArray===true?[]:{}};this.readChildNodes(data,sld);return sld;},readers:OpenLayers.Util.applyDefaults({"sld":{"StyledLayerDescriptor":function(node,sld){sld.version=node.getAttribute("version");this.readChildNodes(node,sld);},"Name":function(node,obj){obj.name=this.getChildValue(node);},"Title":function(node,obj){obj.title=this.getChildValue(node);},"Abstract":function(node,obj){obj.description=this.getChildValue(node);},"NamedLayer":function(node,sld){var layer={userStyles:[],namedStyles:[]};this.readChildNodes(node,layer);for(var i=0,len=layer.userStyles.length;i0){clone=style.clone();clone.rules=rulesByZ[zValues[i]];this.writeNode("FeatureTypeStyle",clone,node);}}}else{this.writeNode("FeatureTypeStyle",style,node);} +return node;},"IsDefault":function(bool){return this.createElementNSPlus("sld:IsDefault",{value:(bool)?"1":"0"});},"FeatureTypeStyle":function(style){var node=this.createElementNSPlus("sld:FeatureTypeStyle");for(var i=0,len=style.rules.length;i0){this.writeNode("ogc:PropertyName",{property:item.substring(0,last)},node);node.appendChild(this.createTextNode(item.substring(++last)));}else{node.appendChild(this.createTextNode("${"+item));}} +return node;},"Halo":function(symbolizer){var node=this.createElementNSPlus("sld:Halo");if(symbolizer.haloRadius){this.writeNode("Radius",symbolizer.haloRadius,node);} +if(symbolizer.haloColor||symbolizer.haloOpacity){this.writeNode("Fill",{fillColor:symbolizer.haloColor,fillOpacity:symbolizer.haloOpacity},node);} +return node;},"Radius":function(value){return this.createElementNSPlus("sld:Radius",{value:value});},"RasterSymbolizer":function(symbolizer){var node=this.createElementNSPlus("sld:RasterSymbolizer");if(symbolizer.geometry){this.writeNode("Geometry",symbolizer.geometry,node);} +if(symbolizer.opacity){this.writeNode("Opacity",symbolizer.opacity,node);} +if(symbolizer.colorMap){this.writeNode("ColorMap",symbolizer.colorMap,node);} +return node;},"Geometry":function(geometry){var node=this.createElementNSPlus("sld:Geometry");if(geometry.property){this.writeNode("ogc:PropertyName",geometry,node);} +return node;},"ColorMap":function(colorMap){var node=this.createElementNSPlus("sld:ColorMap");for(var i=0,len=colorMap.length;i0){layerContext.maxScale=minScaleDenominator;}},read_sld_MaxScaleDenominator:function(layerContext,node){layerContext.minScale=parseFloat(this.getChildValue(node));},read_wmc_SRS:function(layerContext,node){if(!("srs"in layerContext)){layerContext.srs={};} +layerContext.srs[this.getChildValue(node)]=true;},write_wmc_Layer:function(context){var node=OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(this,[context]);if(context.maxScale){var minSD=this.createElementNS(this.namespaces.sld,"sld:MinScaleDenominator");minSD.appendChild(this.createTextNode(context.maxScale.toPrecision(16)));node.appendChild(minSD);} +if(context.minScale){var maxSD=this.createElementNS(this.namespaces.sld,"sld:MaxScaleDenominator");maxSD.appendChild(this.createTextNode(context.minScale.toPrecision(16)));node.appendChild(maxSD);} +if(context.srs){for(var name in context.srs){node.appendChild(this.createElementDefaultNS("SRS",name));}} +node.appendChild(this.write_wmc_FormatList(context));node.appendChild(this.write_wmc_StyleList(context));if(context.dimensions){node.appendChild(this.write_wmc_DimensionList(context));} +node.appendChild(this.write_wmc_LayerExtension(context));return node;},CLASS_NAME:"OpenLayers.Format.WMC.v1_1_0"});OpenLayers.Format.XLS.v1_1_0=OpenLayers.Class(OpenLayers.Format.XLS.v1,{VERSION:"1.1",schemaLocation:"http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/LocationUtilityService.xsd",initialize:function(options){OpenLayers.Format.XLS.v1.prototype.initialize.apply(this,[options]);},CLASS_NAME:"OpenLayers.Format.XLS.v1_1_0"});OpenLayers.Format.XLS.v1_1=OpenLayers.Format.XLS.v1_1_0;OpenLayers.Renderer.SVG=OpenLayers.Class(OpenLayers.Renderer.Elements,{xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",MAX_PIXEL:15000,translationParameters:null,symbolMetrics:null,initialize:function(containerID){if(!this.supported()){return;} +OpenLayers.Renderer.Elements.prototype.initialize.apply(this,arguments);this.translationParameters={x:0,y:0};this.symbolMetrics={};},supported:function(){var svgFeature="http://www.w3.org/TR/SVG11/feature#";return(document.implementation&&(document.implementation.hasFeature("org.w3c.svg","1.0")||document.implementation.hasFeature(svgFeature+"SVG","1.1")||document.implementation.hasFeature(svgFeature+"BasicStructure","1.1")));},inValidRange:function(x,y,xyOnly){var left=x+(xyOnly?0:this.translationParameters.x);var top=y+(xyOnly?0:this.translationParameters.y);return(left>=-this.MAX_PIXEL&&left<=this.MAX_PIXEL&&top>=-this.MAX_PIXEL&&top<=this.MAX_PIXEL);},setExtent:function(extent,resolutionChanged){OpenLayers.Renderer.Elements.prototype.setExtent.apply(this,arguments);var resolution=this.getResolution();var left=-extent.left/resolution;var top=extent.top/resolution;if(resolutionChanged){this.left=left;this.top=top;var extentString="0 0 "+this.size.w+" "+this.size.h;this.rendererRoot.setAttributeNS(null,"viewBox",extentString);this.translate(0,0);return true;}else{var inRange=this.translate(left-this.left,top-this.top);if(!inRange){this.setExtent(extent,true);} +return inRange;}},translate:function(x,y){if(!this.inValidRange(x,y,true)){return false;}else{var transformString="";if(x||y){transformString="translate("+x+","+y+")";} +this.root.setAttributeNS(null,"transform",transformString);this.translationParameters={x:x,y:y};return true;}},setSize:function(size){OpenLayers.Renderer.prototype.setSize.apply(this,arguments);this.rendererRoot.setAttributeNS(null,"width",this.size.w);this.rendererRoot.setAttributeNS(null,"height",this.size.h);},getNodeType:function(geometry,style){var nodeType=null;switch(geometry.CLASS_NAME){case"OpenLayers.Geometry.Point":if(style.externalGraphic){nodeType="image";}else if(this.isComplexSymbol(style.graphicName)){nodeType="svg";}else{nodeType="circle";} +break;case"OpenLayers.Geometry.Rectangle":nodeType="rect";break;case"OpenLayers.Geometry.LineString":nodeType="polyline";break;case"OpenLayers.Geometry.LinearRing":nodeType="polygon";break;case"OpenLayers.Geometry.Polygon":case"OpenLayers.Geometry.Curve":case"OpenLayers.Geometry.Surface":nodeType="path";break;default:break;} +return nodeType;},setStyle:function(node,style,options){style=style||node._style;options=options||node._options;var r=parseFloat(node.getAttributeNS(null,"r"));var widthFactor=1;var pos;if(node._geometryClass=="OpenLayers.Geometry.Point"&&r){node.style.visibility="";if(style.graphic===false){node.style.visibility="hidden";}else if(style.externalGraphic){pos=this.getPosition(node);if(style.graphicTitle){node.setAttributeNS(null,"title",style.graphicTitle);var label=this.nodeFactory(null,"title");label.textContent=style.graphicTitle;node.appendChild(label);} +if(style.graphicWidth&&style.graphicHeight){node.setAttributeNS(null,"preserveAspectRatio","none");} +var width=style.graphicWidth||style.graphicHeight;var height=style.graphicHeight||style.graphicWidth;width=width?width:style.pointRadius*2;height=height?height:style.pointRadius*2;var xOffset=(style.graphicXOffset!=undefined)?style.graphicXOffset:-(0.5*width);var yOffset=(style.graphicYOffset!=undefined)?style.graphicYOffset:-(0.5*height);var opacity=style.graphicOpacity||style.fillOpacity;node.setAttributeNS(null,"x",(pos.x+xOffset).toFixed());node.setAttributeNS(null,"y",(pos.y+yOffset).toFixed());node.setAttributeNS(null,"width",width);node.setAttributeNS(null,"height",height);node.setAttributeNS(this.xlinkns,"href",style.externalGraphic);node.setAttributeNS(null,"style","opacity: "+opacity);node.onclick=OpenLayers.Renderer.SVG.preventDefault;}else if(this.isComplexSymbol(style.graphicName)){var offset=style.pointRadius*3;var size=offset*2;var src=this.importSymbol(style.graphicName);pos=this.getPosition(node);widthFactor=this.symbolMetrics[src.id][0]*3/size;var parent=node.parentNode;var nextSibling=node.nextSibling;if(parent){parent.removeChild(node);} +node.firstChild&&node.removeChild(node.firstChild);node.appendChild(src.firstChild.cloneNode(true));node.setAttributeNS(null,"viewBox",src.getAttributeNS(null,"viewBox"));node.setAttributeNS(null,"width",size);node.setAttributeNS(null,"height",size);node.setAttributeNS(null,"x",pos.x-offset);node.setAttributeNS(null,"y",pos.y-offset);if(nextSibling){parent.insertBefore(node,nextSibling);}else if(parent){parent.appendChild(node);}}else{node.setAttributeNS(null,"r",style.pointRadius);} +var rotation=style.rotation;if((rotation!==undefined||node._rotation!==undefined)&&pos){node._rotation=rotation;rotation|=0;if(node.nodeName!=="svg"){node.setAttributeNS(null,"transform","rotate("+rotation+" "+pos.x+" "+ +pos.y+")");}else{var metrics=this.symbolMetrics[src.id];node.firstChild.setAttributeNS(null,"transform","rotate(" ++rotation+" " ++metrics[1]+" " ++metrics[2]+")");}}} +if(options.isFilled){node.setAttributeNS(null,"fill",style.fillColor);node.setAttributeNS(null,"fill-opacity",style.fillOpacity);}else{node.setAttributeNS(null,"fill","none");} +if(options.isStroked){node.setAttributeNS(null,"stroke",style.strokeColor);node.setAttributeNS(null,"stroke-opacity",style.strokeOpacity);node.setAttributeNS(null,"stroke-width",style.strokeWidth*widthFactor);node.setAttributeNS(null,"stroke-linecap",style.strokeLinecap||"round");node.setAttributeNS(null,"stroke-linejoin","round");style.strokeDashstyle&&node.setAttributeNS(null,"stroke-dasharray",this.dashStyle(style,widthFactor));}else{node.setAttributeNS(null,"stroke","none");} +if(style.pointerEvents){node.setAttributeNS(null,"pointer-events",style.pointerEvents);} +if(style.cursor!=null){node.setAttributeNS(null,"cursor",style.cursor);} +return node;},dashStyle:function(style,widthFactor){var w=style.strokeWidth*widthFactor;var str=style.strokeDashstyle;switch(str){case'solid':return'none';case'dot':return[1,4*w].join();case'dash':return[4*w,4*w].join();case'dashdot':return[4*w,4*w,1,4*w].join();case'longdash':return[8*w,4*w].join();case'longdashdot':return[8*w,4*w,1,4*w].join();default:return OpenLayers.String.trim(str).replace(/\s+/g,",");}},createNode:function(type,id){var node=document.createElementNS(this.xmlns,type);if(id){node.setAttributeNS(null,"id",id);} +return node;},nodeTypeCompare:function(node,type){return(type==node.nodeName);},createRenderRoot:function(){return this.nodeFactory(this.container.id+"_svgRoot","svg");},createRoot:function(suffix){return this.nodeFactory(this.container.id+suffix,"g");},createDefs:function(){var defs=this.nodeFactory(this.container.id+"_defs","defs");this.rendererRoot.appendChild(defs);return defs;},drawPoint:function(node,geometry){return this.drawCircle(node,geometry,1);},drawCircle:function(node,geometry,radius){var resolution=this.getResolution();var x=(geometry.x/resolution+this.left);var y=(this.top-geometry.y/resolution);if(this.inValidRange(x,y)){node.setAttributeNS(null,"cx",x);node.setAttributeNS(null,"cy",y);node.setAttributeNS(null,"r",radius);return node;}else{return false;}},drawLineString:function(node,geometry){var componentsResult=this.getComponentsString(geometry.components);if(componentsResult.path){node.setAttributeNS(null,"points",componentsResult.path);return(componentsResult.complete?node:null);}else{return false;}},drawLinearRing:function(node,geometry){var componentsResult=this.getComponentsString(geometry.components);if(componentsResult.path){node.setAttributeNS(null,"points",componentsResult.path);return(componentsResult.complete?node:null);}else{return false;}},drawPolygon:function(node,geometry){var d="";var draw=true;var complete=true;var linearRingResult,path;for(var j=0,len=geometry.components.length;jnumRows){label.removeChild(label.lastChild);} +for(var i=0;i0){if(this.getShortString(components[i-1])){strings.push(this.clipLine(components[i],components[i-1]));}} +if(imaxX){k=(y2-y1)/(x2-x1);x2=x2<0?-maxX:maxX;y2=y1+(x2-x1)*k;} +if(y2<-maxY||y2>maxY){k=(x2-x1)/(y2-y1);y2=y2<0?-maxY:maxY;x2=x1+(y2-y1)*k;} +return x2+","+y2;},getShortString:function(point){var resolution=this.getResolution();var x=(point.x/resolution+this.left);var y=(this.top-point.y/resolution);if(this.inValidRange(x,y)){return x+","+y;}else{return false;}},getPosition:function(node){return({x:parseFloat(node.getAttributeNS(null,"cx")),y:parseFloat(node.getAttributeNS(null,"cy"))});},importSymbol:function(graphicName){if(!this.defs){this.defs=this.createDefs();} +var id=this.container.id+"-"+graphicName;var existing=document.getElementById(id) +if(existing!=null){return existing;} +var symbol=OpenLayers.Renderer.symbol[graphicName];if(!symbol){throw new Error(graphicName+' is not a valid symbol name');} +var symbolNode=this.nodeFactory(id,"symbol");var node=this.nodeFactory(null,"polygon");symbolNode.appendChild(node);var symbolExtent=new OpenLayers.Bounds(Number.MAX_VALUE,Number.MAX_VALUE,0,0);var points=[];var x,y;for(var i=0;i0){a.push(path.slice());path.pop();} +a.reverse();} +return a;},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} +if(data&&data.nodeType==9){data=data.documentElement;} +var context={};this.readNode(data,context);this.setNestingPath({layersContext:context.layersContext});var layers=[];this.processLayer(layers,context);delete context.layersContext;context.layersContext=layers;return context;},processLayer:function(layerArray,layer){if(layer.layersContext){for(var i=0,len=layer.layersContext.length;i=1){el=elements[0];} +if(el&&el.firstChild){var featurenode=(el.firstChild.nextSibling)?el.firstChild.nextSibling:el.firstChild;this.setNamespace("feature",featurenode.namespaceURI);this.featureType=featurenode.localName||featurenode.nodeName.split(":").pop();this.readChildNodes(node,obj);}},"Server":function(node,obj){if((!obj.service&&!obj.version)||(obj.service!=OpenLayers.Format.Context.serviceTypes.WMS)){obj.service=node.getAttribute("service");obj.version=node.getAttribute("version");this.readChildNodes(node,obj);}},"Name":function(node,obj){obj.name=this.getChildValue(node);this.readChildNodes(node,obj);},"Title":function(node,obj){obj.title=this.getChildValue(node);this.readChildNodes(node,obj);},"StyleList":function(node,obj){this.readChildNodes(node,obj.styles);},"Style":function(node,obj){var style={};obj.push(style);this.readChildNodes(node,style);},"LegendURL":function(node,obj){var legend={};obj.legend=legend;this.readChildNodes(node,legend);},"OnlineResource":function(node,obj){obj.url=this.getAttributeNS(node,this.namespaces.xlink,"href");this.readChildNodes(node,obj);}},"ows":OpenLayers.Format.OWSCommon.v1_0_0.prototype.readers.ows,"gml":OpenLayers.Format.GML.v2.prototype.readers.gml,"sld":OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld,"feature":OpenLayers.Format.GML.v2.prototype.readers.feature},writers:{"owc":{"OWSContext":function(options){var node=this.createElementNSPlus("OWSContext",{attributes:{version:this.VERSION,id:options.id||OpenLayers.Util.createUniqueID("OpenLayers_OWSContext_")}});this.writeNode("General",options,node);this.writeNode("ResourceList",options,node);return node;},"General":function(options){var node=this.createElementNSPlus("General");this.writeNode("ows:BoundingBox",options,node);this.writeNode("ows:Title",options.title||'OpenLayers OWSContext',node);return node;},"ResourceList":function(options){var node=this.createElementNSPlus("ResourceList");for(var i=0,len=options.layers.length;i0){this.writeNode("StyleList",layer.metadata.styles,node);} +return node;},"_Layer":function(options){var layer,subPaths,node,title;layer=options.layer;subPaths=options.subPaths;node=null;title=null;if(subPaths.length>0){var path=subPaths[0].join("/");var index=path.lastIndexOf("/");node=this.nestingLayerLookup[path];title=(index>0)?path.substring(index+1,path.length):path;if(!node){node=this.createElementNSPlus("Layer");this.writeNode("ows:Title",title,node);this.nestingLayerLookup[path]=node;} +options.subPaths.shift();this.writeNode("_Layer",options,node);return node;}else{if(layer instanceof OpenLayers.Layer.WMS){node=this.writeNode("_WMS",layer);}else if(layer instanceof OpenLayers.Layer.Vector){if(layer.protocol instanceof OpenLayers.Protocol.WFS.v1){node=this.writeNode("_WFS",layer);}else if(layer.protocol instanceof OpenLayers.Protocol.HTTP){if(layer.protocol.format instanceof OpenLayers.Format.GML){layer.protocol.format.version="2.1.2";node=this.writeNode("_GML",layer);}else if(layer.protocol.format instanceof OpenLayers.Format.KML){layer.protocol.format.version="2.2";node=this.writeNode("_KML",layer);}}else{this.setNamespace("feature",this.featureNS);node=this.writeNode("_InlineGeometry",layer);}} +if(layer.options.maxScale){this.writeNode("sld:MinScaleDenominator",layer.options.maxScale,node);} +if(layer.options.minScale){this.writeNode("sld:MaxScaleDenominator",layer.options.minScale,node);} +this.nestingLayerLookup[layer.name]=node;return node;}},"_WFS":function(layer){var node=this.createElementNSPlus("Layer",{attributes:{name:layer.protocol.featurePrefix+":"+layer.protocol.featureType,hidden:layer.visibility?"0":"1"}});this.writeNode("ows:Title",layer.name,node);this.writeNode("Server",{service:OpenLayers.Format.Context.serviceTypes.WFS,version:layer.protocol.version,url:layer.protocol.url},node);return node;},"_InlineGeometry":function(layer){var node=this.createElementNSPlus("Layer",{attributes:{name:this.featureType,hidden:layer.visibility?"0":"1"}});this.writeNode("ows:Title",layer.name,node);this.writeNode("InlineGeometry",layer,node);return node;},"_GML":function(layer){var node=this.createElementNSPlus("Layer");this.writeNode("ows:Title",layer.name,node);this.writeNode("Server",{service:OpenLayers.Format.Context.serviceTypes.GML,url:layer.protocol.url,version:layer.protocol.format.version},node);return node;},"_KML":function(layer){var node=this.createElementNSPlus("Layer");this.writeNode("ows:Title",layer.name,node);this.writeNode("Server",{service:OpenLayers.Format.Context.serviceTypes.KML,version:layer.protocol.format.version,url:layer.protocol.url},node);return node;}},"gml":OpenLayers.Util.applyDefaults({"boundedBy":function(bounds){var node=this.createElementNSPlus("gml:boundedBy");this.writeNode("gml:Box",bounds,node);return node;}},OpenLayers.Format.GML.v2.prototype.writers.gml),"ows":OpenLayers.Format.OWSCommon.v1_0_0.prototype.writers.ows,"sld":OpenLayers.Format.SLD.v1_0_0.prototype.writers.sld,"feature":OpenLayers.Format.GML.v2.prototype.writers.feature},CLASS_NAME:"OpenLayers.Format.OWSContext.v0_3_1"});OpenLayers.Control.ScaleLine=OpenLayers.Class(OpenLayers.Control,{maxWidth:100,topOutUnits:"km",topInUnits:"m",bottomOutUnits:"mi",bottomInUnits:"ft",eTop:null,eBottom:null,geodesic:false,draw:function(){OpenLayers.Control.prototype.draw.apply(this,arguments);if(!this.eTop){this.eTop=document.createElement("div");this.eTop.className=this.displayClass+"Top";var theLen=this.topInUnits.length;this.div.appendChild(this.eTop);if((this.topOutUnits=="")||(this.topInUnits=="")){this.eTop.style.visibility="hidden";}else{this.eTop.style.visibility="visible";} +this.eBottom=document.createElement("div");this.eBottom.className=this.displayClass+"Bottom";this.div.appendChild(this.eBottom);if((this.bottomOutUnits=="")||(this.bottomInUnits=="")){this.eBottom.style.visibility="hidden";}else{this.eBottom.style.visibility="visible";}} +this.map.events.register('moveend',this,this.update);this.update();return this.div;},getBarLen:function(maxLen){var digits=parseInt(Math.log(maxLen)/Math.log(10));var pow10=Math.pow(10,digits);var firstChar=parseInt(maxLen/pow10);var barLen;if(firstChar>5){barLen=5;}else if(firstChar>2){barLen=2;}else{barLen=1;} +return barLen*pow10;},update:function(){var res=this.map.getResolution();if(!res){return;} +var curMapUnits=this.map.getUnits();var inches=OpenLayers.INCHES_PER_UNIT;var maxSizeData=this.maxWidth*res*inches[curMapUnits];var geodesicRatio=1;if(this.geodesic===true){var maxSizeGeodesic=(this.map.getGeodesicPixelSize().w||0.000001)*this.maxWidth;var maxSizeKilometers=maxSizeData/inches["km"];geodesicRatio=maxSizeGeodesic/maxSizeKilometers;maxSizeData*=geodesicRatio;} +var topUnits;var bottomUnits;if(maxSizeData>100000){topUnits=this.topOutUnits;bottomUnits=this.bottomOutUnits;}else{topUnits=this.topInUnits;bottomUnits=this.bottomInUnits;} +var topMax=maxSizeData/inches[topUnits];var bottomMax=maxSizeData/inches[bottomUnits];var topRounded=this.getBarLen(topMax);var bottomRounded=this.getBarLen(bottomMax);topMax=topRounded/inches[curMapUnits]*inches[topUnits];bottomMax=bottomRounded/inches[curMapUnits]*inches[bottomUnits];var topPx=topMax/res/geodesicRatio;var bottomPx=bottomMax/res/geodesicRatio;if(this.eBottom.style.visibility=="visible"){this.eBottom.style.width=Math.round(bottomPx)+"px";this.eBottom.innerHTML=bottomRounded+" "+bottomUnits;} +if(this.eTop.style.visibility=="visible"){this.eTop.style.width=Math.round(topPx)+"px";this.eTop.innerHTML=topRounded+" "+topUnits;}},CLASS_NAME:"OpenLayers.Control.ScaleLine"});OpenLayers.Icon=OpenLayers.Class({url:null,size:null,offset:null,calculateOffset:null,imageDiv:null,px:null,initialize:function(url,size,offset,calculateOffset){this.url=url;this.size=(size)?size:new OpenLayers.Size(20,20);this.offset=offset?offset:new OpenLayers.Pixel(-(this.size.w/2),-(this.size.h/2));this.calculateOffset=calculateOffset;var id=OpenLayers.Util.createUniqueID("OL_Icon_");this.imageDiv=OpenLayers.Util.createAlphaImageDiv(id);},destroy:function(){this.erase();OpenLayers.Event.stopObservingElement(this.imageDiv.firstChild);this.imageDiv.innerHTML="";this.imageDiv=null;},clone:function(){return new OpenLayers.Icon(this.url,this.size,this.offset,this.calculateOffset);},setSize:function(size){if(size!=null){this.size=size;} +this.draw();},setUrl:function(url){if(url!=null){this.url=url;} +this.draw();},draw:function(px){OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,null,this.size,this.url,"absolute");this.moveTo(px);return this.imageDiv;},erase:function(){if(this.imageDiv!=null&&this.imageDiv.parentNode!=null){OpenLayers.Element.remove(this.imageDiv);}},setOpacity:function(opacity){OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,null,null,null,null,null,null,opacity);},moveTo:function(px){if(px!=null){this.px=px;} +if(this.imageDiv!=null){if(this.px==null){this.display(false);}else{if(this.calculateOffset){this.offset=this.calculateOffset(this.size);} +var offsetPx=this.px.offset(this.offset);OpenLayers.Util.modifyAlphaImageDiv(this.imageDiv,null,offsetPx);}}},display:function(display){this.imageDiv.style.display=(display)?"":"none";},isDrawn:function(){var isDrawn=(this.imageDiv&&this.imageDiv.parentNode&&(this.imageDiv.parentNode.nodeType!=11));return isDrawn;},CLASS_NAME:"OpenLayers.Icon"});OpenLayers.Marker=OpenLayers.Class({icon:null,lonlat:null,events:null,map:null,initialize:function(lonlat,icon){this.lonlat=lonlat;var newIcon=(icon)?icon:OpenLayers.Marker.defaultIcon();if(this.icon==null){this.icon=newIcon;}else{this.icon.url=newIcon.url;this.icon.size=newIcon.size;this.icon.offset=newIcon.offset;this.icon.calculateOffset=newIcon.calculateOffset;} +this.events=new OpenLayers.Events(this,this.icon.imageDiv,null);},destroy:function(){this.erase();this.map=null;this.events.destroy();this.events=null;if(this.icon!=null){this.icon.destroy();this.icon=null;}},draw:function(px){return this.icon.draw(px);},erase:function(){if(this.icon!=null){this.icon.erase();}},moveTo:function(px){if((px!=null)&&(this.icon!=null)){this.icon.moveTo(px);} +this.lonlat=this.map.getLonLatFromLayerPx(px);},isDrawn:function(){var isDrawn=(this.icon&&this.icon.isDrawn());return isDrawn;},onScreen:function(){var onScreen=false;if(this.map){var screenBounds=this.map.getExtent();onScreen=screenBounds.containsLonLat(this.lonlat);} +return onScreen;},inflate:function(inflate){if(this.icon){var newSize=new OpenLayers.Size(this.icon.size.w*inflate,this.icon.size.h*inflate);this.icon.setSize(newSize);}},setOpacity:function(opacity){this.icon.setOpacity(opacity);},setUrl:function(url){this.icon.setUrl(url);},display:function(display){this.icon.display(display);},CLASS_NAME:"OpenLayers.Marker"});OpenLayers.Marker.defaultIcon=function(){var url=OpenLayers.Util.getImagesLocation()+"marker.png";var size=new OpenLayers.Size(21,25);var calculateOffset=function(size){return new OpenLayers.Pixel(-(size.w/2),-size.h);};return new OpenLayers.Icon(url,size,null,calculateOffset);};OpenLayers.Layer.TileCache=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,format:'image/png',serverResolutions:null,initialize:function(name,url,layername,options){this.layername=layername;OpenLayers.Layer.Grid.prototype.initialize.apply(this,[name,url,{},options]);this.extension=this.format.split('/')[1].toLowerCase();this.extension=(this.extension=='jpg')?'jpeg':this.extension;},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.TileCache(this.name,this.url,this.layername,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var res=this.map.getResolution();var bbox=this.maxExtent;var size=this.tileSize;var tileX=Math.round((bounds.left-bbox.left)/(res*size.w));var tileY=Math.round((bounds.bottom-bbox.bottom)/(res*size.h));var tileZ=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom();function zeroPad(number,length){number=String(number);var zeros=[];for(var i=0;i0){this.length=newLength;} +return this.length;},pageNext:function(event){var changed=false;if(this.features){if(this.num===null){this.num=-1;} +var start=(this.num+1)*this.length;changed=this.page(start,event);} +return changed;},pagePrevious:function(){var changed=false;if(this.features){if(this.num===null){this.num=this.pageCount();} +var start=(this.num-1)*this.length;changed=this.page(start);} +return changed;},page:function(start,event){var changed=false;if(this.features){if(start>=0&&start=constrain||diff!==0){angle=Math.round(control._angle/constrain)*constrain- +diff;control._angle=0;control.box.geometry.rotate(angle,centerGeometry);control.transformFeature({rotation:angle});}};var handles=new Array(8);var rotationHandles=new Array(4);var geom,handle,rotationHandle;for(var i=0;i<8;++i){geom=box.geometry.components[i];handle=new OpenLayers.Feature.Vector(geom.clone(),null,typeof this.renderIntent=="string"?null:this.renderIntent);if(i%2==0){rotationHandle=new OpenLayers.Feature.Vector(geom.clone(),null,typeof this.rotationHandleSymbolizer=="string"?null:this.rotationHandleSymbolizer);rotationHandle.geometry.move=rotationHandleMoveFn;geom._rotationHandle=rotationHandle;rotationHandles[i/2]=rotationHandle;} +geom.move=vertexMoveFn;geom.resize=vertexResizeFn;geom.rotate=vertexRotateFn;handle.geometry.move=handleMoveFn;geom._handle=handle;handles[i]=handle;} +this.box=box;this.rotationHandles=rotationHandles;this.handles=handles;},createControl:function(){var control=this;this.dragControl=new OpenLayers.Control.DragFeature(this.layer,{documentDrag:true,moveFeature:function(pixel){if(this.feature===control.feature){this.feature=control.box;} +OpenLayers.Control.DragFeature.prototype.moveFeature.apply(this,arguments);},onDrag:function(feature,pixel){if(feature===control.box){control.transformFeature({center:control.center});control.drawHandles();}},onStart:function(feature,pixel){var eligible=!control.geometryTypes||OpenLayers.Util.indexOf(control.geometryTypes,feature.geometry.CLASS_NAME)!==-1;var i=OpenLayers.Util.indexOf(control.handles,feature);i+=OpenLayers.Util.indexOf(control.rotationHandles,feature);if(feature!==control.feature&&feature!==control.box&&i==-2&&eligible){control.setFeature(feature);}},onComplete:function(feature,pixel){control.events.triggerEvent("transformcomplete",{feature:control.feature});}});},drawHandles:function(){var layer=this.layer;for(var i=0;i<8;++i){if(this.rotate&&i%2===0){layer.drawFeature(this.rotationHandles[i/2],this.rotationHandleSymbolizer);} +layer.drawFeature(this.handles[i],this.renderIntent);}},transformFeature:function(mods){if(!this._setfeature){this.scale*=(mods.scale||1);this.ratio*=(mods.ratio||1);var oldRotation=this.rotation;this.rotation=(this.rotation+(mods.rotation||0))%360;if(this.events.triggerEvent("beforetransform",mods)!==false){var feature=this.feature;var geom=feature.geometry;var center=this.center;geom.rotate(-oldRotation,center);if(mods.scale||mods.ratio){geom.resize(mods.scale,center,mods.ratio);}else if(mods.center){feature.move(mods.center.getBounds().getCenterLonLat());} +geom.rotate(this.rotation,center);this.layer.drawFeature(feature);feature.toState(OpenLayers.State.UPDATE);this.events.triggerEvent("transform",mods);}} +this.layer.drawFeature(this.box,this.renderIntent);this.drawHandles();},destroy:function(){var geom;for(var i=0;i<8;++i){geom=this.box.geometry.components[i];geom._handle.destroy();geom._handle=null;geom._rotationHandle&&geom._rotationHandle.destroy();geom._rotationHandle=null;} +this.box.destroy();this.box=null;this.layer=null;this.dragControl.destroy();OpenLayers.Control.prototype.destroy.apply(this,arguments);},CLASS_NAME:"OpenLayers.Control.TransformFeature"});OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,sphericalMercator:false,zoomOffset:0,serverResolutions:null,initialize:function(name,url,options){if(options&&options.sphericalMercator||this.sphericalMercator){options=OpenLayers.Util.extend({maxExtent:new OpenLayers.Bounds(-128*156543.03390625,-128*156543.03390625,128*156543.03390625,128*156543.03390625),maxResolution:156543.03390625,numZoomLevels:19,units:"m",projection:"EPSG:900913"},options);} +url=url||this.url;name=name||this.name;var newArguments=[name,url,{},options];OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var xyz=this.getXYZ(bounds);var url=this.url;if(OpenLayers.Util.isArray(url)){var s=''+xyz.x+xyz.y+xyz.z;url=this.selectUrl(s,url);} +return OpenLayers.String.format(url,xyz);},getXYZ:function(bounds){var res=this.map.getResolution();var x=Math.round((bounds.left-this.maxExtent.left)/(res*this.tileSize.w));var y=Math.round((this.maxExtent.top-bounds.top)/(res*this.tileSize.h));var z=this.serverResolutions!=null?OpenLayers.Util.indexOf(this.serverResolutions,res):this.map.getZoom()+this.zoomOffset;var limit=Math.pow(2,z);if(this.wrapDateLine) +{x=((x%limit)+limit)%limit;} +return{'x':x,'y':y,'z':z};},setMap:function(map){OpenLayers.Layer.Grid.prototype.setMap.apply(this,arguments);if(!this.tileOrigin){this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom);}},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",attribution:"Data CC-By-SA by OpenStreetMap",sphericalMercator:true,url:'http://tile.openstreetmap.org/${z}/${x}/${y}.png',clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions());} +obj=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[obj]);return obj;},wrapDateLine:true,CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Handler.Box=OpenLayers.Class(OpenLayers.Handler,{dragHandler:null,boxDivClassName:'olHandlerBoxZoomBox',boxOffsets:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);this.dragHandler=new OpenLayers.Handler.Drag(this,{down:this.startBox,move:this.moveBox,out:this.removeBox,up:this.endBox},{keyMask:this.keyMask});},destroy:function(){OpenLayers.Handler.prototype.destroy.apply(this,arguments);if(this.dragHandler){this.dragHandler.destroy();this.dragHandler=null;}},setMap:function(map){OpenLayers.Handler.prototype.setMap.apply(this,arguments);if(this.dragHandler){this.dragHandler.setMap(map);}},startBox:function(xy){this.callback("start",[]);this.zoomBox=OpenLayers.Util.createDiv('zoomBox',new OpenLayers.Pixel(-9999,-9999));this.zoomBox.className=this.boxDivClassName;this.zoomBox.style.zIndex=this.map.Z_INDEX_BASE["Popup"]-1;this.map.eventsDiv.appendChild(this.zoomBox);OpenLayers.Element.addClass(this.map.eventsDiv,"olDrawBox");},moveBox:function(xy){var startX=this.dragHandler.start.x;var startY=this.dragHandler.start.y;var deltaX=Math.abs(startX-xy.x);var deltaY=Math.abs(startY-xy.y);var offset=this.getBoxOffsets();this.zoomBox.style.width=(deltaX+offset.width+1)+"px";this.zoomBox.style.height=(deltaY+offset.height+1)+"px";this.zoomBox.style.left=(xy.x5||Math.abs(this.dragHandler.start.y-end.y)>5){var start=this.dragHandler.start;var top=Math.min(start.y,end.y);var bottom=Math.max(start.y,end.y);var left=Math.min(start.x,end.x);var right=Math.max(start.x,end.x);result=new OpenLayers.Bounds(left,bottom,right,top);}else{result=this.dragHandler.start.clone();} +this.removeBox();this.callback("done",[result]);},removeBox:function(){this.map.eventsDiv.removeChild(this.zoomBox);this.zoomBox=null;this.boxOffsets=null;OpenLayers.Element.removeClass(this.map.eventsDiv,"olDrawBox");},activate:function(){if(OpenLayers.Handler.prototype.activate.apply(this,arguments)){this.dragHandler.activate();return true;}else{return false;}},deactivate:function(){if(OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){if(this.dragHandler.deactivate()){if(this.zoomBox){this.removeBox();}} +return true;}else{return false;}},getBoxOffsets:function(){if(!this.boxOffsets){var testDiv=document.createElement("div");testDiv.style.position="absolute";testDiv.style.border="1px solid black";testDiv.style.width="3px";document.body.appendChild(testDiv);var w3cBoxModel=testDiv.clientWidth==3;document.body.removeChild(testDiv);var left=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-left-width"));var right=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-right-width"));var top=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-top-width"));var bottom=parseInt(OpenLayers.Element.getStyle(this.zoomBox,"border-bottom-width"));this.boxOffsets={left:left,right:right,top:top,bottom:bottom,width:w3cBoxModel===false?left+right:0,height:w3cBoxModel===false?top+bottom:0};} +return this.boxOffsets;},CLASS_NAME:"OpenLayers.Handler.Box"});OpenLayers.Control.ZoomBox=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,out:false,alwaysZoom:false,draw:function(){this.handler=new OpenLayers.Handler.Box(this,{done:this.zoomBox},{keyMask:this.keyMask});},zoomBox:function(position){if(position instanceof OpenLayers.Bounds){var bounds;if(!this.out){var minXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.left,position.bottom));var maxXY=this.map.getLonLatFromPixel(new OpenLayers.Pixel(position.right,position.top));bounds=new OpenLayers.Bounds(minXY.lon,minXY.lat,maxXY.lon,maxXY.lat);}else{var pixWidth=Math.abs(position.right-position.left);var pixHeight=Math.abs(position.top-position.bottom);var zoomFactor=Math.min((this.map.size.h/pixHeight),(this.map.size.w/pixWidth));var extent=this.map.getExtent();var center=this.map.getLonLatFromPixel(position.getCenterPixel());var xmin=center.lon-(extent.getWidth()/2)*zoomFactor;var xmax=center.lon+(extent.getWidth()/2)*zoomFactor;var ymin=center.lat-(extent.getHeight()/2)*zoomFactor;var ymax=center.lat+(extent.getHeight()/2)*zoomFactor;bounds=new OpenLayers.Bounds(xmin,ymin,xmax,ymax);} +var lastZoom=this.map.getZoom();this.map.zoomToExtent(bounds);if(lastZoom==this.map.getZoom()&&this.alwaysZoom==true){this.map.zoomTo(lastZoom+(this.out?-1:1));}}else{if(!this.out){this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()+1);}else{this.map.setCenter(this.map.getLonLatFromPixel(position),this.map.getZoom()-1);}}},CLASS_NAME:"OpenLayers.Control.ZoomBox"});OpenLayers.Control.DragPan=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,panned:false,interval:1,documentDrag:false,kinetic:null,enableKinetic:false,kineticInterval:10,draw:function(){if(this.enableKinetic){var config={interval:this.kineticInterval};if(typeof this.enableKinetic==="object"){config=OpenLayers.Util.extend(config,this.enableKinetic);} +this.kinetic=new OpenLayers.Kinetic(config);} +this.handler=new OpenLayers.Handler.Drag(this,{"move":this.panMap,"done":this.panMapDone,"down":this.panMapStart},{interval:this.interval,documentDrag:this.documentDrag});},panMapStart:function(){if(this.kinetic){this.kinetic.begin();}},panMap:function(xy){if(this.kinetic){this.kinetic.update(xy);} +this.panned=true;this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:true,animate:false});},panMapDone:function(xy){if(this.panned){var res=null;if(this.kinetic){res=this.kinetic.end(xy);} +this.map.pan(this.handler.last.x-xy.x,this.handler.last.y-xy.y,{dragging:!!res,animate:false});if(res){var self=this;this.kinetic.move(res,function(x,y,end){self.map.pan(x,y,{dragging:!end,animate:false});});} +this.panned=false;}},CLASS_NAME:"OpenLayers.Control.DragPan"});OpenLayers.Handler.Click=OpenLayers.Class(OpenLayers.Handler,{delay:300,single:true,'double':false,pixelTolerance:0,dblclickTolerance:13,stopSingle:false,stopDouble:false,timerId:null,touch:false,down:null,last:null,first:null,rightclickTimerId:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},touchstart:function(evt){if(!this.touch){this.unregisterMouseListeners();this.touch=true;} +this.down=this.getEventInfo(evt);this.last=this.getEventInfo(evt);return true;},touchmove:function(evt){this.last=this.getEventInfo(evt);return true;},touchend:function(evt){if(this.down){evt.xy=this.last.xy;evt.lastTouches=this.last.touches;this.handleSingle(evt);this.down=null;} +return true;},unregisterMouseListeners:function(){this.map.events.un({mousedown:this.mousedown,mouseup:this.mouseup,click:this.click,dblclick:this.dblclick,scope:this});},mousedown:function(evt){this.down=this.getEventInfo(evt);this.last=this.getEventInfo(evt);return true;},mouseup:function(evt){var propagate=true;if(this.checkModifiers(evt)&&this.control.handleRightClicks&&OpenLayers.Event.isRightClick(evt)){propagate=this.rightclick(evt);} +return propagate;},rightclick:function(evt){if(this.passesTolerance(evt)){if(this.rightclickTimerId!=null){this.clearTimer();this.callback('dblrightclick',[evt]);return!this.stopDouble;}else{var clickEvent=this['double']?OpenLayers.Util.extend({},evt):this.callback('rightclick',[evt]);var delayedRightCall=OpenLayers.Function.bind(this.delayedRightCall,this,clickEvent);this.rightclickTimerId=window.setTimeout(delayedRightCall,this.delay);}} +return!this.stopSingle;},delayedRightCall:function(evt){this.rightclickTimerId=null;if(evt){this.callback('rightclick',[evt]);}},click:function(evt){if(!this.last){this.last=this.getEventInfo(evt);} +this.handleSingle(evt);return!this.stopSingle;},dblclick:function(evt){this.handleDouble(evt);return!this.stopDouble;},handleDouble:function(evt){if(this["double"]&&this.passesDblclickTolerance(evt)){this.callback("dblclick",[evt]);}},handleSingle:function(evt){if(this.passesTolerance(evt)){if(this.timerId!=null){if(this.last.touches&&this.last.touches.length===1){if(this["double"]){OpenLayers.Event.stop(evt);} +this.handleDouble(evt);} +if(!this.last.touches||this.last.touches.length!==2){this.clearTimer();}}else{this.first=this.getEventInfo(evt);var clickEvent=this.single?OpenLayers.Util.extend({},evt):null;this.queuePotentialClick(clickEvent);}}},queuePotentialClick:function(evt){this.timerId=window.setTimeout(OpenLayers.Function.bind(this.delayedCall,this,evt),this.delay);},passesTolerance:function(evt){var passes=true;if(this.pixelTolerance!=null&&this.down&&this.down.xy){passes=this.pixelTolerance>=this.down.xy.distanceTo(evt.xy);if(passes&&this.touch&&this.down.touches.length===this.last.touches.length){for(var i=0,ii=this.down.touches.length;ithis.pixelTolerance){passes=false;break;}}}} +return passes;},getTouchDistance:function(from,to){return Math.sqrt(Math.pow(from.clientX-to.clientX,2)+ +Math.pow(from.clientY-to.clientY,2));},passesDblclickTolerance:function(evt){var passes=true;if(this.down&&this.first){passes=this.down.xy.distanceTo(this.first.xy)<=this.dblclickTolerance;} +return passes;},clearTimer:function(){if(this.timerId!=null){window.clearTimeout(this.timerId);this.timerId=null;} +if(this.rightclickTimerId!=null){window.clearTimeout(this.rightclickTimerId);this.rightclickTimerId=null;}},delayedCall:function(evt){this.timerId=null;if(evt){this.callback("click",[evt]);}},getEventInfo:function(evt){var touches;if(evt.touches){var len=evt.touches.length;touches=new Array(len);var touch;for(var i=0;i=0;--i){candidate=features[i].geometry;if((candidate instanceof OpenLayers.Geometry.Polygon||candidate instanceof OpenLayers.Geometry.MultiPolygon)&&candidate.intersects(geometry)){polygon=features[i];this.control.layer.removeFeatures([polygon],{silent:true});this.control.layer.events.registerPriority("sketchcomplete",this,this.finalizeInteriorRing);this.control.layer.events.registerPriority("sketchmodified",this,this.enforceTopology);polygon.geometry.addComponent(this.line.geometry);this.polygon=polygon;this.drawingHole=true;break;}}} +OpenLayers.Handler.Path.prototype.addPoint.apply(this,arguments);},getCurrentPointIndex:function(){return this.line.geometry.components.length-2;},enforceTopology:function(event){var point=event.vertex;var components=this.line.geometry.components;if(!this.polygon.geometry.intersects(point)){var last=components[components.length-3];point.x=last.x;point.y=last.y;}},finishGeometry:function(){var index=this.line.geometry.components.length-2;this.line.geometry.removeComponent(this.line.geometry.components[index]);this.removePoint();this.finalize();},finalizeInteriorRing:function(){var ring=this.line.geometry;var modified=(ring.getArea()!==0);if(modified){var rings=this.polygon.geometry.components;for(var i=rings.length-2;i>=0;--i){if(ring.intersects(rings[i])){modified=false;break;}} +if(modified){var target;outer:for(var i=rings.length-2;i>0;--i){var points=rings[i].components;for(var j=0,jj=points.length;j=this.resFactor||ratio<=(1/this.resFactor));} +return invalid;},calculateBounds:function(mapBounds){if(!mapBounds){mapBounds=this.getMapBounds();} +var center=mapBounds.getCenterLonLat();var dataWidth=mapBounds.getWidth()*this.ratio;var dataHeight=mapBounds.getHeight()*this.ratio;this.bounds=new OpenLayers.Bounds(center.lon-(dataWidth/2),center.lat-(dataHeight/2),center.lon+(dataWidth/2),center.lat+(dataHeight/2));},triggerRead:function(options){if(this.response){this.layer.protocol.abort(this.response);this.layer.events.triggerEvent("loadend");} +this.layer.events.triggerEvent("loadstart");this.response=this.layer.protocol.read(OpenLayers.Util.applyDefaults({filter:this.createFilter(),callback:this.merge,scope:this},options));},createFilter:function(){var filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.BBOX,value:this.bounds,projection:this.layer.projection});if(this.layer.filter){filter=new OpenLayers.Filter.Logical({type:OpenLayers.Filter.Logical.AND,filters:[this.layer.filter,filter]});} +return filter;},merge:function(resp){this.layer.destroyFeatures();var features=resp.features;if(features&&features.length>0){var remote=this.layer.projection;var local=this.layer.map.getProjectionObject();if(!local.equals(remote)){var geom;for(var i=0,len=features.length;i=0;--i){layer=layers[i];if(layer instanceof OpenLayers.Layer.Google&&layer.visibility===true&&layer.inRange===true){type=layer.type;visible=true;break;}} +var container=this.mapObject.getDiv();if(visible===true){this.mapObject.setMapTypeId(type);container.style.left="";if(cache.termsOfUse&&cache.termsOfUse.style){cache.termsOfUse.style.left="";cache.termsOfUse.style.display="";cache.poweredBy.style.display="";} +cache.displayed=this.id;}else{delete cache.displayed;container.style.left="-9999px";if(cache.termsOfUse&&cache.termsOfUse.style){cache.termsOfUse.style.display="none";cache.termsOfUse.style.left="-9999px";cache.poweredBy.style.display="none";}}}},getMapContainer:function(){return this.mapObject.getDiv();},getMapObjectBoundsFromOLBounds:function(olBounds){var moBounds=null;if(olBounds!=null){var sw=this.sphericalMercator?this.inverseMercator(olBounds.bottom,olBounds.left):new OpenLayers.LonLat(olBounds.bottom,olBounds.left);var ne=this.sphericalMercator?this.inverseMercator(olBounds.top,olBounds.right):new OpenLayers.LonLat(olBounds.top,olBounds.right);moBounds=new google.maps.LatLngBounds(new google.maps.LatLng(sw.lat,sw.lon),new google.maps.LatLng(ne.lat,ne.lon));} +return moBounds;},getMapObjectLonLatFromMapObjectPixel:function(moPixel){var size=this.map.getSize();var lon=this.getLongitudeFromMapObjectLonLat(this.mapObject.center);var lat=this.getLatitudeFromMapObjectLonLat(this.mapObject.center);var res=this.map.getResolution();var delta_x=moPixel.x-(size.w/2);var delta_y=moPixel.y-(size.h/2);var lonlat=new OpenLayers.LonLat(lon+delta_x*res,lat-delta_y*res);if(this.wrapDateLine){lonlat=lonlat.wrapDateLine(this.maxExtent);} +return this.getMapObjectLonLatFromLonLat(lonlat.lon,lonlat.lat);},getMapObjectPixelFromMapObjectLonLat:function(moLonLat){var lon=this.getLongitudeFromMapObjectLonLat(moLonLat);var lat=this.getLatitudeFromMapObjectLonLat(moLonLat);var res=this.map.getResolution();var extent=this.map.getExtent();var px=new OpenLayers.Pixel((1/res*(lon-extent.left)),(1/res*(extent.top-lat)));return this.getMapObjectPixelFromXY(px.x,px.y);},setMapObjectCenter:function(center,zoom){if(this.animationEnabled===false&&zoom!=this.mapObject.zoom){var mapContainer=this.getMapContainer();google.maps.event.addListenerOnce(this.mapObject,"idle",function(){mapContainer.style.visibility="";});mapContainer.style.visibility="hidden";} +this.mapObject.setOptions({center:center,zoom:zoom});},getMapObjectZoomFromMapObjectBounds:function(moBounds){return this.mapObject.getBoundsZoomLevel(moBounds);},getMapObjectLonLatFromLonLat:function(lon,lat){var gLatLng;if(this.sphericalMercator){var lonlat=this.inverseMercator(lon,lat);gLatLng=new google.maps.LatLng(lonlat.lat,lonlat.lon);}else{gLatLng=new google.maps.LatLng(lat,lon);} +return gLatLng;},getMapObjectPixelFromXY:function(x,y){return new google.maps.Point(x,y);},destroy:function(){if(this.repositionListener){google.maps.event.removeListener(this.repositionListener);} +if(this.repositionTimer){window.clearTimeout(this.repositionTimer);} +OpenLayers.Layer.Google.prototype.destroy.apply(this,arguments);}};OpenLayers.Format.WPSDescribeProcess=OpenLayers.Class(OpenLayers.Format.XML,{VERSION:"1.0.0",namespaces:{wps:"http://www.opengis.net/wps/1.0.0",ows:"http://www.opengis.net/ows/1.1",xsi:"http://www.w3.org/2001/XMLSchema-instance"},schemaLocation:"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd",defaultPrefix:"wps",regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} +if(data&&data.nodeType==9){data=data.documentElement;} +var info={};this.readNode(data,info);return info;},readers:{"wps":{"ProcessDescriptions":function(node,obj){obj.processDescriptions={};this.readChildNodes(node,obj.processDescriptions);},"ProcessDescription":function(node,processDescriptions){var processVersion=this.getAttributeNS(node,this.namespaces.wps,"processVersion");var processDescription={processVersion:processVersion,statusSupported:(node.getAttribute("statusSupported")==="true"),storeSupported:(node.getAttribute("storeSupported")==="true")};this.readChildNodes(node,processDescription);processDescriptions[processDescription.identifier]=processDescription;},"DataInputs":function(node,processDescription){processDescription.dataInputs=[];this.readChildNodes(node,processDescription.dataInputs);},"ProcessOutputs":function(node,processDescription){processDescription.processOutputs=[];this.readChildNodes(node,processDescription.processOutputs);},"Output":function(node,processOutputs){var output={};this.readChildNodes(node,output);processOutputs.push(output);},"ComplexOutput":function(node,output){output.complexOutput={};this.readChildNodes(node,output.complexOutput);},"Input":function(node,dataInputs){var input={maxOccurs:parseInt(node.getAttribute("maxOccurs")),minOccurs:parseInt(node.getAttribute("minOccurs"))};this.readChildNodes(node,input);dataInputs.push(input);},"BoundingBoxData":function(node,input){input.boundingBoxData={};this.readChildNodes(node,input.boundingBoxData);},"CRS":function(node,obj){if(!obj.CRSs){obj.CRSs={};} +obj.CRSs[this.getChildValue(node)]=true;},"LiteralData":function(node,input){input.literalData={};this.readChildNodes(node,input.literalData);},"ComplexData":function(node,input){input.complexData={};this.readChildNodes(node,input.complexData);},"Default":function(node,complexData){complexData["default"]={};this.readChildNodes(node,complexData["default"]);},"Supported":function(node,complexData){complexData["supported"]={};this.readChildNodes(node,complexData["supported"]);},"Format":function(node,obj){var format={};this.readChildNodes(node,format);if(!obj.formats){obj.formats={};} +obj.formats[format.mimeType]=true;},"MimeType":function(node,format){format.mimeType=this.getChildValue(node);}},"ows":OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]},CLASS_NAME:"OpenLayers.Format.WPSDescribeProcess"});OpenLayers.Control.NavToolbar=OpenLayers.Class(OpenLayers.Control.Panel,{initialize:function(options){OpenLayers.Control.Panel.prototype.initialize.apply(this,[options]);this.addControls([new OpenLayers.Control.Navigation(),new OpenLayers.Control.ZoomBox()]);},draw:function(){var div=OpenLayers.Control.Panel.prototype.draw.apply(this,arguments);if(this.defaultControl===null){this.defaultControl=this.controls[0];} +return div;},CLASS_NAME:"OpenLayers.Control.NavToolbar"});OpenLayers.Format.CSWGetRecords.v2_0_2=OpenLayers.Class(OpenLayers.Format.XML,{namespaces:{csw:"http://www.opengis.net/cat/csw/2.0.2",dc:"http://purl.org/dc/elements/1.1/",dct:"http://purl.org/dc/terms/",geonet:"http://www.fao.org/geonetwork",ogc:"http://www.opengis.net/ogc",ows:"http://www.opengis.net/ows",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance"},defaultPrefix:"csw",version:"2.0.2",schemaLocation:"http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd",requestId:null,resultType:null,outputFormat:null,outputSchema:null,startPosition:null,maxRecords:null,DistributedSearch:null,ResponseHandler:null,Query:null,regExes:{trimSpace:(/^\s*|\s*$/g),removeSpace:(/\s*/g),splitSpace:(/\s+/),trimComma:(/\s*,\s*/g)},initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},read:function(data){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} +if(data&&data.nodeType==9){data=data.documentElement;} +var obj={};this.readNode(data,obj);return obj;},readers:{"csw":{"GetRecordsResponse":function(node,obj){obj.records=[];this.readChildNodes(node,obj);var version=this.getAttributeNS(node,"",'version');if(version!=""){obj.version=version;}},"RequestId":function(node,obj){obj.RequestId=this.getChildValue(node);},"SearchStatus":function(node,obj){obj.SearchStatus={};var timestamp=this.getAttributeNS(node,"",'timestamp');if(timestamp!=""){obj.SearchStatus.timestamp=timestamp;}},"SearchResults":function(node,obj){this.readChildNodes(node,obj);var attrs=node.attributes;var SearchResults={};for(var i=0,len=attrs.length;i0){for(var i=0,len=ResponseHandler.length;i0){for(var i=0,len=ElementName.length;i'+feature.attributes.title+''+'

        '+feature.attributes.description+'

        ';} +data['overflow']=feature.attributes.overflow||"auto";var markerFeature=new OpenLayers.Feature(this,location,data);this.features.push(markerFeature);var marker=markerFeature.createMarker();if((feature.attributes.title!=null)&&(feature.attributes.description!=null)){marker.events.register('click',markerFeature,this.markerClick);} +this.addMarker(marker);} +this.events.triggerEvent("loadend");},markerClick:function(evt){var sameMarkerClicked=(this==this.layer.selectedFeature);this.layer.selectedFeature=(!sameMarkerClicked)?this:null;for(var i=0,len=this.layer.map.popups.length;i0){var feature=this.features[0];OpenLayers.Util.removeItem(this.features,feature);feature.destroy();}}},CLASS_NAME:"OpenLayers.Layer.Text"});OpenLayers.Handler.RegularPolygon=OpenLayers.Class(OpenLayers.Handler.Drag,{sides:4,radius:null,snapAngle:null,snapToggle:'shiftKey',layerOptions:null,persist:false,irregular:false,angle:null,fixedRadius:false,feature:null,layer:null,origin:null,initialize:function(control,callbacks,options){if(!(options&&options.layerOptions&&options.layerOptions.styleMap)){this.style=OpenLayers.Util.extend(OpenLayers.Feature.Vector.style['default'],{});} +OpenLayers.Handler.Drag.prototype.initialize.apply(this,[control,callbacks,options]);this.options=(options)?options:{};},setOptions:function(newOptions){OpenLayers.Util.extend(this.options,newOptions);OpenLayers.Util.extend(this,newOptions);},activate:function(){var activated=false;if(OpenLayers.Handler.Drag.prototype.activate.apply(this,arguments)){var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:OpenLayers.Function.True},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);activated=true;} +return activated;},deactivate:function(){var deactivated=false;if(OpenLayers.Handler.Drag.prototype.deactivate.apply(this,arguments)){if(this.dragging){this.cancel();} +if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy();}} +this.layer=null;this.feature=null;deactivated=true;} +return deactivated;},down:function(evt){this.fixedRadius=!!(this.radius);var maploc=this.map.getLonLatFromPixel(evt.xy);this.origin=new OpenLayers.Geometry.Point(maploc.lon,maploc.lat);if(!this.fixedRadius||this.irregular){this.radius=this.map.getResolution();} +if(this.persist){this.clear();} +this.feature=new OpenLayers.Feature.Vector();this.createGeometry();this.callback("create",[this.origin,this.feature]);this.layer.addFeatures([this.feature],{silent:true});this.layer.drawFeature(this.feature,this.style);},move:function(evt){var maploc=this.map.getLonLatFromPixel(evt.xy);var point=new OpenLayers.Geometry.Point(maploc.lon,maploc.lat);if(this.irregular){var ry=Math.sqrt(2)*Math.abs(point.y-this.origin.y)/2;this.radius=Math.max(this.map.getResolution()/2,ry);}else if(this.fixedRadius){this.origin=point;}else{this.calculateAngle(point,evt);this.radius=Math.max(this.map.getResolution()/2,point.distanceTo(this.origin));} +this.modifyGeometry();if(this.irregular){var dx=point.x-this.origin.x;var dy=point.y-this.origin.y;var ratio;if(dy==0){ratio=dx/(this.radius*Math.sqrt(2));}else{ratio=dx/dy;} +this.feature.geometry.resize(1,this.origin,ratio);this.feature.geometry.move(dx/2,dy/2);} +this.layer.drawFeature(this.feature,this.style);},up:function(evt){this.finalize();if(this.start==this.last){this.callback("done",[evt.xy]);}},out:function(evt){this.finalize();},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180);} +this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle);},modifyGeometry:function(){var angle,point;var ring=this.feature.geometry.components[0];if(ring.components.length!=(this.sides+1)){this.createGeometry();ring=this.feature.geometry.components[0];} +for(var i=0;i=0){symbolizer={Polygon:this.selectionSymbolizer['Polygon']};}else if(geometryAttribute.type.indexOf('LineString')>=0){symbolizer={Line:this.selectionSymbolizer['Line']};}else if(geometryAttribute.type.indexOf('Point')>=0){symbolizer={Point:this.selectionSymbolizer['Point']};} +var filter=filters[i];sld.namedLayers[name].userStyles.push({name:'default',rules:[new OpenLayers.Rule({symbolizer:symbolizer,filter:filter,maxScaleDenominator:layer.options.minScale})]});} +return new OpenLayers.Format.SLD({srsName:this.map.getProjection()}).write(sld);},parseDescribeLayer:function(request){var format=new OpenLayers.Format.WMSDescribeLayer();var doc=request.responseXML;if(!doc||!doc.documentElement){doc=request.responseText;} +var describeLayer=format.read(doc);var typeNames=[];var url=null;for(var i=0,len=describeLayer.length;i=0)||(type.indexOf('GeometryAssociationType')>=0)||(type.indexOf('GeometryPropertyType')>=0)||(type.indexOf('Point')>=0)||(type.indexOf('Polygon')>=0)){result.push(property);}}} +return result;},activate:function(){var activated=OpenLayers.Control.prototype.activate.call(this);if(activated){for(var i=0,len=this.layers.length;i=0){filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.DWITHIN,property:geometryAttribute.name,distance:this.map.getExtent().getWidth()*0.01,distanceUnits:this.map.getUnits(),value:geometry});}else{filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.INTERSECTS,property:geometryAttribute.name,value:geometry});}}else if(this.handler instanceof OpenLayers.Handler.Click){if(geometryAttribute.type.indexOf('Polygon')>=0){filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.INTERSECTS,property:geometryAttribute.name,value:geometry});}else{filter=new OpenLayers.Filter.Spatial({type:OpenLayers.Filter.Spatial.DWITHIN,property:geometryAttribute.name,distance:this.map.getExtent().getWidth()*0.01,distanceUnits:this.map.getUnits(),value:geometry});}} +return filter;},select:function(geometry){this._queue=function(){for(var i=0,len=this.layers.length;i=9500&&scale<=950000){scale=Math.round(scale/1000)+"K";}else if(scale>=950000){scale=Math.round(scale/1000000)+"M";}else{scale=Math.round(scale);} +this.element.innerHTML=OpenLayers.i18n("Scale = 1 : ${scaleDenom}",{'scaleDenom':scale});},CLASS_NAME:"OpenLayers.Control.Scale"});OpenLayers.Control.Button=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_BUTTON,trigger:function(){},CLASS_NAME:"OpenLayers.Control.Button"});OpenLayers.Layer.MapGuide=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,useHttpTile:false,singleTile:false,useOverlay:false,useAsyncOverlay:true,TILE_PARAMS:{operation:'GETTILEIMAGE',version:'1.2.0'},SINGLE_TILE_PARAMS:{operation:'GETMAPIMAGE',format:'PNG',locale:'en',clip:'1',version:'1.0.0'},OVERLAY_PARAMS:{operation:'GETDYNAMICMAPOVERLAYIMAGE',format:'PNG',locale:'en',clip:'1',version:'2.0.0'},FOLDER_PARAMS:{tileColumnsPerFolder:30,tileRowsPerFolder:30,format:'png',querystring:null},defaultSize:new OpenLayers.Size(300,300),tileOriginCorner:"tl",initialize:function(name,url,params,options){OpenLayers.Layer.Grid.prototype.initialize.apply(this,arguments);if(options==null||options.isBaseLayer==null){this.isBaseLayer=((this.transparent!="true")&&(this.transparent!=true));} +if(options&&options.useOverlay!=null){this.useOverlay=options.useOverlay;} +if(this.singleTile){if(this.useOverlay){OpenLayers.Util.applyDefaults(this.params,this.OVERLAY_PARAMS);if(!this.useAsyncOverlay){this.params.version="1.0.0";}}else{OpenLayers.Util.applyDefaults(this.params,this.SINGLE_TILE_PARAMS);}}else{if(this.useHttpTile){OpenLayers.Util.applyDefaults(this.params,this.FOLDER_PARAMS);}else{OpenLayers.Util.applyDefaults(this.params,this.TILE_PARAMS);} +this.setTileSize(this.defaultSize);}},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.MapGuide(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);return obj;},getURL:function(bounds){var url;var center=bounds.getCenterLonLat();var mapSize=this.map.getSize();if(this.singleTile){var params={setdisplaydpi:OpenLayers.DOTS_PER_INCH,setdisplayheight:mapSize.h*this.ratio,setdisplaywidth:mapSize.w*this.ratio,setviewcenterx:center.lon,setviewcentery:center.lat,setviewscale:this.map.getScale()};if(this.useOverlay&&!this.useAsyncOverlay){var getVisParams={};getVisParams=OpenLayers.Util.extend(getVisParams,params);getVisParams.operation="GETVISIBLEMAPEXTENT";getVisParams.version="1.0.0";getVisParams.session=this.params.session;getVisParams.mapName=this.params.mapName;getVisParams.format='text/xml';url=this.getFullRequestString(getVisParams);OpenLayers.Request.GET({url:url,async:false});} +url=this.getFullRequestString(params);}else{var currentRes=this.map.getResolution();var colidx=Math.floor((bounds.left-this.maxExtent.left)/currentRes);colidx=Math.round(colidx/this.tileSize.w);var rowidx=Math.floor((this.maxExtent.top-bounds.top)/currentRes);rowidx=Math.round(rowidx/this.tileSize.h);if(this.useHttpTile){url=this.getImageFilePath({tilecol:colidx,tilerow:rowidx,scaleindex:this.resolutions.length-this.map.zoom-1});}else{url=this.getFullRequestString({tilecol:colidx,tilerow:rowidx,scaleindex:this.resolutions.length-this.map.zoom-1});}} +return url;},getFullRequestString:function(newParams,altUrl){var url=(altUrl==null)?this.url:altUrl;if(typeof url=="object"){url=url[Math.floor(Math.random()*url.length)];} +var requestString=url;var allParams=OpenLayers.Util.extend({},this.params);allParams=OpenLayers.Util.extend(allParams,newParams);var urlParams=OpenLayers.Util.upperCaseObject(OpenLayers.Util.getParameters(url));for(var key in allParams){if(key.toUpperCase()in urlParams){delete allParams[key];}} +var paramsString=OpenLayers.Util.getParameterString(allParams);paramsString=paramsString.replace(/,/g,"+");if(paramsString!=""){var lastServerChar=url.charAt(url.length-1);if((lastServerChar=="&")||(lastServerChar=="?")){requestString+=paramsString;}else{if(url.indexOf('?')==-1){requestString+='?'+paramsString;}else{requestString+='&'+paramsString;}}} +return requestString;},getImageFilePath:function(newParams,altUrl){var url=(altUrl==null)?this.url:altUrl;if(typeof url=="object"){url=url[Math.floor(Math.random()*url.length)];} +var requestString=url;var tileRowGroup="";var tileColGroup="";if(newParams.tilerow<0){tileRowGroup='-';} +if(newParams.tilerow==0){tileRowGroup+='0';}else{tileRowGroup+=Math.floor(Math.abs(newParams.tilerow/this.params.tileRowsPerFolder))*this.params.tileRowsPerFolder;} +if(newParams.tilecol<0){tileColGroup='-';} +if(newParams.tilecol==0){tileColGroup+='0';}else{tileColGroup+=Math.floor(Math.abs(newParams.tilecol/this.params.tileColumnsPerFolder))*this.params.tileColumnsPerFolder;} +var tilePath='/S'+Math.floor(newParams.scaleindex) ++'/'+this.params.basemaplayergroupname ++'/R'+tileRowGroup ++'/C'+tileColGroup ++'/'+(newParams.tilerow%this.params.tileRowsPerFolder) ++'_'+(newParams.tilecol%this.params.tileColumnsPerFolder) ++'.'+this.params.format;if(this.params.querystring){tilePath+="?"+this.params.querystring;} +requestString+=tilePath;return requestString;},calculateGridLayout:function(bounds,origin,resolution){var tilelon=resolution*this.tileSize.w;var tilelat=resolution*this.tileSize.h;var offsetlon=bounds.left-origin.lon;var tilecol=Math.floor(offsetlon/tilelon)-this.buffer;var tilecolremain=offsetlon/tilelon-tilecol;var tileoffsetx=-tilecolremain*this.tileSize.w;var tileoffsetlon=origin.lon+tilecol*tilelon;var offsetlat=origin.lat-bounds.top+tilelat;var tilerow=Math.floor(offsetlat/tilelat)-this.buffer;var tilerowremain=tilerow-offsetlat/tilelat;var tileoffsety=tilerowremain*this.tileSize.h;var tileoffsetlat=origin.lat-tilelat*tilerow;return{tilelon:tilelon,tilelat:tilelat,tileoffsetlon:tileoffsetlon,tileoffsetlat:tileoffsetlat,tileoffsetx:tileoffsetx,tileoffsety:tileoffsety};},CLASS_NAME:"OpenLayers.Layer.MapGuide"});OpenLayers.Control.Measure=OpenLayers.Class(OpenLayers.Control,{EVENT_TYPES:['measure','measurepartial'],handlerOptions:null,callbacks:null,displaySystem:'metric',geodesic:false,displaySystemUnits:{geographic:['dd'],english:['mi','ft','in'],metric:['km','m']},partialDelay:300,delayedTrigger:null,persist:false,immediate:false,initialize:function(handler,options){this.EVENT_TYPES=OpenLayers.Control.Measure.prototype.EVENT_TYPES.concat(OpenLayers.Control.prototype.EVENT_TYPES);OpenLayers.Control.prototype.initialize.apply(this,[options]);var callbacks={done:this.measureComplete,point:this.measurePartial};if(this.immediate){callbacks.modify=this.measureImmediate;} +this.callbacks=OpenLayers.Util.extend(callbacks,this.callbacks);this.handlerOptions=OpenLayers.Util.extend({persist:this.persist},this.handlerOptions);this.handler=new handler(this,this.callbacks,this.handlerOptions);},deactivate:function(){this.cancelDelay();return OpenLayers.Control.prototype.deactivate.apply(this,arguments);},cancel:function(){this.cancelDelay();this.handler.cancel();},setImmediate:function(immediate){this.immediate=immediate;if(this.immediate){this.callbacks.modify=this.measureImmediate;}else{delete this.callbacks.modify;}},updateHandler:function(handler,options){var active=this.active;if(active){this.deactivate();} +this.handler=new handler(this,this.callbacks,options);if(active){this.activate();}},measureComplete:function(geometry){this.cancelDelay();this.measure(geometry,"measure");},measurePartial:function(point,geometry){this.cancelDelay();geometry=geometry.clone();if(this.handler.freehandMode(this.handler.evt)){this.measure(geometry,"measurepartial");}else{this.delayedTrigger=window.setTimeout(OpenLayers.Function.bind(function(){this.delayedTrigger=null;this.measure(geometry,"measurepartial");},this),this.partialDelay);}},measureImmediate:function(point,feature,drawing){if(drawing&&this.delayedTrigger===null&&!this.handler.freehandMode(this.handler.evt)){this.measure(feature.geometry,"measurepartial");}},cancelDelay:function(){if(this.delayedTrigger!==null){window.clearTimeout(this.delayedTrigger);this.delayedTrigger=null;}},measure:function(geometry,eventType){var stat,order;if(geometry.CLASS_NAME.indexOf('LineString')>-1){stat=this.getBestLength(geometry);order=1;}else{stat=this.getBestArea(geometry);order=2;} +this.events.triggerEvent(eventType,{measure:stat[0],units:stat[1],order:order,geometry:geometry});},getBestArea:function(geometry){var units=this.displaySystemUnits[this.displaySystem];var unit,area;for(var i=0,len=units.length;i1){break;}} +return[area,unit];},getArea:function(geometry,units){var area,geomUnits;if(this.geodesic){area=geometry.getGeodesicArea(this.map.getProjectionObject());geomUnits="m";}else{area=geometry.getArea();geomUnits=this.map.getUnits();} +var inPerDisplayUnit=OpenLayers.INCHES_PER_UNIT[units];if(inPerDisplayUnit){var inPerMapUnit=OpenLayers.INCHES_PER_UNIT[geomUnits];area*=Math.pow((inPerMapUnit/inPerDisplayUnit),2);} +return area;},getBestLength:function(geometry){var units=this.displaySystemUnits[this.displaySystem];var unit,length;for(var i=0,len=units.length;i1){break;}} +return[length,unit];},getLength:function(geometry,units){var length,geomUnits;if(this.geodesic){length=geometry.getGeodesicLength(this.map.getProjectionObject());geomUnits="m";}else{length=geometry.getLength();geomUnits=this.map.getUnits();} +var inPerDisplayUnit=OpenLayers.INCHES_PER_UNIT[units];if(inPerDisplayUnit){var inPerMapUnit=OpenLayers.INCHES_PER_UNIT[geomUnits];length*=(inPerMapUnit/inPerDisplayUnit);} +return length;},CLASS_NAME:"OpenLayers.Control.Measure"});OpenLayers.Layer.KaMap=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:true,units:null,resolution:OpenLayers.DOTS_PER_INCH,DEFAULT_PARAMS:{i:'jpeg',map:''},initialize:function(name,url,params,options){var newArguments=[];newArguments.push(name,url,params,options);OpenLayers.Layer.Grid.prototype.initialize.apply(this,newArguments);this.params=OpenLayers.Util.applyDefaults(this.params,this.DEFAULT_PARAMS);},getURL:function(bounds){bounds=this.adjustBounds(bounds);var mapRes=this.map.getResolution();var scale=Math.round((this.map.getScale()*10000))/10000;var pX=Math.round(bounds.left/mapRes);var pY=-Math.round(bounds.top/mapRes);return this.getFullRequestString({t:pY,l:pX,s:scale});},calculateGridLayout:function(bounds,origin,resolution){var tilelon=resolution*this.tileSize.w;var tilelat=resolution*this.tileSize.h;var offsetlon=bounds.left;var tilecol=Math.floor(offsetlon/tilelon)-this.buffer;var tilecolremain=offsetlon/tilelon-tilecol;var tileoffsetx=-tilecolremain*this.tileSize.w;var tileoffsetlon=tilecol*tilelon;var offsetlat=bounds.top;var tilerow=Math.ceil(offsetlat/tilelat)+this.buffer;var tilerowremain=tilerow-offsetlat/tilelat;var tileoffsety=-(tilerowremain+1)*this.tileSize.h;var tileoffsetlat=tilerow*tilelat;return{tilelon:tilelon,tilelat:tilelat,tileoffsetlon:tileoffsetlon,tileoffsetlat:tileoffsetlat,tileoffsetx:tileoffsetx,tileoffsety:tileoffsety};},clone:function(obj){if(obj==null){obj=new OpenLayers.Layer.KaMap(this.name,this.url,this.params,this.getOptions());} +obj=OpenLayers.Layer.Grid.prototype.clone.apply(this,[obj]);if(this.tileSize!=null){obj.tileSize=this.tileSize.clone();} +obj.grid=[];return obj;},getTileBounds:function(viewPortPx){var resolution=this.getResolution();var tileMapWidth=resolution*this.tileSize.w;var tileMapHeight=resolution*this.tileSize.h;var mapPoint=this.getLonLatFromViewPortPx(viewPortPx);var tileLeft=tileMapWidth*Math.floor(mapPoint.lon/tileMapWidth);var tileBottom=tileMapHeight*Math.floor(mapPoint.lat/tileMapHeight);return new OpenLayers.Bounds(tileLeft,tileBottom,tileLeft+tileMapWidth,tileBottom+tileMapHeight);},CLASS_NAME:"OpenLayers.Layer.KaMap"});OpenLayers.Popup.Framed=OpenLayers.Class(OpenLayers.Popup.Anchored,{imageSrc:null,imageSize:null,isAlphaImage:false,positionBlocks:null,blocks:null,fixedRelativePosition:false,initialize:function(id,lonlat,contentSize,contentHTML,anchor,closeBox,closeBoxCallback){OpenLayers.Popup.Anchored.prototype.initialize.apply(this,arguments);if(this.fixedRelativePosition){this.updateRelativePosition();this.calculateRelativePosition=function(px){return this.relativePosition;};} +this.contentDiv.style.position="absolute";this.contentDiv.style.zIndex=1;if(closeBox){this.closeDiv.style.zIndex=1;} +this.groupDiv.style.position="absolute";this.groupDiv.style.top="0px";this.groupDiv.style.left="0px";this.groupDiv.style.height="100%";this.groupDiv.style.width="100%";},destroy:function(){this.imageSrc=null;this.imageSize=null;this.isAlphaImage=null;this.fixedRelativePosition=false;this.positionBlocks=null;for(var i=0;ithis.maxGetUrlLength;if(this.imgDiv!=null){var nodeName=this.imgDiv.nodeName.toLowerCase();if((this.useIFrame&&nodeName=="img")||(!this.useIFrame&&nodeName=="div")){this.removeImgDiv();this.imgDiv=null;}} +if(this.useIFrame){if(this.imgDiv==null){var eventPane=document.createElement("div");if(OpenLayers.BROWSER_NAME=="msie"){eventPane.style.backgroundColor='#FFFFFF';eventPane.style.filter='chroma(color=#FFFFFF)';} +OpenLayers.Util.modifyDOMElement(eventPane,null,new OpenLayers.Pixel(0,0),this.layer.getImageSize(),"absolute");this.imgDiv=document.createElement("div");this.imgDiv.appendChild(eventPane);OpenLayers.Util.modifyDOMElement(this.imgDiv,this.id,null,this.layer.getImageSize(),"relative");this.imgDiv.className='olTileImage';this.frame.appendChild(this.imgDiv);this.layer.div.appendChild(this.frame);if(this.layer.opacity!=null){OpenLayers.Util.modifyDOMElement(this.imgDiv,null,null,null,null,null,null,this.layer.opacity);} +this.imgDiv.map=this.layer.map;} +this.imgDiv.viewRequestID=this.layer.map.viewRequestID;}else{OpenLayers.Tile.Image.prototype.initImgDiv.apply(this,arguments);}},createIFrame:function(){var id=this.id+'_iFrame';var iframe;if(OpenLayers.BROWSER_NAME=="msie"){iframe=document.createElement('':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?" ":"")}if(secondary||!changeYear){html+=''+drawYear+""}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?" ":"")+monthHtml}html+="";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&datemaxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;/* + * jQuery UI Progressbar 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('
        ').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(bthis._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h").css({position:"absolute",visibility:"visible",left:-d*(g/e),top:-f*(c/k)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/e,height:c/k,left:l.left+d*(g/e)+(b.options.mode=="show"?(d-Math.floor(e/2))*(g/e):0),top:l.top+f*(c/k)+(b.options.mode=="show"?(f-Math.floor(k/2))*(c/k):0),opacity:b.options.mode=="show"?0:1}).animate({left:l.left+d*(g/e)+(b.options.mode=="show"?0:(d-Math.floor(e/2))*(g/e)),top:l.top+f*(c/k)+(b.options.mode=="show"?0:(f-Math.floor(k/2))*(c/k)),opacity:b.options.mode=="show"?1:0},b.duration||500)}}setTimeout(function(){b.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();if(b.callback){b.callback.apply(h[0])}h.dequeue();a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/* + * jQuery UI Effects Fold 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.fold=function(b){return this.queue(function(){var e=a(this),k=["position","top","left"];var h=a.effects.setMode(e,b.options.mode||"hide");var o=b.options.size||15;var n=!(!b.options.horizFirst);var g=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(e,k);e.show();var d=a.effects.createWrapper(e).css({overflow:"hidden"});var i=((h=="show")!=n);var f=i?["width","height"]:["height","width"];var c=i?[d.width(),d.height()]:[d.height(),d.width()];var j=/([0-9]+)%/.exec(o);if(j){o=parseInt(j[1],10)/100*c[h=="hide"?0:1]}if(h=="show"){d.css(n?{height:0,width:o}:{height:o,width:0})}var m={},l={};m[f[0]]=h=="show"?c[0]:o;l[f[1]]=h=="show"?c[1]:0;d.animate(m,g,b.options.easing).animate(l,g,b.options.easing,function(){if(h=="hide"){e.hide()}a.effects.restore(e,k);a.effects.removeWrapper(e);if(b.callback){b.callback.apply(e[0],arguments)}e.dequeue()})})}})(jQuery);;/* + * jQuery UI Effects Highlight 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;/* + * jQuery UI Effects Pulsate 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * effects.core.js + */ +(function(a){a.effects.pulsate=function(b){return this.queue(function(){var d=a(this);var g=a.effects.setMode(d,b.options.mode||"show");var f=b.options.times||5;var e=b.duration?b.duration/2:a.fx.speeds._default/2;if(g=="hide"){f--}if(d.is(":hidden")){d.css("opacity",0);d.show();d.animate({opacity:1},e,b.options.easing);f=f-2}for(var c=0;c').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/resources/library/applications/Stopwatch.wgt/js/jquery.center.js b/resources/library/applications/Stopwatch.wgt/js/jquery.center.js new file mode 100644 index 0000000..9715dba --- /dev/null +++ b/resources/library/applications/Stopwatch.wgt/js/jquery.center.js @@ -0,0 +1,56 @@ +jQuery.fn.center = function(params) { + + var options = { + + vertical: true, + horizontal: true + + } + op = jQuery.extend(options, params); + + this.each(function(){ + + //initializing variables + var $self = jQuery(this); + //get the dimensions using dimensions plugin + var width = $self.width(); + var height = $self.height(); + //get the paddings + var paddingTop = parseInt($self.css("padding-top")); + var paddingBottom = parseInt($self.css("padding-bottom")); + //get the borders + var borderTop = parseInt($self.css("border-top-width")); + var borderBottom = parseInt($self.css("border-bottom-width")); + //get the media of padding and borders + var mediaBorder = (borderTop+borderBottom)/2; + var mediaPadding = (paddingTop+paddingBottom)/2; + //get the type of positioning + var positionType = $self.parent().css("position"); + // get the half minus of width and height + var halfWidth = (width/2)*(-1); + var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder; + // initializing the css properties + var cssProp = { + position: 'absolute' + }; + + if(op.vertical) { + cssProp.height = height; + cssProp.top = '50%'; + cssProp.marginTop = halfHeight; + } + if(op.horizontal) { + cssProp.width = width; + cssProp.left = '50%'; + cssProp.marginLeft = halfWidth; + } + //check the current position + if(positionType == 'static') { + $self.parent().css("position","relative"); + } + //aplying the css + $self.css(cssProp); + + }); + +}; \ No newline at end of file diff --git a/resources/library/applications/Stopwatch.wgt/js/jquery.disable.text.select.js b/resources/library/applications/Stopwatch.wgt/js/jquery.disable.text.select.js new file mode 100644 index 0000000..2e06f67 --- /dev/null +++ b/resources/library/applications/Stopwatch.wgt/js/jquery.disable.text.select.js @@ -0,0 +1,62 @@ +/** + * .disableTextSelect - Disable Text Select Plugin + * + * Version: 1.1 + * Updated: 2007-11-28 + * + * Used to stop users from selecting text + * + * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/disabletextselect/) + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + **/ + +/** + * Requirements: + * - jQuery (John Resig, http://www.jquery.com/) + **/ +(function($) { + if ($.browser.mozilla) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : 'none' + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).css({ + 'MozUserSelect' : '' + }); + }); + }; + } else if ($.browser.msie) { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('selectstart.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('selectstart.disableTextSelect'); + }); + }; + } else { + $.fn.disableTextSelect = function() { + return this.each(function() { + $(this).bind('mousedown.disableTextSelect', function() { + return false; + }); + }); + }; + $.fn.enableTextSelect = function() { + return this.each(function() { + $(this).unbind('mousedown.disableTextSelect'); + }); + }; + } +})(jQuery); \ No newline at end of file diff --git a/resources/library/applications/Stopwatch.wgt/js/jquery.easing.1.2.js b/resources/library/applications/Stopwatch.wgt/js/jquery.easing.1.2.js new file mode 100644 index 0000000..749b2d5 --- /dev/null +++ b/resources/library/applications/Stopwatch.wgt/js/jquery.easing.1.2.js @@ -0,0 +1,140 @@ +/* + * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php + * + * Uses the built In easIng capabilities added In jQuery 1.1 + * to offer multiple easIng options + * + * Copyright (c) 2007 George Smith + * Licensed under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + */ + +// t: current time, b: begInnIng value, c: change In value, d: duration + +jQuery.extend( jQuery.easing, +{ + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); \ No newline at end of file diff --git a/resources/library/applications/Stopwatch.wgt/js/jquery.ubwidget.js b/resources/library/applications/Stopwatch.wgt/js/jquery.ubwidget.js new file mode 100644 index 0000000..3c76393 --- /dev/null +++ b/resources/library/applications/Stopwatch.wgt/js/jquery.ubwidget.js @@ -0,0 +1,254 @@ +(function($) { + jQuery.fn.ubwidget = function(options) { + var settings = jQuery.extend({}, jQuery.fn.ubwidget.defaults, options); + + DD_roundies.addRule('.ubw-standard-corners', '5px', true); + DD_roundies.addRule('.ubw-button-corners', '4px', true); + DD_roundies.addRule('.ubw-i-corners', '9px', true); + + $(window) + .bind("blur", function(event){ + $("#ubw-catcher").trigger("mousedown"); + //$("#ibutton").hide(); + }) + .trigger("focus"); + + return this.each(function() { + var ubwbody = $(this) + .addClass("ubw-body"); + + var ubwcontainer = $("
        ") + .append(ubwbody) + .addClass("ubw-container") + .addClass("ubw-standard-corners") + .css({ + width:settings.width, + height:settings.height + }); + //.mouseenter(function(){$("#ibutton").show(0)}); + + $('body').append(ubwcontainer); + }); + }; + + // Default options + + jQuery.fn.ubwidget.defaults = { + width:250, + height:300 + }; + + // Shadows + + jQuery.fn.ubwshadows = function(settings){ + + var shadow = $("
        ") + .addClass("ubw-standard-corners") + .css({ + backgroundColor:"#333377", + opacity:".08", + filter: "alpha(opacity = 18)", + position:"absolute", + top:settings.t, + left:settings.l, + width:settings.w, + height:settings.h + }); + + $(this).before(shadow); + }; + + jQuery.fn.ubwbutton = function(size, arrows) { + var arrows = typeof(arrows) != "undefined" ? arrows = arrows : arrows = {top:0, right:0, bottom:0, left:0}; + var button = null; + var scale = 1.15; + + return this.each(function() { + button = $(this) + .addClass("ubw-button-wrapper") + .disableTextSelect(); + + button.data("size", size); + + var buttonContent = $("
        ") + .addClass("ubw-button-content") + .html($(this).html()); + + $(this).empty(); + + var buttonCanvas = $("
        ") + .addClass("ubw-button-canvas") + .appendTo(button) + .html('
        '); + + if(arrows.top)buttonCanvas.find(".ubw-button-arrowTop").children("img").css({visibility:"visible"}); + if(arrows.right)buttonCanvas.find(".ubw-button-arrowRight").children("img").css({visibility:"visible"}); + if(arrows.bottom)buttonCanvas.find(".ubw-button-arrowBottom").children("img").css({visibility:"visible"}); + if(arrows.left)buttonCanvas.find(".ubw-button-arrowLeft").children("img").css({visibility:"visible"}); + + var buttonBody = buttonCanvas.find(".ubw-button-body") + .addClass("ubw-button-out") + .addClass("ubw-button-corners") + .append(buttonContent) + .css({ + width:size.w, + height:size.h + }); + buttonCanvas + .bind("mouseenter", buttonOverHandler) + .bind("mouseleave", buttonOutHandler) + .bind("mousedown", buttonDownHandler) + .bind("mouseup", buttonUpHandler); + + button.width(size.w+5).height(size.h+5); + }); + + + function buttonOverHandler(e) { + var buttonbody = button.find(".ubw-button-body"); + + button.css({zIndex:1}) + + buttonbody.removeClass("ubw-button-out") + .addClass("ubw-button-over") + .css({fontSize:"125%"}); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_over/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_over/bottom.png"); + }; + + function buttonOutHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + button.css({zIndex:0}); + + buttonbody.removeClass("ubw-button-over") + .addClass("ubw-button-out") + .css({fontSize:"100%"}); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_out/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_out/top.png"); }; + + function buttonDownHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + buttonbody.css({fontSize:"125%"}); + }; + + function buttonUpHandler(e){ + var buttonbody = button.find(".ubw-button-body"); + + buttonbody.css({fontSize:"115%"}); + }; + }; + + jQuery.fn.ubwtoggle = function(activated) { + var activated = typeof(activated) != "undefined" ? activated = 1 : activated = 0; + + return this.each(function(){ + var button = $(this); + var buttonBody = button.find(".ubw-button-body"); + var img = buttonBody.find("img"); + var imgsrc = img.attr("src"); + + buttonBody + .toggle( + function(){ + img.css({visibility:"hidden"}); + }, + function(){ + img.css({visibility:"visible"}); + } + ); + + if(!activated){ + buttonBody.trigger("click"); + }; + }); + }; + + jQuery.fn.ubwidget.inspector = function(_position, content, button){ + + var position = {x:_position.x, y:_position.y}; + + var catcher = $("
        ") + .css({ + position:"absolute", + width:"100%", + height:"100%" + }) + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + resizeubcanvas() + }); + + $("body").append(catcher); + catcher.hide(); + + var inspector = $("
        ") + .css({ + left:position.x, + top:position.y + }) + .append(content) + .appendTo($("body")) + .hide() + .addClass("ubw-button-corners"); + + var inspectorWidth = inspector.width(); + var inspectorHeight = inspector.height(); + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + + $("body").prepend(button); + //button.addClass("ubw-standard-corners") + button.click(function(){ + catcher.show(); + inspector.show(); + dropShadow(); + resizeubcanvas() + }) + .attr("id", "ibutton"); + + function dropShadow (){ + inspector.ubwshadows({w:inspectorWidth+23,h:inspectorHeight+22,l:50,t:80})} + function removeDropShadow (){ + $(".ubw-shadow").remove()} + + // !! + $(".ubw-shadow") + .mousedown(function(){ + inspector.hide(); + removeDropShadow(); + catcher.hide(); + resizeubcanvas(); + }); + + function resizeubcanvas(){ + + if(inspector.css("display")=="none"){ + window.resizeTo($(".ubw-container").width()+68, $(".ubw-container").height()+68); + } + else{ + var inspectorbottom = inspector.position().top+inspector.height()+60; + var inspectorright = inspector.position().left+inspector.width()+45; + + if($(window).width(). +*/ + +function init(){ + + var tempHours; + var tempMinutes; + var tempSeconds; + + if(window.sankore){ + tempHours = window.sankore.preference("hours","00"); + tempMinutes = window.sankore.preference("minutes","00"); + tempSeconds = window.sankore.preference("seconds","00"); + } else { + tempHours = "00"; + tempMinutes = "00"; + tempSeconds = "00"; + } + + var ubwidget = $("#ubwidget").ubwidget({ + width:252, + height:89 + }); + + var space = $("
        h
        ").ubwbutton({ + w:17, + h:68 + }); + space.find(".ubw-button-body").css({ + borderLeft:"none", + borderRight:"none" + }); + var spaceb = $("
        m
        ").ubwbutton({ + w:17, + h:68 + }); + spaceb.find(".ubw-button-body").css({ + borderLeft:"none", + borderRight:"none" + }); + spaceb.find(".ubw-button-canvas").unbind("mouseenter"); + var spacec = $("
        s
        ").ubwbutton({ + w:17, + h:68 + }); + spacec.find(".ubw-button-body").css({ + borderLeft:"none", + borderRight:"none" + }); + spacec.find(".ubw-button-canvas").unbind("mouseenter"); + + var hours = $("
        " + tempHours + "
        ").ubwbutton({ + w:52, + h:68 + }, { + bottom:1, + top:1, + right:0, + left:0 + }); + hours.find(".ubw-button-body").css({ + borderRight:"none" + }); + var minutes = $("
        " + tempMinutes + "
        ").ubwbutton({ + w:52, + h:68 + }, { + bottom:1, + top:1, + right:0, + left:0 + }); + minutes.find(".ubw-button-body").css({ + borderLeft:"none", + borderRight:"none" + }); + var seconds = $("
        " + tempSeconds + "
        ").ubwbutton({ + w:52, + h:68 + }, { + bottom:1, + top:1, + right:0, + left:0 + }); + + seconds.find(".ubw-button-body").css({ + borderLeft:"none", + borderRight:"none" + }); + var pause = $("
        ") + pause.css({ + marginLeft:8, + marginTop:3, + marginBottom:-2, + height:47 + }); + + var reset = $("
        ") + .css({ + marginLeft:8, + marginTop:1 + }) + .click(function(){ + $("#hours").find(".ubw-button-content").text("00"); + $("#minutes").find(".ubw-button-content").text("00"); + $("#seconds").find(".ubw-button-content").text("00"); + clearTimeout(currentTimer); + if(play){ + $("#pausebutton").trigger("click"); + } + }); + + if (window.widget) { + window.widget.onremove = function(){ + if(play){ + $("#pausebutton").trigger("click"); + } + }; + } + + pause.toggle( + function(){ + play = false; + clearTimeout(currentTimer); + $(this).find("img").attr("src", "images/button_play_invert.png"); + }, + function(){ + if($("#hours").find(".ubw-button-content").text() != "00" || + $("#minutes").find(".ubw-button-content").text() != "00" || + $("#seconds").find(".ubw-button-content").text() != "00") { + + play = true; + var timeInSeconds = parseInt($("#seconds").find(".ubw-button-content").text(), 10) + + parseInt($("#minutes").find(".ubw-button-content").text(), 10)*60 + + parseInt($("#hours").find(".ubw-button-content").text(), 10)*3600; + + updateChronometerReverse(timeInSeconds); + + $(this).find("img").attr("src", "images/button_pause_invert.png"); + } + } + );/*.mouseenter(function(){ + var o = $(this).find("img").attr("src"); + $(this).find("img").attr("src", o.split(".")[0]+"xov.png"); + }).mouseout(function(){ + var o = $(this).find("img").attr("src"); + $(this).find("img").attr("src", o.split("x")[0]+".png"); + });*/ + + setTimeout(function(){ + pause.trigger("click") + }, 200); + + hours + .bind("mousedown", { + button:hours + }, timeButtonDownHandler) + .find(".ubw-button-arrowTop").bind("mousedown",{ + button:hours + }, addbtn); + hours + .find(".ubw-button-arrowBottom").bind("mousedown",{ + button:hours + }, rembtn); + minutes + .bind("mousedown", { + button:minutes + }, timeButtonDownHandler) + .find(".ubw-button-arrowTop").bind("mousedown",{ + button:minutes + }, addbtn); + minutes + .find(".ubw-button-arrowBottom").bind("mousedown",{ + button:minutes + }, rembtn); + seconds + .bind("mousedown", { + button:seconds + }, timeButtonDownHandler) + .find(".ubw-button-arrowTop").bind("mousedown",{ + button:seconds + }, addbtn); + seconds + .find(".ubw-button-arrowBottom").bind("mousedown",{ + button:seconds + }, rembtn); + + $(document).mouseup(function(){ + /*if(isScrolling){ + $().unbind("mousemove"); + activeTimeScroll.find(".ubw-button-canvas") + .bind("mouseleave", {button:activeTimeScroll}, buttonOutHandler) + .bind("mouseenter", {button:activeTimeScroll}, buttonOverHandler); + };*/ + clearTimeout(incDecTime); + }); + + var btnsWrapper = $("
        ") + .css({ + float:"left", + marginLeft:5, + marginTop:6 + }) + .append(pause) + .append(reset); + + ubwidget + .append(hours) + .append(space.clone()) + .append(minutes) + .append(spaceb) + .append(seconds) + .append(spacec) + .append(btnsWrapper); + + clearTimeout(currentTimer); + + var currentTimer = null; + var incDecTime = null; + var play = true; + var isScrolling = false; + var reverse = true; + var activeTimeScroll = null; + + function addbtn(m){ + + var button = m.data.button; + var content = button.find(".ubw-button-content"); + + if(content.text().substr(0, 1) == "0"){ + content.text(content.text().substr(1, content.text().length)) + } + + content.text(formatTime(parseInt(content.text())+1)); + + incDecTime = setTimeout(function(){ + addbtn(m) + },150); + } + + function rembtn(m){ + + var button = m.data.button; + var content = button.find(".ubw-button-content"); + + if(content.text().substr(0, 1) == "0"){ + content.text(content.text().substr(1, content.text().length)) + } + + content.text(formatTime(parseInt(content.text())-1)); + + incDecTime = setTimeout(function(){ + rembtn(m); + },150); + } + + function timeButtonDownHandler(m){ + var button = m.data.button; + var content = button.find(".ubw-button-content"); + if(window.sankore){ + var temp = button.attr("id"); + switch(temp){ + case "seconds": + window.sankore.setPreference("seconds", content.text()); + break; + case "minutes": + window.sankore.setPreference("minutes", content.text()); + break; + case "hours": + window.sankore.setPreference("hours", content.text()); + break; + } + } + /*var mouseStart = { + pageX:m.pageX, + pageY:m.pageY + };*/ + var val = content.text(); + isScrolling = true; + reverse = true; + activeTimeScroll = button; + if(play){ + $("#pausebutton").trigger("click"); + } + + /*button.find(".ubw-button-canvas") + .unbind("mouseenter") + .unbind("mouseleave"); + + $().bind("mousemove", function(e){ + var value = { + x:mouseStart.pageX-e.pageX, + y:mouseStart.pageY-e.pageY + }; + hvalue = Math.floor(value.y/10); + content.text(parseInt(val)+Math.floor(hvalue)); + + content.text(content.text()%60); + if(content.text() < 0)content.text(0); + });*/ + } + + function buttonOverHandler(e) { + var button = e.data.button; + var buttonbody = button.find(".ubw-button-body"); + + button.css({ + zIndex:1 + }) + buttonbody.removeClass("ubw-button-out") + .addClass("ubw-button-over") + .css({ + fontSize:"125%" + }); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_over/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_over/bottom.png"); + } + + function buttonOutHandler(e){ + var button = e.data.button; + var buttonbody = button.find(".ubw-button-body"); + + button.css({ + zIndex:0 + }); + buttonbody.removeClass("ubw-button-over") + .addClass("ubw-button-out") + .css({ + fontSize:"100%" + }); + + button.find(".ubw-button-canvas").find(".ubw-button-arrowTop").children("img").attr("src", "images/arrows_out/top.png"); + button.find(".ubw-button-canvas").find(".ubw-button-arrowBottom").children("img").attr("src", "images/arrows_out/top.png"); + } + + function updateChronometerReverse(seconds){ + + currentTimer = setTimeout(function(){ + updateChronometerReverse(seconds-1) + }, 1000); + if (seconds < 6 && seconds > 0){ + DHTMLSound(1); + }else if(seconds === 0){ + DHTMLSound(2); + } + + if(seconds < 1){ + seconds = 0; + $("#pausebutton").trigger("click"); + } + + var hoursValue = $("#hours").find(".ubw-button-content"); + var minutesValue = $("#minutes").find(".ubw-button-content"); + var secondsValue = $("#seconds").find(".ubw-button-content"); + + var currentSecond = String(seconds%60); + var currentMinute = String(Math.floor(seconds/60)%60); + var currentHour = String(Math.floor(seconds/3600)); + + hoursValue.text(formatTime(currentHour)); + minutesValue.text(formatTime(currentMinute)); + secondsValue.text(formatTime(currentSecond)); + + if(window.sankore){ + window.sankore.setPreference("hours", hoursValue.text()); + window.sankore.setPreference("minutes", minutesValue.text()); + window.sankore.setPreference("seconds", secondsValue.text()); + } + + } + + function formatTime(time){ + + document.title = time +", " + String(time).length; + + if(time<0){ + time = 59; + } + + time = time%60; + + String(time).length < 2 ? time = "0"+time : time = time; + + return time; + } + + function DHTMLSound(type) { + var ad = document.getElementById("audio" + type); + ad.play(); + } +} \ No newline at end of file diff --git a/resources/library/applications/VideoPicker.wgt/config.xml b/resources/library/applications/VideoPicker.wgt/config.xml new file mode 100644 index 0000000..b401e7d --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Video Picker + Mnemis SA + Grab a video using it's url + + + diff --git a/resources/library/applications/VideoPicker.wgt/css/howto.css b/resources/library/applications/VideoPicker.wgt/css/howto.css new file mode 100644 index 0000000..7ce2eb7 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/css/howto.css @@ -0,0 +1,44 @@ + +#content{ + width:90%; + margin:5%; +} + +#content table{ + width:100%; +} + +#info-ico{ + float:right; +} + +.column{ + width:55%; +} + +#f{ + margin-top:-20px; +} + +.img{ + margin-left:30px; +} + +.spacer{ + margin-bottom:30px; +} + +.lspacer{ + margin-bottom:12px; +} + +h1{ + font-size:20px; + color:rgb(30,50,230); +} + +p.small{ + margin-top:-8px; + font-size:10px; + font-weight:bold; +} \ No newline at end of file diff --git a/resources/library/applications/VideoPicker.wgt/css/main.css b/resources/library/applications/VideoPicker.wgt/css/main.css new file mode 100644 index 0000000..43d6ee7 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/css/main.css @@ -0,0 +1,174 @@ + +body{ + margin: 0; + font-family:Arial, Sans-serif; + font-size:15px; + color:#444; +} + +.icon-container{ + width:40px; + height:40px; + overflow:hidden; +} + +#shadow{ + position:absolute; + z-index:0; + width:352px; + height:58px; + padding-left:8px; + margin-top:3px; + margin-left:3px; + background-color:rgb(220,220,220); +} + +#inputfield{ + position:absolute; + z-index:1; + width:360px; + height:58px; + background-color:rgb(230,230,233); + border:1px solid rgb(220, 220, 220); +} + +.button{ + float:left; + padding:4px 5px; + cursor:pointer; + background-color:rgb(45,65,250); + border:1px solid; + border-color:rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250); + text-transform:capitalize; + font-size:12px; + font-weight:bold; + color:white; +} + +#search-button{ + margin-top:17px; + margin-left:17px; +} + +#search-button.over{ + border-color:rgb(25,45,230) rgb(45,65,250) rgb(45,65,250) rgb(25,45,230); +} + +#show-inputfield-button{ + margin-left:12px; +} + +#container{ + float:left; + position:relative; + overflow:visible; + height:auto; +} + +#container.welcome{ + width:405px; + margin-top:87px; + background-color:#FFF; +} + +#container.load{ + margin-top:0px; +} + +#container.show{ + margin-top:0px; + height:auto; +} + +#container.change{ + margin-top:80px; + height:auto; +} + +#container.error{ + width:400px; + height:auto; + margin-top:87px; + background-color:#FFF; + position:relative; +} + +#arrow{ + text-align:center; + width:100%; + margin-top:-36px; + margin-bottom:-1px; + position:relative; + z-index:4; +} + +#embeded-content{ + position:relative; + z-index:3; + float:left; + height:auto; +} + +#show-container{ + overflow:auto; + height:auto; +} + +#show-area{ + display:none; + position:absolute; + top:150px; + left:400px; + z-index:999; +} + +#show-area .icon-container{ + margin:0 auto; +} + +#textbox{ + width:245px; + float:left; + padding:2px; + margin-top:17px; + margin-left:17px; + outline:none; + font-family:Arial, Sans-serif; + font-size:15px; + color:#444; +} + +#container-shadow{ + width:100%; + height:30px; +} + +#container-shadow td{ + height:100%; +} + +#shadow-left{ + width:193px; + background-image:url(../imgs/left.png); + background-repeat:no-repeat; +} + +#shadow-center{ + width:auto; + background-image:url(../imgs/center.png); + background-repeat:repeat; +} + +#shadow-right{ + width:193px; + background-image:url(../imgs/right.png); + background-repeat:no-repeat; +} + +.bordered1{ + border: 1px solid red; +} + +.bordered2{ + border:1px solid #666; +} \ No newline at end of file diff --git a/resources/library/applications/VideoPicker.wgt/icon.png b/resources/library/applications/VideoPicker.wgt/icon.png new file mode 100644 index 0000000..f7c3874 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/icon.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/arrow.png b/resources/library/applications/VideoPicker.wgt/imgs/arrow.png new file mode 100644 index 0000000..e4b261b Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/arrow.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/bts.png b/resources/library/applications/VideoPicker.wgt/imgs/bts.png new file mode 100644 index 0000000..ef3dd43 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/bts.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/btson.png b/resources/library/applications/VideoPicker.wgt/imgs/btson.png new file mode 100644 index 0000000..ed66dc1 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/btson.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/button.png b/resources/library/applications/VideoPicker.wgt/imgs/button.png new file mode 100644 index 0000000..0825d74 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/button.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/button_anim.gif b/resources/library/applications/VideoPicker.wgt/imgs/button_anim.gif new file mode 100644 index 0000000..aafbacf Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/button_anim.gif differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/button_over.png b/resources/library/applications/VideoPicker.wgt/imgs/button_over.png new file mode 100644 index 0000000..51ac7ea Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/button_over.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/button_show.png b/resources/library/applications/VideoPicker.wgt/imgs/button_show.png new file mode 100644 index 0000000..bb92f4e Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/button_show.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/capture_vimeo.png b/resources/library/applications/VideoPicker.wgt/imgs/capture_vimeo.png new file mode 100644 index 0000000..230a2e2 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/capture_vimeo.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/capture_youtube.jpg b/resources/library/applications/VideoPicker.wgt/imgs/capture_youtube.jpg new file mode 100644 index 0000000..543e4b0 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/capture_youtube.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/center.png b/resources/library/applications/VideoPicker.wgt/imgs/center.png new file mode 100644 index 0000000..8a89192 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/center.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/howto_back.png b/resources/library/applications/VideoPicker.wgt/imgs/howto_back.png new file mode 100644 index 0000000..edd33fe Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/howto_back.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/info_ico.png b/resources/library/applications/VideoPicker.wgt/imgs/info_ico.png new file mode 100644 index 0000000..2395f03 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/info_ico.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/inputfield_back.png b/resources/library/applications/VideoPicker.wgt/imgs/inputfield_back.png new file mode 100644 index 0000000..5e0fe2c Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/inputfield_back.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/keys_copy.jpg b/resources/library/applications/VideoPicker.wgt/imgs/keys_copy.jpg new file mode 100644 index 0000000..a050f50 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/keys_copy.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/keys_paste.jpg b/resources/library/applications/VideoPicker.wgt/imgs/keys_paste.jpg new file mode 100644 index 0000000..88794bc Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/keys_paste.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/left.png b/resources/library/applications/VideoPicker.wgt/imgs/left.png new file mode 100644 index 0000000..6c4845a Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/left.png differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/logos_web.jpg b/resources/library/applications/VideoPicker.wgt/imgs/logos_web.jpg new file mode 100644 index 0000000..872c2de Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/logos_web.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/imgs/right.png b/resources/library/applications/VideoPicker.wgt/imgs/right.png new file mode 100644 index 0000000..7059bc2 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/imgs/right.png differ diff --git a/resources/library/applications/VideoPicker.wgt/index.html b/resources/library/applications/VideoPicker.wgt/index.html new file mode 100644 index 0000000..752b7f5 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/index.html @@ -0,0 +1,228 @@ + + + + + + + + Video Picker + + + + + + + + + + +
        +
        + +
        + +
        Show
        +
        + +
        +
        arrow-top
        + +
        +
        + +
        + +
        +
        + + + + + + + +
         
        +
        + +
        + + + \ No newline at end of file diff --git a/resources/library/applications/VideoPicker.wgt/locales/en/capture_widget.jpg b/resources/library/applications/VideoPicker.wgt/locales/en/capture_widget.jpg new file mode 100644 index 0000000..268c4a8 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/locales/en/capture_widget.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/locales/en/error.html b/resources/library/applications/VideoPicker.wgt/locales/en/error.html new file mode 100644 index 0000000..40ee066 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/en/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        This Url cannot be used.

        + Back +
        diff --git a/resources/library/applications/VideoPicker.wgt/locales/en/howto.html b/resources/library/applications/VideoPicker.wgt/locales/en/howto.html new file mode 100644 index 0000000..2373bc8 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/en/howto.html @@ -0,0 +1,24 @@ + + + + +
        + +
        +

        Video picker

        +

        Paste the url of any webpage providing videos in the text box to show it's content.

        + + +

        Usage

        +
        + + + + + + + + + +
        +
        diff --git a/resources/library/applications/VideoPicker.wgt/locales/fr/capture_widget.jpg b/resources/library/applications/VideoPicker.wgt/locales/fr/capture_widget.jpg new file mode 100644 index 0000000..268c4a8 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/locales/fr/capture_widget.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/locales/fr/error.html b/resources/library/applications/VideoPicker.wgt/locales/fr/error.html new file mode 100644 index 0000000..5e74613 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/fr/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        Cette adresse Url ne peut pas être utilisée.

        + Retour +
        diff --git a/resources/library/applications/VideoPicker.wgt/locales/fr/howto.html b/resources/library/applications/VideoPicker.wgt/locales/fr/howto.html new file mode 100644 index 0000000..7a2402c --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/fr/howto.html @@ -0,0 +1,24 @@ + + + + +
        + +
        +

        Pipette vidéo

        +

        Utilisez l'adresse URL d'une page Web proposant des vidéos pour en afficher le contenu.

        + + +

        Utilisation

        +
        + + + + + + + + + +
        +
        diff --git a/resources/library/applications/VideoPicker.wgt/locales/ru/capture_widget.jpg b/resources/library/applications/VideoPicker.wgt/locales/ru/capture_widget.jpg new file mode 100644 index 0000000..268c4a8 Binary files /dev/null and b/resources/library/applications/VideoPicker.wgt/locales/ru/capture_widget.jpg differ diff --git a/resources/library/applications/VideoPicker.wgt/locales/ru/error.html b/resources/library/applications/VideoPicker.wgt/locales/ru/error.html new file mode 100644 index 0000000..488e961 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/ru/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        Неверный адрес.

        + Назад +
        diff --git a/resources/library/applications/VideoPicker.wgt/locales/ru/howto.html b/resources/library/applications/VideoPicker.wgt/locales/ru/howto.html new file mode 100644 index 0000000..f1972af --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/locales/ru/howto.html @@ -0,0 +1,24 @@ + + + + +
        + +
        +

        Просмотр видео

        +

        Вставьте ссылку на видео для его просмотра.

        + + +

        Как использовать

        +
        + + + + + + + + + +
        +
        diff --git a/resources/library/applications/VideoPicker.wgt/scripts/jquery-1.3.2.min.js b/resources/library/applications/VideoPicker.wgt/scripts/jquery-1.3.2.min.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/scripts/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
        "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
        ","
        "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

        ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
        ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
        ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
        ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/resources/library/applications/VideoPicker.wgt/scripts/jquery.oembed.js b/resources/library/applications/VideoPicker.wgt/scripts/jquery.oembed.js new file mode 100644 index 0000000..827bdb8 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/scripts/jquery.oembed.js @@ -0,0 +1,146 @@ +(function($) { + $.fn.oembed = function(url, options) { + + options = $.extend({}, $.fn.oembed.defaults, options); + + return this.each(function() { + + var container = $(this), + target = (url != null) ? url : container.attr("href"), + provider; + + if (target != null) { + + provider = getOEmbedProvider(target); + + if (provider != null) { + provider.maxWidth = options.maxWidth; + provider.maxHeight = options.maxHeight; + + provider.embedCode(target, function(code) { container.html(code); }); + } + } + }); + }; + + // Plugin defaults + $.fn.oembed.defaults = { + maxWidth: 500, + maxHeight: 400 + }; + + $.fn.oembed.getPhotoCode = function(url, data) { + var code = '
        '; + if (data.html) + code += "
        " + data.html + "
        "; + return code; + }; + + $.fn.oembed.getVideoCode = function(url, data) { + var code = data.html; + return code; + }; + + $.fn.oembed.getRichCode = function(url, data) { + var code = data.html; + return code; + }; + + $.fn.oembed.getGenericCode = function(url, data) { + var title = (data.title != null) ? data.title : url, + code = '' + title + ''; + if (data.html) + code += "
        " + data.html + "
        "; + return code; + }; + + $.fn.oembed.isAvailable = function(url) { + var provider = getOEmbedProvider(url); + return (provider != null); + }; + + /* Private Methods */ + function getOEmbedProvider(url) { + for (var i = 0; i < providers.length; i++) { + if (providers[i].matches(url)) + return providers[i]; + } + return null; + } + + var providers = [ + new OEmbedProvider("fivemin", "5min.com"), + new OEmbedProvider("amazon", "amazon.com"), + new OEmbedProvider("flickr", "flickr", "http://flickr.com/services/oembed", "jsoncallback"), + new OEmbedProvider("googlevideo", "video.google."), + new OEmbedProvider("hulu", "hulu.com"), + new OEmbedProvider("imdb", "imdb.com"), + new OEmbedProvider("metacafe", "metacafe.com"), + new OEmbedProvider("qik", "qik.com"), + new OEmbedProvider("revision3", "slideshare"), + new OEmbedProvider("slideshare", "5min.com"), + new OEmbedProvider("twitpic", "twitpic.com"), + new OEmbedProvider("viddler", "viddler.com"), + new OEmbedProvider("vimeo", "vimeo.com", "http://vimeo.com/api/oembed.json"), + new OEmbedProvider("wikipedia", "wikipedia.org"), + new OEmbedProvider("wordpress", "wordpress.com"), + new OEmbedProvider("youtube", "youtube.com") + ]; + + function OEmbedProvider(name, urlPattern, oEmbedUrl, callbackparameter) { + this.name = name; + this.urlPattern = urlPattern; + this.oEmbedUrl = (oEmbedUrl != null) ? oEmbedUrl : "http://oohembed.com/oohembed/"; + this.callbackparameter = (callbackparameter != null) ? callbackparameter : "callback"; + this.maxWidth = 500; + this.maxHeight = 400; + + this.matches = function(externalUrl) { + // TODO: Convert to Regex + return externalUrl.indexOf(this.urlPattern) >= 0; + }; + + this.getRequestUrl = function(externalUrl) { + + var url = this.oEmbedUrl; + + if (url.indexOf("?") <= 0) + url = url + "?"; + + url += "maxwidth=" + this.maxWidth + + "&maxHeight=" + this.maxHeight + + "&format=json" + + "&url=" + escape(externalUrl) + + "&" + this.callbackparameter + "=?"; + return url; + } + + this.embedCode = function(externalUrl, embedCallback) { + + var request = this.getRequestUrl(externalUrl); + + $.getJSON(request, function(data) { + + var code, type = data.type; + + switch (type) { + case "photo": + code = $.fn.oembed.getPhotoCode(externalUrl, data); + break; + case "video": + code = $.fn.oembed.getVideoCode(externalUrl, data); + break; + case "rich": + code = $.fn.oembed.getRichCode(externalUrl, data); + break; + default: + code = $.fn.oembed.getGenericCode(externalUrl, data); + break; + } + + embedCallback(code); + }); + } + } +})(jQuery); + diff --git a/resources/library/applications/VideoPicker.wgt/scripts/languages.js b/resources/library/applications/VideoPicker.wgt/scripts/languages.js new file mode 100644 index 0000000..2f687d3 --- /dev/null +++ b/resources/library/applications/VideoPicker.wgt/scripts/languages.js @@ -0,0 +1,16 @@ +var sankoreLang = { + "en":{ + "show": "Show" + }, + "ru":{ + "show": "Смотреть" + }, + "fr":{ + "show": "Voir" + }, + "sk":{ + "show": "Zobraziť" + } + +}; + diff --git a/resources/library/applications/WebBrowser.wgt/config.xml b/resources/library/applications/WebBrowser.wgt/config.xml new file mode 100644 index 0000000..f599bc5 --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/config.xml @@ -0,0 +1,16 @@ + + + + Web Browser + Mnemis SA + Simple web browser + + + diff --git a/resources/library/applications/WebBrowser.wgt/css/howto.css b/resources/library/applications/WebBrowser.wgt/css/howto.css new file mode 100644 index 0000000..7ce2eb7 --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/css/howto.css @@ -0,0 +1,44 @@ + +#content{ + width:90%; + margin:5%; +} + +#content table{ + width:100%; +} + +#info-ico{ + float:right; +} + +.column{ + width:55%; +} + +#f{ + margin-top:-20px; +} + +.img{ + margin-left:30px; +} + +.spacer{ + margin-bottom:30px; +} + +.lspacer{ + margin-bottom:12px; +} + +h1{ + font-size:20px; + color:rgb(30,50,230); +} + +p.small{ + margin-top:-8px; + font-size:10px; + font-weight:bold; +} \ No newline at end of file diff --git a/resources/library/applications/WebBrowser.wgt/css/main.css b/resources/library/applications/WebBrowser.wgt/css/main.css new file mode 100644 index 0000000..818550a --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/css/main.css @@ -0,0 +1,205 @@ + +body{ + padding: 5px; + width: 95%; + margin-top:10px; + margin-left:10px; + font-family:Arial, Sans-serif; + font-size:15px; + color:#444; + border: 3px solid #ccc; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +.icon-container{ + width:40px; + height:40px; + overflow:hidden; +} + +#shadow{ + position:absolute; + z-index:0; + width:512px; + height:58px; + padding-left:8px; + margin-top:3px; + margin-left:3px; + background-color:rgb(210,210,210); +} + +#inputfield{ + position:absolute; + z-index:1; + width:520px; + height:58px; + background-color:rgb(230,230,233); + border:1px solid rgb(220, 220, 220); +} + +.button{ + float:left; + padding:4px 5px; + cursor:pointer; + background-color:rgb(45,65,250); + border:1px solid; + border-color:rgb(45,65,250) rgb(25,45,230) rgb(25,45,230) rgb(45,65,250); + text-transform:capitalize; + font-size:12px; + font-weight:bold; + color:white; +} + +#search-button{ + margin-top:17px; + margin-left:17px; +} + +#back-button{ + margin-top:17px; + margin-left:17px; +} + +#forward-button{ + margin-top:17px; + margin-left:17px; +} + +#search-button.over{ + border-color:rgb(25,45,230) rgb(45,65,250) rgb(45,65,250) rgb(25,45,230); +} + +#show-inputfield-button{ + margin-left:12px; +} + +#web-content{ + display:none; + margin-top:65px; +} + +#container{ + float:left; + position:relative; + overflow:visible; + height:auto; +} + +#container.welcome{ + width:405px; + margin-top:87px; + background-color:#FFF; +} + +#container.load{ + margin-top:0px; +} + +#container.show{ + margin-top:0px; + height:auto; +} + +#container.change{ + margin-top:80px; + height:auto; +} + +#container.error{ + width:400px; + height:auto; + margin-top:87px; + background-color:#FFF; + position:relative; +} + +#arrow{ + text-align:center; + width:100%; + margin-top:-36px; + margin-bottom:-1px; + position:relative; + z-index:4; +} + +#embeded-content{ + border:1px solid rgb(230,230,230); + position:relative; + z-index:3; + float:left; + height:auto; +} + +#show-container{ + overflow:auto; + height:auto; +} + +#show-area{ + width:80px; + height:100%; + display:none; +} + +#show-area .icon-container{ + margin:0 auto; +} + +#textbox{ + width:245px; + float:left; + padding:2px; + margin-top:17px; + margin-left:17px; + outline:none; + border:1px solid #666; + font-family:Arial, Sans-serif; + font-size:15px; + color:#444; +} + +#container-shadow{ + width:100%; + height:30px; +} + +#container-shadow td{ + height:100%; +} + +#shadow-left{ + width:193px; + background-image:url(../imgs/left.png); + background-repeat:no-repeat; +} + +#shadow-center{ + width:auto; + background-image:url(../imgs/center.png); + background-repeat:repeat; +} + +#shadow-right{ + width:193px; + background-image:url(../imgs/right.png); + background-repeat:no-repeat; +} + +.popupWordInfo{ + position: absolute; + display: none; + width: 100px; + height: 17px; + top: 0; + left: 0; + text-align: center; + border: 1px solid #B9B9B9; + background-color: #eaebeb; + color: black; + font-family: Verdana,Arial,Helvetica,sans-serif; + font-size: small; + z-index: 100; +} \ No newline at end of file diff --git a/resources/library/applications/WebBrowser.wgt/icon.png b/resources/library/applications/WebBrowser.wgt/icon.png new file mode 100644 index 0000000..38ce943 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/icon.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/arrow.png b/resources/library/applications/WebBrowser.wgt/imgs/arrow.png new file mode 100644 index 0000000..e4b261b Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/arrow.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/button.png b/resources/library/applications/WebBrowser.wgt/imgs/button.png new file mode 100644 index 0000000..0825d74 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/button.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/button_anim.gif b/resources/library/applications/WebBrowser.wgt/imgs/button_anim.gif new file mode 100644 index 0000000..aafbacf Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/button_anim.gif differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/button_over.png b/resources/library/applications/WebBrowser.wgt/imgs/button_over.png new file mode 100644 index 0000000..51ac7ea Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/button_over.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/button_show.png b/resources/library/applications/WebBrowser.wgt/imgs/button_show.png new file mode 100644 index 0000000..bb92f4e Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/button_show.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/capture_youtube.jpg b/resources/library/applications/WebBrowser.wgt/imgs/capture_youtube.jpg new file mode 100644 index 0000000..543e4b0 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/capture_youtube.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/center.png b/resources/library/applications/WebBrowser.wgt/imgs/center.png new file mode 100644 index 0000000..8a89192 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/center.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/howto_back.png b/resources/library/applications/WebBrowser.wgt/imgs/howto_back.png new file mode 100644 index 0000000..edd33fe Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/howto_back.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/info_ico.png b/resources/library/applications/WebBrowser.wgt/imgs/info_ico.png new file mode 100644 index 0000000..2395f03 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/info_ico.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/inputfield_back.png b/resources/library/applications/WebBrowser.wgt/imgs/inputfield_back.png new file mode 100644 index 0000000..5e0fe2c Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/inputfield_back.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/keys_copy.jpg b/resources/library/applications/WebBrowser.wgt/imgs/keys_copy.jpg new file mode 100644 index 0000000..a050f50 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/keys_copy.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/keys_paste.jpg b/resources/library/applications/WebBrowser.wgt/imgs/keys_paste.jpg new file mode 100644 index 0000000..88794bc Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/keys_paste.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/left.png b/resources/library/applications/WebBrowser.wgt/imgs/left.png new file mode 100644 index 0000000..6c4845a Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/left.png differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/logos_web.jpg b/resources/library/applications/WebBrowser.wgt/imgs/logos_web.jpg new file mode 100644 index 0000000..1ef68d3 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/logos_web.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/imgs/right.png b/resources/library/applications/WebBrowser.wgt/imgs/right.png new file mode 100644 index 0000000..7059bc2 Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/imgs/right.png differ diff --git a/resources/library/applications/WebBrowser.wgt/index.html b/resources/library/applications/WebBrowser.wgt/index.html new file mode 100644 index 0000000..a1ca93a --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/index.html @@ -0,0 +1,302 @@ + + + + + + + Web Browser + + + + + + + +
        +
        + +
        +
        Previous
        +
        Next
        + +
        Show
        +
        + +
        +
        arrow-top
        + +
        +
        + +
        + + + + + + + +
         
        +
        + +
        + + + diff --git a/resources/library/applications/WebBrowser.wgt/locales/en/capture_widget.jpg b/resources/library/applications/WebBrowser.wgt/locales/en/capture_widget.jpg new file mode 100644 index 0000000..284ebec Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/locales/en/capture_widget.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/locales/en/error.html b/resources/library/applications/WebBrowser.wgt/locales/en/error.html new file mode 100644 index 0000000..5b3953a --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/en/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        This Url cannot be used.

        + Back +
        diff --git a/resources/library/applications/WebBrowser.wgt/locales/en/howto.html b/resources/library/applications/WebBrowser.wgt/locales/en/howto.html new file mode 100644 index 0000000..e2b3ace --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/en/howto.html @@ -0,0 +1,11 @@ + + + + +
        + +
        +

        Web Browser

        +

        Please use the adress bar to add a website to your presentation.

        +
        +
        diff --git a/resources/library/applications/WebBrowser.wgt/locales/fr/capture_widget.jpg b/resources/library/applications/WebBrowser.wgt/locales/fr/capture_widget.jpg new file mode 100644 index 0000000..284ebec Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/locales/fr/capture_widget.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/locales/fr/error.html b/resources/library/applications/WebBrowser.wgt/locales/fr/error.html new file mode 100644 index 0000000..5e74613 --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/fr/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        Cette adresse Url ne peut pas être utilisée.

        + Retour +
        diff --git a/resources/library/applications/WebBrowser.wgt/locales/fr/howto.html b/resources/library/applications/WebBrowser.wgt/locales/fr/howto.html new file mode 100644 index 0000000..2040d5d --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/fr/howto.html @@ -0,0 +1,11 @@ + + + + +
        + +
        +

        Navigateur Web

        +

        Tapez une adresse URL dans le champ de texte pour l'afficher.

        +
        +
        diff --git a/resources/library/applications/WebBrowser.wgt/locales/ru/capture_widget.jpg b/resources/library/applications/WebBrowser.wgt/locales/ru/capture_widget.jpg new file mode 100644 index 0000000..284ebec Binary files /dev/null and b/resources/library/applications/WebBrowser.wgt/locales/ru/capture_widget.jpg differ diff --git a/resources/library/applications/WebBrowser.wgt/locales/ru/error.html b/resources/library/applications/WebBrowser.wgt/locales/ru/error.html new file mode 100644 index 0000000..3b3fb11 --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/ru/error.html @@ -0,0 +1,8 @@ + + + + +
        +

        Неверный адрес.

        + Назад +
        diff --git a/resources/library/applications/WebBrowser.wgt/locales/ru/howto.html b/resources/library/applications/WebBrowser.wgt/locales/ru/howto.html new file mode 100644 index 0000000..a93732d --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/locales/ru/howto.html @@ -0,0 +1,11 @@ + + + + +
        + +
        +

        Браузер

        +

        Используйте адресную строку для добавления сайта в Вашу презентацию.

        +
        +
        diff --git a/resources/library/applications/WebBrowser.wgt/scripts/jquery-1.3.2.min.js b/resources/library/applications/WebBrowser.wgt/scripts/jquery-1.3.2.min.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/scripts/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
        "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
        ","
        "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

        ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
        ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
        ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
        ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/resources/library/applications/WebBrowser.wgt/scripts/languages.js b/resources/library/applications/WebBrowser.wgt/scripts/languages.js new file mode 100644 index 0000000..396dca8 --- /dev/null +++ b/resources/library/applications/WebBrowser.wgt/scripts/languages.js @@ -0,0 +1,39 @@ +var sankoreLang = { + "en":{ + "previous":"Previous", + "next":"Next", + "show":"Show", + "prev_page":"Previous page", + "next_page":"Next page", + "open":"Open the site", + "alert":"Cannot open a page! Maybe it's because of a security policy or a wrong url. Also check your internet connection." + }, + "ru":{ + "previous":"Пред.", + "next":"След.", + "show":"Показать", + "prev_page":"Пред. страница", + "next_page":"След. страница", + "open":"Перейти", + "alert":"Невозможно отобразить страницу! Возможно это из-за политики безопасности сайта или неверного адреса.Также стоит проверить подключение к интернету." + }, + "fr":{ + "previous":"Précédente", + "next":"Suivante", + "show":"Voir", + "prev_page":"Page précédente", + "next_page":"Page suivante", + "open":"Ouvrez le site", + "alert":"Impossible d'ouvrir une page! Peut-être c'est à cause d'une politique de sécurité ou une URL erronée. Vérifiez aussi votre connexion internet." + }, + "sk":{ + "previous":"Predošlá", + "next":"Ďalšia", + "show":"Zobraziť", + "prev_page":"Predošlá stránka", + "next_page":"Ďalšia stránka", + "open":"Otvoriť stránku", + "alert":"Stránka sa nedá otvoriť! Možno je to kvôli spôsobu zabezpečenia alebo nesprávnej internetovej adrese. Skontrolujte aj svoje internetové pripojenie." + } + +}; diff --git a/resources/library/applications/Wikipedia.wgt/config.xml b/resources/library/applications/Wikipedia.wgt/config.xml new file mode 100644 index 0000000..10d2d34 --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/config.xml @@ -0,0 +1,18 @@ + + + + Wikipedia + Mnemis SA + Wikipedia, the free encyclopedia + + + diff --git a/resources/library/applications/Wikipedia.wgt/css/master.css b/resources/library/applications/Wikipedia.wgt/css/master.css new file mode 100644 index 0000000..70c88e4 --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/css/master.css @@ -0,0 +1,149 @@ +body{ + font-family:helvetica, arial, sans-serif; + font-size:12px; +} + +.on-the-right{ + width:0px; + position:absolute; + top:0; + overflow:visible; + margin-left:100%; +} + +.toolbar{ + background-image:url(../images/toolbarBody.png); + padding-left:4px; + border:1px solid #cccccc; + border-bottom:1px solid #ffffff; + position:relative; +} + +.toolbar>div>.button{ + width:29px; + height:24px; + float:left; + margin-right:4px; + margin-top:0px; + cursor:pointer; +} + +#toolbar-down{ + font-size:18px; + font-weight:bold; + color:#333333; + text-align:center; + font-family:helvetica, arial, sans-serif; + text-shadow: #ffffff 0px 1px 1px; +} + +#url{ + height:20px; + float:left; + border:1px solid #b9b9b9; + padding-right:4%; + width:80%; +} + +#left-field{ + float:left; +} + +#right-field{ + float:right; +} + +#center-field{ + display:block-inline; + position:relative; +} + +#center-field.min{ + margin-right:6px; +} + +#center-field.full{ + margin-right:78px; + margin-left:65px; +} + +#web-canevas { + width:100%; + position:relative; +} + +#web-browser { + border:1px solid #cccccc; + position:relative; + width:100%; +} + +.toolbar-body { + display: table; + width: 100%; + height: 37px; + + /* IE hacks */ + position: relative !ie7; +} +.toolbar-body>div { + display: table-cell; + vertical-align: middle; + + /* IE hacks */ + position: absolute !ie7; + top: 50% !ie7; +} + +#toolbar-button-back{ background-image:url(../images/toolbarButtonBack.png) } +#toolbar-button-forward{ background-image:url(../images/toolbarButtonForward.png) } +#toolbar-button-home{ background-image:url(../images/toolbarButtonHome.png) } +#toolbar-button-languages{ background-image:url(../images/toolbarButtonLanguages.png) } + +#toolbar-button-search{ + float: left; + width:22px; + height:22px; + position:relative; + margin-left:-32px; + background-image:url(../images/toolbarButtonSearch.png); + background-repeat:no-repeat; + background-position:center center; + border: 1px solid #B9B9B9; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +#toolbar-button-search:hover{ + border: 1px solid #666666; +} + +#toolbar-button-languages{ + width:66px; +} + +#toolbar-button-back{ + margin-right:0px; +} + +.popupWordInfo{ + position: absolute; + display: none; + width: 100px; + height: 17px; + top: 0; + left: 0; + text-align: center; + border: 1px solid #B9B9B9; + background-color: #eaebeb; + color: black; + font-family: Verdana,Arial,Helvetica,sans-serif; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; + z-index: 100; + font-family: Arial,Helvetica,sans-serif; +} \ No newline at end of file diff --git a/resources/library/applications/Wikipedia.wgt/css/superfish.css b/resources/library/applications/Wikipedia.wgt/css/superfish.css new file mode 100644 index 0000000..b6189ab --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/css/superfish.css @@ -0,0 +1 @@ + /*** ESSENTIAL STYLES ***/ .sf-menu, .sf-menu * { margin: 0; padding: 0; list-style: none; } .sf-menu { line-height: 1.0; position:relative; display:table; } .sf-menu ul { position: absolute; top: -999em; width: 80px; /* left offset of submenus need to match (see below) */ background-color:#ffffff; } .sf-menu ul li { width: 100%; } .sf-menu li:hover { visibility: inherit; /* fixes IE7 'sticky bug' */ } .sf-menu li { display:table-cell; vertical-align:middle; position: relative; padding-left:3px; width:61px; height:22px; } .sf-menu a { display: block; position: relative; } .sf-menu li:hover ul, .sf-menu li.sfHover ul { left: -20px; top: 22px; /* match top ul list item height */ z-index: 99; } ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul { top: -999em; } ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { left: 10em; /* match ul width */ top: 0; } ul.sf-menu li li:hover li ul, ul.sf-menu li li.sfHover li ul { top: -999em; } ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { left: 200px; /* match ul width */ top: 0; } /*** DEMO SKIN ***/ .sf-menu { float: left; font-family:arial, sans-serif; font-size:12px; margin-top:1px; } .sf-menu li ul{ border:1px solid #ccc; padding-top:6px; padding-right:3px; } .sf-menu a { padding: .1em; padding-left:.5em; text-decoration:none; } .sf-menu li ul li a{ padding: 1px 0px 4px 6px; } .sf-menu li ul li a.sf-sl-last{ } .sf-menu li ul li a.sf-sl-first{ } .sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ color: #000; } .sf-menu li { } .sf-menu li .selected{ font-weight: bold; color:#333; text-shadow:#fff 0px 1px 1px; } .sf-menu li li { background: #FFF; float:left; } .sf-menu li li li { background: #FFF; } .sf-menu li li:hover { outline: 0; background: #e7edf7; } /*** arrows **/ .sf-menu a.sf-with-ul { padding-right: 2.25em; min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ } .sf-sub-indicator { position: absolute; display: block; right: .75em; top: 1.05em; /* IE6 only */ width: 10px; height: 10px; text-indent: -999em; overflow: hidden; } a > .sf-sub-indicator { /* give all except IE6 the correct values */ top: .2em; background-position: 0 -100px; /* use translucent arrow for modern browsers*/ } /* apply hovers to modern browsers */ a:focus > .sf-sub-indicator, a:hover > .sf-sub-indicator, a:active > .sf-sub-indicator, li:hover > a > .sf-sub-indicator, li.sfHover > a > .sf-sub-indicator { background-position: -10px -100px; /* arrow hovers for modern browsers*/ } /* point right for anchors in subs */ .sf-menu ul .sf-sub-indicator { background-position: -10px 0; } .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } /* apply hovers to modern browsers */ .sf-menu ul a:focus > .sf-sub-indicator, .sf-menu ul a:hover > .sf-sub-indicator, .sf-menu ul a:active > .sf-sub-indicator, .sf-menu ul li:hover > a > .sf-sub-indicator, .sf-menu ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0; /* arrow hovers for modern browsers*/ } /*** shadows for all but IE6 ***/ .sf-shadow ul { background: url('../images/shadow.png') no-repeat bottom right; padding: 0 8px 9px 0; -moz-border-radius-bottomleft: 17px; -moz-border-radius-topright: 17px; -webkit-border-top-right-radius: 17px; -webkit-border-bottom-left-radius: 17px; } .sf-shadow ul.sf-shadow-off { background: transparent; } \ No newline at end of file diff --git a/resources/library/applications/Wikipedia.wgt/icon.png b/resources/library/applications/Wikipedia.wgt/icon.png new file mode 100644 index 0000000..ebe3ba6 Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/icon.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarBody.png b/resources/library/applications/Wikipedia.wgt/images/toolbarBody.png new file mode 100644 index 0000000..38b8e93 Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarBody.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarButtonBack.png b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonBack.png new file mode 100644 index 0000000..f4fe1eb Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonBack.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarButtonForward.png b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonForward.png new file mode 100644 index 0000000..6b2e9ce Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonForward.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarButtonLanguages.png b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonLanguages.png new file mode 100644 index 0000000..503bc5a Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonLanguages.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarButtonSearch.png b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonSearch.png new file mode 100644 index 0000000..1066348 Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarButtonSearch.png differ diff --git a/resources/library/applications/Wikipedia.wgt/images/toolbarLoading.jpg b/resources/library/applications/Wikipedia.wgt/images/toolbarLoading.jpg new file mode 100644 index 0000000..e350b58 Binary files /dev/null and b/resources/library/applications/Wikipedia.wgt/images/toolbarLoading.jpg differ diff --git a/resources/library/applications/Wikipedia.wgt/index.html b/resources/library/applications/Wikipedia.wgt/index.html new file mode 100644 index 0000000..761a3cb --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/index.html @@ -0,0 +1,372 @@ + + + + + Wikipedia + + + + + + + + + + + + + +
        + +
        + +
        + Wikipedia +
        + +
        + +
        + +
        +
        +
        +
        +
        +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + +
        + + diff --git a/resources/library/applications/Wikipedia.wgt/script/jquery.min.js b/resources/library/applications/Wikipedia.wgt/script/jquery.min.js new file mode 100644 index 0000000..8f3ca2e --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/script/jquery.min.js @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
        a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
        ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
        t
        ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="

        ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="
        ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, +""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
        ","
        "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
        ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/resources/library/applications/Wikipedia.wgt/script/languages.js b/resources/library/applications/Wikipedia.wgt/script/languages.js new file mode 100644 index 0000000..ff23083 --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/script/languages.js @@ -0,0 +1,27 @@ +var sankoreLang = { + "en":{ + "wikipedia": "Wikipedia", + "prev_word":"Previous word", + "next_word":"Next word", + "search":"Search" + }, + "ru":{ + "wikipedia": "Википедия", + "prev_word":"Пред. слово", + "next_word":"След. слово", + "search":"Поиск" + }, + "fr":{ + "wikipedia": "Wikipedia", + "prev_word":"Mot précédent", + "next_word":"Mot suivant", + "search":"Rechercher" + }, + "sk":{ + "wikipedia": "Wikipédia", + "prev_word":"Predošlé slovo", + "next_word":"Ďalšie slovo", + "search":"Vyhľadať" + } + +}; diff --git a/resources/library/applications/Wikipedia.wgt/script/superfish.js b/resources/library/applications/Wikipedia.wgt/script/superfish.js new file mode 100644 index 0000000..f27a41a --- /dev/null +++ b/resources/library/applications/Wikipedia.wgt/script/superfish.js @@ -0,0 +1,153 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +; +(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + menuActive = false, + $arrow = $([' »'].join('')), + click = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + if (o.firstOnClick && !menuActive && $$.parent()[0] == menu) { + menuActive = true; + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + return false; // prevent redirect to anchor target href + } + }, + over = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + if (!o.firstOnClick || menuActive || $$.parent()[0] != menu) { + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + } + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){ + over.call(o.$path); + } + else { + menuActive = false; + } + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ + $a.addClass(c.anchorClass).append($arrow.clone()); + }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out) + .click(click) + .each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){ + over.call($li); + }).blur(function(){ + out.call($li); + }); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : { + opacity:'show' + }, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){}, + firstOnClick : false // true - open first level on click (like classic application menu) + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ + sf.IE7fix.call($ul); + o.onShow.call($ul); + }); + return this; + } + }); + +})(jQuery); diff --git a/resources/library/applications/Wiktionnairy.wgt/config.xml b/resources/library/applications/Wiktionnairy.wgt/config.xml new file mode 100644 index 0000000..10d2d34 --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/config.xml @@ -0,0 +1,18 @@ + + + + Wikipedia + Mnemis SA + Wikipedia, the free encyclopedia + + + diff --git a/resources/library/applications/Wiktionnairy.wgt/css/master.css b/resources/library/applications/Wiktionnairy.wgt/css/master.css new file mode 100644 index 0000000..10887da --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/css/master.css @@ -0,0 +1,149 @@ +body{ + font-family:helvetica, arial, sans-serif; + font-size:12px; +} + +.on-the-right{ + width:0px; + position:absolute; + top:0; + overflow:visible; + margin-left:100%; +} + +.toolbar{ + background-image:url(../images/toolbarBody.png); + padding-left:4px; + border:1px solid #cccccc; + border-bottom:1px solid #ffffff; + position:relative; +} + +.toolbar>div>.button{ + width:29px; + height:24px; + float:left; + margin-right:4px; + margin-top:0px; + cursor:pointer; +} + +#toolbar-down{ + font-size:18px; + font-weight:bold; + color:#333333; + text-align:center; + font-family:helvetica, arial, sans-serif; + text-shadow: #ffffff 0px 1px 1px; +} + +#url{ + height:20px; + float:left; + border:1px solid #b9b9b9; + padding-right:4%; + width:80%; +} + +#left-field{ + float:left; +} + +#right-field{ + float:right; +} + +#center-field{ + display:block-inline; + position:relative; +} + +#center-field.min{ + margin-right:6px; +} + +#center-field.full{ + margin-right:78px; + margin-left:65px; +} + +#web-canevas { + width:100%; + position:relative; +} + +#web-browser { + border:1px solid #cccccc; + position:relative; + width:100%; +} + +.toolbar-body { + display: table; + width: 100%; + height: 37px; + + /* IE hacks */ + position: relative !ie7; +} +.toolbar-body>div { + display: table-cell; + vertical-align: middle; + + /* IE hacks */ + position: absolute !ie7; + top: 50% !ie7; +} + +#toolbar-button-back{ background-image:url(../images/toolbarButtonBack.png) } +#toolbar-button-forward{ background-image:url(../images/toolbarButtonForward.png) } +#toolbar-button-home{ background-image:url(../images/toolbarButtonHome.png) } +#toolbar-button-languages{ background-image:url(../images/toolbarButtonLanguages.png) } + +#toolbar-button-search{ + float: left; + width:22px; + height:22px; + position:relative; + margin-left:-32px; + background-image:url(../images/toolbarButtonSearch.png); + background-repeat:no-repeat; + background-position:center center; + border: 1px solid #B9B9B9; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; +} + +#toolbar-button-search:hover{ + border: 1px solid #666666; +} + +#toolbar-button-languages{ + width:66px; +} + +#toolbar-button-back{ + margin-right:0px; +} + +.popupWordInfo{ + position: absolute; + display: none; + width: 100px; + height: 17px; + top: 0; + left: 0; + text-align: center; + border: 1px solid #B9B9B9; + background-color: #eaebeb; + color: black; + font-family: Verdana,Arial,Helvetica,sans-serif; + -webkit-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: #dadada -1px 0 4px; + box-shadow: #dadada -1px 0 4px; + z-index: 100; + font-family: Arial,Helvetica,sans-serif; +} \ No newline at end of file diff --git a/resources/library/applications/Wiktionnairy.wgt/css/superfish.css b/resources/library/applications/Wiktionnairy.wgt/css/superfish.css new file mode 100644 index 0000000..b6189ab --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/css/superfish.css @@ -0,0 +1 @@ + /*** ESSENTIAL STYLES ***/ .sf-menu, .sf-menu * { margin: 0; padding: 0; list-style: none; } .sf-menu { line-height: 1.0; position:relative; display:table; } .sf-menu ul { position: absolute; top: -999em; width: 80px; /* left offset of submenus need to match (see below) */ background-color:#ffffff; } .sf-menu ul li { width: 100%; } .sf-menu li:hover { visibility: inherit; /* fixes IE7 'sticky bug' */ } .sf-menu li { display:table-cell; vertical-align:middle; position: relative; padding-left:3px; width:61px; height:22px; } .sf-menu a { display: block; position: relative; } .sf-menu li:hover ul, .sf-menu li.sfHover ul { left: -20px; top: 22px; /* match top ul list item height */ z-index: 99; } ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul { top: -999em; } ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { left: 10em; /* match ul width */ top: 0; } ul.sf-menu li li:hover li ul, ul.sf-menu li li.sfHover li ul { top: -999em; } ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { left: 200px; /* match ul width */ top: 0; } /*** DEMO SKIN ***/ .sf-menu { float: left; font-family:arial, sans-serif; font-size:12px; margin-top:1px; } .sf-menu li ul{ border:1px solid #ccc; padding-top:6px; padding-right:3px; } .sf-menu a { padding: .1em; padding-left:.5em; text-decoration:none; } .sf-menu li ul li a{ padding: 1px 0px 4px 6px; } .sf-menu li ul li a.sf-sl-last{ } .sf-menu li ul li a.sf-sl-first{ } .sf-menu a, .sf-menu a:visited { /* visited pseudo selector so IE6 applies text colour*/ color: #000; } .sf-menu li { } .sf-menu li .selected{ font-weight: bold; color:#333; text-shadow:#fff 0px 1px 1px; } .sf-menu li li { background: #FFF; float:left; } .sf-menu li li li { background: #FFF; } .sf-menu li li:hover { outline: 0; background: #e7edf7; } /*** arrows **/ .sf-menu a.sf-with-ul { padding-right: 2.25em; min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ } .sf-sub-indicator { position: absolute; display: block; right: .75em; top: 1.05em; /* IE6 only */ width: 10px; height: 10px; text-indent: -999em; overflow: hidden; } a > .sf-sub-indicator { /* give all except IE6 the correct values */ top: .2em; background-position: 0 -100px; /* use translucent arrow for modern browsers*/ } /* apply hovers to modern browsers */ a:focus > .sf-sub-indicator, a:hover > .sf-sub-indicator, a:active > .sf-sub-indicator, li:hover > a > .sf-sub-indicator, li.sfHover > a > .sf-sub-indicator { background-position: -10px -100px; /* arrow hovers for modern browsers*/ } /* point right for anchors in subs */ .sf-menu ul .sf-sub-indicator { background-position: -10px 0; } .sf-menu ul a > .sf-sub-indicator { background-position: 0 0; } /* apply hovers to modern browsers */ .sf-menu ul a:focus > .sf-sub-indicator, .sf-menu ul a:hover > .sf-sub-indicator, .sf-menu ul a:active > .sf-sub-indicator, .sf-menu ul li:hover > a > .sf-sub-indicator, .sf-menu ul li.sfHover > a > .sf-sub-indicator { background-position: -10px 0; /* arrow hovers for modern browsers*/ } /*** shadows for all but IE6 ***/ .sf-shadow ul { background: url('../images/shadow.png') no-repeat bottom right; padding: 0 8px 9px 0; -moz-border-radius-bottomleft: 17px; -moz-border-radius-topright: 17px; -webkit-border-top-right-radius: 17px; -webkit-border-bottom-left-radius: 17px; } .sf-shadow ul.sf-shadow-off { background: transparent; } \ No newline at end of file diff --git a/resources/library/applications/Wiktionnairy.wgt/icon.png b/resources/library/applications/Wiktionnairy.wgt/icon.png new file mode 100644 index 0000000..b82e57f Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/icon.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarBody.png b/resources/library/applications/Wiktionnairy.wgt/images/toolbarBody.png new file mode 100644 index 0000000..38b8e93 Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarBody.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonBack.png b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonBack.png new file mode 100644 index 0000000..f4fe1eb Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonBack.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonForward.png b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonForward.png new file mode 100644 index 0000000..6b2e9ce Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonForward.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonLanguages.png b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonLanguages.png new file mode 100644 index 0000000..503bc5a Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonLanguages.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonSearch.png b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonSearch.png new file mode 100644 index 0000000..1066348 Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarButtonSearch.png differ diff --git a/resources/library/applications/Wiktionnairy.wgt/images/toolbarLoading.jpg b/resources/library/applications/Wiktionnairy.wgt/images/toolbarLoading.jpg new file mode 100644 index 0000000..e350b58 Binary files /dev/null and b/resources/library/applications/Wiktionnairy.wgt/images/toolbarLoading.jpg differ diff --git a/resources/library/applications/Wiktionnairy.wgt/index.html b/resources/library/applications/Wiktionnairy.wgt/index.html new file mode 100644 index 0000000..5dc16ac --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/index.html @@ -0,0 +1,380 @@ + + + + + Wikipedia + + + + + + + + + + + + + +
        + +
        + +
        + Wiktionary +
        + +
        + +
        + +
        +
        +
        +
        +
        +
        + +
        + +
        +
        + +
        + +
        + +
        +
        + +
        + + \ No newline at end of file diff --git a/resources/library/applications/Wiktionnairy.wgt/script/jquery.min.js b/resources/library/applications/Wiktionnairy.wgt/script/jquery.min.js new file mode 100644 index 0000000..8f3ca2e --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/script/jquery.min.js @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
        a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
        ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
        t
        ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="

        ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="
        ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, +""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
        ","
        "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
        ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/resources/library/applications/Wiktionnairy.wgt/script/languages.js b/resources/library/applications/Wiktionnairy.wgt/script/languages.js new file mode 100644 index 0000000..41639fc --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/script/languages.js @@ -0,0 +1,28 @@ +var sankoreLang = { + "en":{ + "wikipedia": "Wiktionary", + "prev_word":"Previous word", + "next_word":"Next word", + "search":"Search" + }, + "ru":{ + "wikipedia": "Викисловарь", + "prev_word":"Пред. слово", + "next_word":"След. слово", + "search":"Поиск" + }, + "fr":{ + "wikipedia": "Wiktionnaire", + "prev_word":"Mot précédent", + "next_word":"Mot suivant", + "search":"Rechercher" + }, + "sk":{ + "wikipedia": "Wikislovník", + "prev_word":"Predošlé slovo", + "next_word":"Ďalšie slovo", + "search":"Vyhľadať" + } + +}; + diff --git a/resources/library/applications/Wiktionnairy.wgt/script/superfish.js b/resources/library/applications/Wiktionnairy.wgt/script/superfish.js new file mode 100644 index 0000000..f27a41a --- /dev/null +++ b/resources/library/applications/Wiktionnairy.wgt/script/superfish.js @@ -0,0 +1,153 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +; +(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + menuActive = false, + $arrow = $([' »'].join('')), + click = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + if (o.firstOnClick && !menuActive && $$.parent()[0] == menu) { + menuActive = true; + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + return false; // prevent redirect to anchor target href + } + }, + over = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + if (!o.firstOnClick || menuActive || $$.parent()[0] != menu) { + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + } + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){ + over.call(o.$path); + } + else { + menuActive = false; + } + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ + $a.addClass(c.anchorClass).append($arrow.clone()); + }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out) + .click(click) + .each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){ + over.call($li); + }).blur(function(){ + out.call($li); + }); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : { + opacity:'show' + }, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){}, + firstOnClick : false // true - open first level on click (like classic application menu) + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ + sf.IE7fix.call($ul); + o.onShow.call($ul); + }); + return this; + } + }); + +})(jQuery); diff --git a/resources/library/applications/iCell.wgt/config.xml b/resources/library/applications/iCell.wgt/config.xml new file mode 100644 index 0000000..4c07c09 --- /dev/null +++ b/resources/library/applications/iCell.wgt/config.xml @@ -0,0 +1,28 @@ + + + + iCell + + + + \ No newline at end of file diff --git a/resources/library/applications/iCell.wgt/icon.png b/resources/library/applications/iCell.wgt/icon.png new file mode 100644 index 0000000..c149a41 Binary files /dev/null and b/resources/library/applications/iCell.wgt/icon.png differ diff --git a/resources/library/applications/iCell.wgt/icon_old.png b/resources/library/applications/iCell.wgt/icon_old.png new file mode 100644 index 0000000..0ae5f44 Binary files /dev/null and b/resources/library/applications/iCell.wgt/icon_old.png differ diff --git a/resources/library/applications/iCell.wgt/images/ADN.gif b/resources/library/applications/iCell.wgt/images/ADN.gif new file mode 100644 index 0000000..96eb2e6 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/ADN.gif differ diff --git a/resources/library/applications/iCell.wgt/images/ADN.jpg b/resources/library/applications/iCell.wgt/images/ADN.jpg new file mode 100644 index 0000000..23f0500 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/ADN.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/ADN_zoom.jpg b/resources/library/applications/iCell.wgt/images/ADN_zoom.jpg new file mode 100644 index 0000000..4e74de4 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/ADN_zoom.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/ARN_in.jpg b/resources/library/applications/iCell.wgt/images/ARN_in.jpg new file mode 100644 index 0000000..b02adbf Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/ARN_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/ARN_zoom.jpg b/resources/library/applications/iCell.wgt/images/ARN_zoom.jpg new file mode 100644 index 0000000..a3a1a3e Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/ARN_zoom.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/Golgi_aura.png b/resources/library/applications/iCell.wgt/images/Golgi_aura.png new file mode 100644 index 0000000..ff5282f Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/Golgi_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/Lys_aura.png b/resources/library/applications/iCell.wgt/images/Lys_aura.png new file mode 100644 index 0000000..1818ddc Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/Lys_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/Mitoch_aura.png b/resources/library/applications/iCell.wgt/images/Mitoch_aura.png new file mode 100644 index 0000000..70ee19c Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/Mitoch_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/Noy_aura.png b/resources/library/applications/iCell.wgt/images/Noy_aura.png new file mode 100644 index 0000000..256b915 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/Noy_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/REL_aura.png b/resources/library/applications/iCell.wgt/images/REL_aura.png new file mode 100644 index 0000000..45e66ca Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/REL_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/RER_aura.png b/resources/library/applications/iCell.wgt/images/RER_aura.png new file mode 100644 index 0000000..ef0e9e9 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/RER_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/Vesic_aura.png b/resources/library/applications/iCell.wgt/images/Vesic_aura.png new file mode 100644 index 0000000..3cf6fc8 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/Vesic_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/centriole_aura.png b/resources/library/applications/iCell.wgt/images/centriole_aura.png new file mode 100644 index 0000000..41ae018 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/centriole_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/centriole_in.jpg b/resources/library/applications/iCell.wgt/images/centriole_in.jpg new file mode 100644 index 0000000..46bbd59 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/centriole_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/fond_ADN.png b/resources/library/applications/iCell.wgt/images/fond_ADN.png new file mode 100644 index 0000000..883825c Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/fond_ADN.png differ diff --git a/resources/library/applications/iCell.wgt/images/golgi_in.jpg b/resources/library/applications/iCell.wgt/images/golgi_in.jpg new file mode 100644 index 0000000..5cbe689 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/golgi_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/index.png b/resources/library/applications/iCell.wgt/images/index.png new file mode 100644 index 0000000..29e36b0 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/index.png differ diff --git a/resources/library/applications/iCell.wgt/images/lys_in.jpg b/resources/library/applications/iCell.wgt/images/lys_in.jpg new file mode 100644 index 0000000..91bdd66 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/lys_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/mitoch_in.jpg b/resources/library/applications/iCell.wgt/images/mitoch_in.jpg new file mode 100644 index 0000000..64b5370 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/mitoch_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/noy_in.jpg b/resources/library/applications/iCell.wgt/images/noy_in.jpg new file mode 100644 index 0000000..97e1e01 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/noy_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/nucl_aura.png b/resources/library/applications/iCell.wgt/images/nucl_aura.png new file mode 100644 index 0000000..f87d357 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/nucl_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/nucl_in.jpg b/resources/library/applications/iCell.wgt/images/nucl_in.jpg new file mode 100644 index 0000000..c29a60a Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/nucl_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/rel_in.jpg b/resources/library/applications/iCell.wgt/images/rel_in.jpg new file mode 100644 index 0000000..10e48a6 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/rel_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/rer_in.jpg b/resources/library/applications/iCell.wgt/images/rer_in.jpg new file mode 100644 index 0000000..f5a6de0 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/rer_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/rib_aura.png b/resources/library/applications/iCell.wgt/images/rib_aura.png new file mode 100644 index 0000000..c10388e Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/rib_aura.png differ diff --git a/resources/library/applications/iCell.wgt/images/rib_in.jpg b/resources/library/applications/iCell.wgt/images/rib_in.jpg new file mode 100644 index 0000000..f1f9694 Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/rib_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/images/vesic_in.jpg b/resources/library/applications/iCell.wgt/images/vesic_in.jpg new file mode 100644 index 0000000..8fa1bde Binary files /dev/null and b/resources/library/applications/iCell.wgt/images/vesic_in.jpg differ diff --git a/resources/library/applications/iCell.wgt/js/script.js b/resources/library/applications/iCell.wgt/js/script.js new file mode 100644 index 0000000..e6a4fa5 --- /dev/null +++ b/resources/library/applications/iCell.wgt/js/script.js @@ -0,0 +1,345 @@ + +var opaciteDIV=0 //opacitй de la div organites +var opaciteINFOS=0 //opacitй de la div informations +var INFOS_affiche=false //bool pour la fonction clicINFOS() +var t_div //pour les setinterval d'animation +var t_inf +var tempsAnim=25 //durйe en milisecondes des animations de fondu +var t_aura//pour l'animation de l'aura au passage de la souris +var opaciteAura=0// idem que t_aura +var noyauSel = false //pour pouvoir accиder а l'ADN depuis le noyau +var loupe_on = false // permet d'accйder aux zooms de l'ADN et de l'ARN +var interactif_on = false // permet d'accйder aux parties interactives s'il y en a +var elt_a_zoomer = "" //pour savoir s'il faut afficher adn_zoom.jpg ou arn_zoom.jpg +var ZOOM_affiche=false //pour savoir si la div de zoom est affichйes ou pas +var opaciteZOOM = 0 +var t_zoom +var loaded = true +var click_INFO = false; +var click_ZOOM = false; +var click_EXIT = true; +var click_Cacher = true; + +function vesicule() { + loupe_on = false + //console.log("vesicule"); + afficherInfosOrganite(txt_vesicule) + document.getElementById("img_organite").src="images/vesic_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function lysosome() { + loupe_on = false + //console.log("lysosome"); + afficherInfosOrganite(txt_lysosome) + document.getElementById("img_organite").src="images/lys_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function mitoch() { + loupe_on = false + //console.log("mitoch"); + afficherInfosOrganite(txt_mitoch) + document.getElementById("img_organite").src="images/mitoch_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function golgi () { + loupe_on = false + //console.log("golgi"); + afficherInfosOrganite(txt_golgi) + document.getElementById("img_organite").src="images/golgi_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function rer() { + loupe_on = false + //console.log("rer"); + afficherInfosOrganite(txt_rer) + document.getElementById("img_organite").src="images/rer_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function noy() { + loupe_on = false + //console.log("noy"); + afficherInfosOrganite(txt_noy) + document.getElementById("img_organite").src="images/noy_in.jpg" + noyauSel = true + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function rel() { + loupe_on = false + //console.log("rel"); + afficherInfosOrganite(txt_rel) + document.getElementById("img_organite").src="images/rel_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function adn() { + //console.log("adn"); + if(noyauSel) { + elt_a_zoomer="ADN" + loupe_on = true + noyauSel = false + + afficherInfosOrganite(txt_adn) + document.getElementById("div_zoom").innerHTML='' + + /*Uniboard 4 ne supportant pas bien les gifs...*/ + if(window.sankore){ + document.getElementById("img_ADN").src="images/adn.jpg" + } else { + document.getElementById("img_ADN").src="images/ADN.gif" + } + + document.getElementById("img_organite").src="images/fond_ADN.png" + document.getElementById("div_organite").style.zIndex="3" + document.getElementById("div_aura").style.zIndex="-1" + document.getElementById("div_ADN").style.zIndex="2" + } +} + +function rib() { + interactif_on="ARN" + loupe_on = false + //console.log("rib"); + afficherInfosOrganite(txt_rib) + document.getElementById("img_organite").src="images/rib_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function centriole(){ + loupe_on = false + //console.log("centriole"); + afficherInfosOrganite(txt_centr) + document.getElementById("img_organite").src="images/centriole_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +function arn(){ + elt_a_zoomer="ARN" + loupe_on = true + //console.log("arn"); + afficherInfosOrganite(txt_arn) + document.getElementById("div_zoom").innerHTML='' + + document.getElementById("img_organite").src="images/ARN_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" +} + +function nucl(){ + loupe_on = false + //console.log(" nucl"); + afficherInfosOrganite(txt_nucl) + document.getElementById("img_organite").src="images/nucl_in.jpg" + document.getElementById("div_organite").style.zIndex="1" + document.getElementById("div_aura").style.zIndex="-1" + t_div=setInterval(afficherDIV,tempsAnim) +} + +/*Fonctions relatives а la div d'infos*/ +function infos() { + //console.log(" infos"); + if(!INFOS_affiche && !click_INFO){ + document.getElementById("div_infos").style.zIndex="4" + t_inf=setInterval(afficherINFOS,50) + click_INFO = true; + } +} + +function afficherINFOS() { + //console.log("afficherINFOS"); + if (opaciteINFOS<1) { + opaciteINFOS=opaciteINFOS+0.1 + document.getElementById("div_infos").style.opacity=opaciteINFOS + } else { + clearInterval(t_inf); + INFOS_affiche=true + } + +} + +function clicINFOS() { + + if (INFOS_affiche && click_INFO) { + //console.log("INFOS_affiche"); + t_inf=setInterval(cacherINFOS,50) + click_INFO = false; + } + + if (ZOOM_affiche && click_ZOOM) { + //console.log("ZOOM_affiche"); + t_zoom=setInterval(cacherZOOM,50) + click_ZOOM = false; + } +} + +function cacherINFOS() { + //console.log("cacherINFOS"); + if (opaciteINFOS>0) { + opaciteINFOS=opaciteINFOS-0.1 + document.getElementById("div_infos").style.opacity=opaciteINFOS + } else { + document.getElementById("div_infos").style.zIndex="-1" + clearInterval(t_inf) + INFOS_affiche=false + } +} + +/*Animations pour la div de zoom*/ + +function loupe_interact(){ + //console.log("loupe_interact"); + if(loupe_on&&!ZOOM_affiche){ + + zoom() + } + if(interactif_on) { + + } + if(interactif_on=="ARN") { + arn() + } + +} + +function zoom() { + //console.log("zoom"); + document.getElementById("div_zoom").style.zIndex="4" + t_zoom=setInterval(afficherZOOM,50); + ZOOM_affiche = true; +} + +function afficherZOOM() { + //console.log("afficherZOOM"); + if (opaciteZOOM<1) { + opaciteZOOM=opaciteZOOM+0.1 + document.getElementById("div_zoom").style.opacity=opaciteZOOM + } else { + clearInterval(t_zoom) + ZOOM_affiche=true + click_ZOOM = true; + } +} + +function cacherZOOM() { + //console.log("cacherZOOM"); + if (opaciteZOOM>0) { + opaciteZOOM=opaciteZOOM-0.1 + document.getElementById("div_zoom").style.opacity=opaciteZOOM + } else { + document.getElementById("div_zoom").style.zIndex="-2" + clearInterval(t_zoom) + ZOOM_affiche=false + } +} + + +/*Animations relatives а la div organites*/ +function afficherDIV() { + if(click_EXIT){ + //console.log("afficherDIV"); + if (opaciteDIV<1) { + opaciteDIV=opaciteDIV+0.1 + document.getElementById("div_organite").style.opacity=opaciteDIV + } else { + clearInterval(t_div) + click_EXIT = false; + click_Cacher = true; + } + } +} + + +function cacherDIV() { + + if(!click_EXIT){ + //console.log("cacherDIV"); + interactif_on=false + noyauSel = false + document.getElementById("div_ADN").style.zIndex="-2" + document.getElementById("img_ADN").src="" + + if (opaciteDIV>0) { + opaciteDIV=opaciteDIV-0.1 + document.getElementById("div_organite").style.opacity=opaciteDIV + } else { + document.getElementById("div_organite").style.zIndex="-1"; + clearInterval(t_div) + click_EXIT = true; + } + } +} + +function cacherDivFunction(){ + if(!click_EXIT && click_Cacher){ + t_div=setInterval(cacherDIV,50); + click_Cacher = false; + } +} + + +function afficherInfosOrganite(nomOrg) { + //console.log("afficherInfosOrganite"); + document.getElementById("div_infos").innerHTML=nomOrg +} + +/*Animation d'intro + function intro() { + if (opaciteDIV<1) { + opaciteDIV=opaciteDIV+0.1 + document.getElementById("div_body").style.opacity=opaciteDIV + } else { + opaciteDIV=0 + clearInterval(t_div) + } + }*/ + +/*Affichage de l'aura au passage de la souris*/ +function aura(txt) { + //console.log("aura"); + document.getElementById("div_aura").style.zIndex="2" + document.getElementById("img_aura").src="images/"+txt+"_aura.png" + t_aura=setInterval(animAura,tempsAnim) +} + +function animAura(){ + //console.log("animAura"); + if (opaciteAura<1) { + opaciteAura=opaciteAura+0.1 + document.getElementById("div_aura").style.opacity=opaciteAura + } else { + opaciteAura=0 + clearInterval(t_aura) + } +} + +function auraOut(){ + //console.log("auraOut"); + clearInterval(t_aura) + document.getElementById("div_aura").style.opacity=0 + document.getElementById("div_aura").style.zIndex="-1" + document.getElementById("img_aura").src="" +} + diff --git a/resources/library/applications/iCell.wgt/js/textes_descriptifs.js b/resources/library/applications/iCell.wgt/js/textes_descriptifs.js new file mode 100644 index 0000000..49a603b --- /dev/null +++ b/resources/library/applications/iCell.wgt/js/textes_descriptifs.js @@ -0,0 +1,272 @@ +var txt_vesicule = ""; +var txt_lysosome = ""; +var txt_mitoch = ""; +var txt_golgi = ""; +var txt_rer = ""; +var txt_noy = ""; +var txt_rel = ""; +var txt_adn = ""; +var txt_centr = ""; +var txt_rib = ""; +var txt_arn = ""; +var txt_nucl = ""; + +var lang = ""; //locale language + +if(window.sankore){ + try{ + lang = sankore.locale().substr(0,2); + } catch(e){ + lang = "en"; + } +} else + lang = "en"; + +switch(lang){ + case "en": + txt_vesicule = "

        Vesicle
        Transporter

        "+ + "

        Structure:

        Phospholipid bilayer

        "+ + "

        Role:

        Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).

        "+ + '

        Operation:

        Transport "towed" by Protein building on the cytoskeleton.

        ' + + txt_lysosome = "

        Lysosome
        A stomach cell.

        "+ + "

        Structure:

        Phospholipid bilayer

        "+ + "

        Role:

        a intracellular digestion with enzymes.

        "+ + "

        Operation:

        Absorbes nutrient uptake or damaged cellular components by endocytosis, digest them and then distributes the results of the chemical reaction in the cell and finally expels of waste by exocytosis.

        " + + txt_mitoch = "

        Mitochondrie
        Batteries

        "+ + "

        Structure:

        Two phospholipid bilayers called mitochondrial membranes, one external and one internal. The mitochondria contain ribosomes, ATP of DNA and other molecules.

        "+ + "

        Role:

        Powerhouse of the cell.

        "+ + "

        Operation:

        Energy - in the form of ATP (adenosine triphosphate) - comes from various stages of chemical reactions starting from a glucose molecule.

        " + + txt_golgi = "

        Apparatus golgi
        Miniature plants

        "+ + "

        Structure:

        Has a stack of flattened membrane saccules.

        "+ + "

        Role:

        Modification of proteins during a journey through its saccules.

        "+ + "

        Operation:

        Chemical reactions, including glycosylation.

        " + + txt_rer = "

        Rough endoplasmic reticulum - Tunnel

        "+ + "

        Structure:

        Consists of a phospholipid bilayer studded with ribosomes (an aspect rough ) define the light, an internal space that can be compared to a tunnel.

        "+ + "

        Role:

        More specialized than the real, he participated in the transport and a finalizing the proteins that are synthesized by ribosomes.

        "+ + '

        Operation:

        Proteins "fall" in the light of the RER where they are modified and displaced. They leave the RER in a vesicle membrane after it.

        ' + + txt_noy = "

        Core - The safe

        "+ + "

        Structure:

        Surrounded by a double membrane, that called the nuclear envelope, in places linked with the RER. These two membranes protect regular intervals formed nuclear pores. It located within the nucleolus and the DNA in the form of chromatin or chromosomes.

        "+ + "

        Role:

        Storing all the genetic information necessary for a life of the cell.

        "+ + "

        Operation:

        Copying of genetic information on mRNA.

        " + + txt_rel = "

        Smooth endoplasmic reticulum - REL

        "+ + "

        Structure:

        Like that of the RER, with the difference that the membrane is studded with ribosomes, as its smooth appearance.

        "+ + "

        Role:

        Phospholipid synthesis, calcium storage, transformation of certain molecules external (drugs, alcohol, ...). In some cells, the LRA also performs additional functions, such as the production of hormones, gastric acid, etc.

        "+ + "

        Operation:

        It is the seat of many complex chemical reactions (eg detoxification, various syntheses).

        " + + txt_adn = "

        DNA - The Book of Life

        "+ + "

        Structure:

        A scale in form of the famous double helix consists of two columns sugar-phosphate-sugar-phosphate ... and whose levels are called nitrogenous bases.

        "+ + "

        Role:

        DNA contains all the information needed for a life.

        "+ + "

        Operation:

        All information is written using the four letters A, T, G and C. Using these combinations, it is possible to write anything useful about cell.

        " + + txt_centr = "

        Centrioles - Tug of chromosomes

        "+ + "

        Structure:

        Nine triplets of microtubules surrounded by a some number of proteins.

        "+ + "

        Role:

        Separate the different chromosomes during cell division.

        "+ + "

        Operation:

        Centrioles, once placed at the two poles of the cell, deploy the microtubules to the centromeres of chromosomes and pull them to them to separate them.

        " + + txt_rib = "

        Ribosome - Decoders

        "+ + "

        Structure:

        Formed by two subunits composed of ribosomal RNA and proteins.

        "+ + "

        Role:

        The ribosome synthesizes proteins.

        "+ + "

        Operation:

        A strand of mRNA (messenger) pass through the ribosome and tRNA (transfer) between the large subunit where the codon (group of three nitrogen bases) is one who is in front of the mRNA. This tRNA carries with it a specific amino acid that is added a chain already assembled.

        " + + txt_arn = "

        RNA - Multifunction

        "+ + "

        Structure:

        Very similar DNA with the difference it has only one strand and thymine (T) of DNA is replaced by uracil (U). In addition, it is chemically more stable than DNA, so it is not used for information storage, just if in long term.

        "+ + "

        Role:

        Multiple, there are RNA transport, passenger, cruise, guides, satellite ...

        "+ + "

        Operation:

        Copying of genetic information, the opening of the double helix of DNA, and then copying the RNA codons. It can then exit the nucleus, the DNA can not do it.

        " + + txt_nucl = "

        Nucleolus - Factory RNA

        "+ + "

        Structure:

        Composed of any membrane, a cluster of proteins and RNA.

        "+ + "

        Role:

        Location of the RNA transcripts, including RNA (ribosomal), which combines with protein, will form the two subunits of ribosomes.

        "+ + "

        Operation:

        Creation of a ribosome: Transcription of rRNA and protein needed (this step is performed in the cytoplasm by other ribosomes) that fall within the nucleus, association of molecules frankly formed a new ribosome, which leaves the nucleus to play its role.

        " + break; + case "ru": + txt_vesicule = "

        Везикула
        Транспортер

        "+ + "

        Структура:

        фосфолипидный бислой

        "+ + "

        Роль:

        Транспорт белков и других элементов внутри клетки наружу (экзоцитоз) или внутрь (эндоцитоз).

        "+ + '

        Процесс работы:

        Перевозит "буксируемые" белки, опираясь на цитоскелет.

        ' + + txt_lysosome = "

        Лизосома
        В желудках клетки

        "+ + "

        Структура:

        фосфолипидный бислой

        "+ + "

        Роль:

        Внутриклеточного пищеварения с ферментами.

        "+ + "

        Процесс работы:

        Поглощение питательных веществ или поврежденных компонентов путем эндоцитоза, их переваривание, а затем распространение результатов химических реакций в клекте и, наконец, удаление отходов путем эндоцитоза.

        " + + txt_mitoch = "

        Митохондрии
        Батареи

        "+ + "

        Структура:

        Два бифосфолипида, называемых митохондриальными мембранами, один внешний и один внутренний. Митохондрии содержат рибосомы, АТФ ДНК и другие молекулы.

        "+ + "

        Роль:

        Центральные энергетические клетки.

        "+ + "

        Процесс работы:

        Энергия - в форме АТФ (аденозинтрифосфата) - является результатом различных стадий химических реакций, начиная с молекулы глюкозы.

        " + + txt_golgi = "

        Аппарат Гольджи
        Миниатюрные растения

        "+ + "

        Структура:

        Имеет стопку уплощенных мешочков мембран.

        "+ + "

        Роль:

        Модификация белков во время путешествия по ее мешочкам.

        "+ + "

        Процесс работы:

        Химические реакции, в том числе гликозилирование.

        " + + txt_rer = "

        Шероховатой эндоплазматической сети - Тоннель

        "+ + "

        Структура:

        Состояит из фосфолипидного бислоя, усеянного рибосомами. Внутреннее пространство разграничено по свету, что можно сравнить с туннелем. (грубое предположение)

        "+ + "

        Роль:

        Более специализированные, чем REL. Участвует в транспортировке и доработке белков, которые синтезируются рибосомами.

        "+ + '

        Процесс работы:

        Белки "попадают" на свет о RER, изменяются и перемещаются. Они оставляют RER в везикуле, в конце оболочки последнего.

        ' + + txt_noy = "

        Ядро - безопасное

        "+ + "

        Структура:

        Окружено двойной мембраной, называемой ядерной оболочкой, в местах, связанных с RER. Эти две мембраны предохраняют ядро регулярной при формировании ядерной поры. Внутри находится ядрышко и ДНК в виде хроматина или хромосом.

        "+ + "

        Роль:

        Хранение всей генетической информации, необходимой для жизни клетки.

        "+ + "

        Процесс работы:

        Транскрипция (копирования генетической информации в мРНК).

        " + + txt_rel = "

        Гладкая эндоплазматическая сеть - REL

        "+ + "

        Структура:

        Как и PER, за исключением того, что мембрана усеяна рибосомами, 'гладкий внешний вид'

        "+ + "

        Роль:

        Синтез фосфолипидов, кальция, хранение, переработка некоторых внешних молекул (наркотики, алкоголь, ...). В некоторых клетках, REL также выполняет дополнительные функции, такие как производство гормонов, желудочные кислоты и т.д..

        "+ + "

        Процесс работы:

        Имеет место много сложных химических реакций (например, детоксикация, различные синтезы).

        " + + txt_adn = "

        ДНК - Книга Жизни

        "+ + "

        Структура:

        Двойная спираль, состоящая из двух столбцов глюкоза-фосфат-глюкоза-фосфат ... уровни которых называются азотистыми основаниями.

        "+ + "

        Роль:

        ДНК содержит всю информацию, необходимую для жизни.

        "+ + "

        Процесс работы:

        Вся информация записывается с помощью четырех букв A, T, G и C. С помощью этих комбинаций можно написать все, что полезно для клеток.

        " + + txt_centr= "

        Центриоли - Буксиры хромосом

        "+ + "

        Структура:

        Девять триплетов микротрубочек, окруженных белками.

        "+ + "

        Роль:

        Отделение различных хромосом во время деления клетки.

        "+ + "

        Процесс работы:

        Микротрубочки развертывают центриоли, когда те размещены на двух полюсах клетки, на центромеры хромосом и тянут их к ним, чтобы разделить их.

        " + + txt_rib = "

        Рибосома - декодеры

        "+ + "

        Структура:

        Сформирована из двух субъединиц: рибосомальной РНК и белков.

        "+ + "

        Роль:

        Рибосомы синтезируют белки.

        "+ + "

        Процесс работы:

        Нити мРНК (мессенджер) происходит в рибосоме и тРНК (передача) между большой субъединицы, если ее кодона (группа из трех азотистых оснований) соответствует один перед мРНК. Это тРНК несет в себе определенный аминокислота, которая добавляется к цепочке уже собранном виде.

        " + + txt_arn = "

        РНК - многофункциональная

        "+ + "

        Структура:

        Очень похожа на ДНК. Кроме того, что он имеет только один берег и тимин (Т) ДНК заменяется урацил (U). Кроме того, он химически более нестабильна, чем ДНК, поэтому он не используется для хранения информации с течением времени.

        "+ + "

        Роль:

        Несколько, Есть РНК транспорта, курьеров, regulateus, гиды, спутник ...

        "+ + "

        Процесс работы:

        Копирование генетической информации осуществляется через открытие двойной спирали ДНК, а затем копирование РНК кодонов. Это может затем выйти из ядра, ДНК не может сделать.

        " + + txt_nucl = "

        Ядрышко - фабрика РНК

        "+ + "

        Структура:

        Состоит из любой оболочки, скопления белков и РНК.

        "+ + "

        Роль:

        Расположение транскрипта РНК, Ночной рРНК (рибосомальной), который вместе с белками, образуют две субъединицы рибосом.

        "+ + "

        Процесс работы:

        Создание рибосомы: Транскрипция РНК и белков, необходимых (этот шаг выполняется в цитоплазму других рибосомы), которые входят в ядро, ассоциация молекул, образующихся в откровенной новые рибосомы, которая находится вне ядра, чтобы играть свою роль.

        " + break; + case "fr": + txt_vesicule = "

        Vésicule
        Transporteurs

        "+ + "

        Structure :

        Bicouche phospholipidique.

        "+ + "

        Role :

        Transport de protéines ou d'autres éléments à l'intérieur de la cellule, vers l'extérieur (exocytose) ou vers l'intérieur (endocytose).

        "+ + '

        Fonctionnement :

        Transporteur "remorqué" par des protéines prenant appui sur le cytosquelette.

        ' + + txt_lysosome = "

        Lysosome
        Estomacs cellulaires

        "+ + "

        Structure :

        Bicouche phospholipidique.

        "+ + "

        Rôle :

        Digestion intra-cellulaire à l'aide d'enzymes.

        "+ + "

        Fonctionnement :

        Absorption de nutriments par endocytose ou d'éléments cellulaires abîmés, digestion de ceux-ci, puis distribution des résultats de la réaction chimique dans la cellule et enfin expulsion des déchets par exocytose.

        " + + txt_mitoch = "

        Mitochondrie
        Piles

        "+ + "

        Structure :

        Deux bichouches phospholipidiques appelées membranes mitochondriales, une externe et une interne. La mitochondrie contient des ribosomes, de l'ATP de l'ADN et bien d'autres molécules.

        "+ + "

        Rôle :

        Centrale énergétique de la cellule.

        "+ + "

        Fonctionnement :

        L'énergie - sous forme d'ATP (adénosine triphosphate) - est issue de différentes étapes de réactions chimiques partant d'une molécule de glucose.

        " + + txt_golgi = "

        Appareil de Golgi
        Usines miniatures

        "+ + "

        Structure :

        Formé d'un empilement de saccules membranaires applatis.

        "+ + "

        Rôle :

        Modification de certaines protéines au cours d'un cheminement au travers de ses saccules.

        "+ + "

        Fonctionnement :

        Suite de réactions chimiques, notamment par glycosylation.

        " + + txt_rer = "

        Reticulum endoplasmique rugueux - Tunnel

        "+ + "

        Structure :

        Composé d'une bicouche phospholipidique piquetée de ribosomes (d'un aspect rugueux) délimitant la lumière, un espace interne pouvant être comparé à un tunnel.

        "+ + "

        Rôle :

        Plus spécialisé que le REL, il participe au transport et à la finalisation des protéines, qui sont synthétisées par les ribosomes.

        "+ + '

        Fonctionnement :

        Les protéines "tombent" dans la lumière du RER où elles sont modifiées et déplacées. Elles quittent le RER dans une vésicule issue de la membrane de ce dernier.

        ' + + txt_noy = "

        Noyau - Le coffre-fort

        "+ + "

        Structure :

        Entouré par une double membrane appelée enveloppe nucléaire en lien par endroits avec le RER. Ces deux membranes fusionnent à intervalles réguliers pour former les pores nucléaires. À l'intérieur se trouvent le nucléole et l'ADN, sous forme de chromatine ou de chomosomes.

        "+ + "

        Rôle :

        Stockage de la totalité des informations génétiques nécessaires à la vie de la cellule.

        "+ + "

        Fonctionnement :

        Site de la transcription (copie de l'information génétique sur des ARNm).

        " + + txt_rel = "

        Reticulum endoplasmique lisse - REL

        "+ + "

        Structure :

        Similaire à celle du RER, à la différence que sa membrane n'est pas parsemée de ribosomes, d'où son aspect lisse.

        "+ + "

        Rôle :

        Synthèse des phospholipides, stockage du calcium, transformation de certaines molécules extérieures (médicament, alcool, ...). Dans certaines cellules, le REL remplit aussi des fonctions supplémentaires, telles la production d'hormones, d'acide gastrique, etc.

        "+ + "

        Fonctionnement :

        Il est le siège de nombreuses réactions chimiques complexes (ex: détoxification, différentes synthèses).

        " + + txt_adn = "

        ADN - Le livre de la vie

        "+ + "

        Structure :

        Échelle à la célèbre forme de double hélice composée de deux colonnes sucre-phosphate-sucre-phosphate-... et dont les échelons sont appelés bases azotées.

        "+ + "

        Rôle :

        L'ADN contient toutes les informations nécessaires à la vie.

        "+ + "

        Fonctionnement :

        Toutes les informations sont écrites à l'aide des quatre lettres A, T, G, et C. Grâce à ces combinaisons, il est possible d'écrire tout ce qui est utile à la cellule.

        " + + txt_centr= "

        Centrioles - Remorqueurs de chromosomes

        "+ + "

        Structure :

        Neuf triplets de microtubules entourés par un certain nombre de protéines.

        "+ + "

        Rôle :

        Séparer les différents chromosomes durant la division cellulaire.

        "+ + "

        Fonctionnement :

        Les centrioles, une fois placés aux deux pôles de la cellule, déploient des microtubules vers les centromères des chromosomes et les tirent vers eux pour les séparer.

        " + + txt_rib = "

        Ribosome - Décodeurs

        "+ + "

        Structure :

        Formé par deux sous-unités composées d'ARN ribosomique et de protéines.

        "+ + "

        Rôle :

        Le ribosome synthétise les protéines.

        "+ + "

        Fonctionnement :

        Un brin d'ARNm (messager) passe dans le ribosome et un ARNt (de transfert) entre dans la grande sous-unité si son codon (groupe de trois bases azotées) correspond à celui qui est en face sur l'ARNm. Cet ARNt porte avec lui un acide aminé spécifique qui est ajouté à la chaîne déja assemblée.

        " + + txt_arn = "

        ARN - Multifonction

        "+ + "

        Structure :

        Très similaire à l'ADN à la différence qu'il ne possède qu'un brin et que la thymine (T) de l'ADN est remplacée par l'uracile (U). De plus, il est chimiquement plus instable que l'ADN, c'est pourquoi il n'est pas utilisé pour le stockage d'informations à long terme.

        "+ + "

        Rôle :

        Multiples, il existe des ARN de transport, messagers, régulateurs, guides, satellites, ...

        "+ + "

        Fonctionnement :

        La copie d'informations génétiques se fait grâce à l'ouverture de la double-hélice d'ADN, puis la copie des codons sur l'ARN. Celui-ci peut alors sortir du noyau, ce que l'ADN ne peut pas faire.

        " + + txt_nucl = "

        Nucléole - Fabrique d'ARN

        "+ + "

        Structure :

        Non entouré d'une membrane, c'est un agglomérat de protéines et d'ARN.

        "+ + "

        Rôle :

        Lieu de la transcription d'ARN, notamment d'ARNr (ribosomiques) qui, associés avec des protéines, vont former les deux sous-unités des ribosomes.

        "+ + "

        Fonctionnement :

        Création d'un ribosome : transcription des ARNr ainsi que des protéines nécessaires (cette étape est effectuée dans le cytoplasme par d'autres ribosomes) qui rentrent dans le noyau, association des molécules fraîchement formées en un nouveau ribosome, qui sort du noyau pour jouer son rôle.

        " + break; + default: + txt_vesicule = "

        Vesicle
        Transporter

        "+ + "

        Structure:

        Phospholipid bilayer

        "+ + "

        Role:

        Transport of proteins and other components inside the cell to the exterior (exocytosis) or inward (endocytosis).

        "+ + '

        Operation:

        Transport "towed" by Protein building on the cytoskeleton.

        ' + + txt_lysosome = "

        Lysosome
        A stomach cell.

        "+ + "

        Structure:

        Phospholipid bilayer

        "+ + "

        Role:

        a intracellular digestion with enzymes.

        "+ + "

        Operation:

        Absorbes nutrient uptake or damaged cellular components by endocytosis, digest them and then distributes the results of the chemical reaction in the cell and finally expels of waste by exocytosis.

        " + + txt_mitoch = "

        Mitochondrie
        Batteries

        "+ + "

        Structure:

        Two phospholipid bilayers called mitochondrial membranes, one external and one internal. The mitochondria contain ribosomes, ATP of DNA and other molecules.

        "+ + "

        Role:

        Powerhouse of the cell.

        "+ + "

        Operation:

        Energy - in the form of ATP (adenosine triphosphate) - comes from various stages of chemical reactions starting from a glucose molecule.

        " + + txt_golgi = "

        Apparatus golgi
        Miniature plants

        "+ + "

        Structure:

        Has a stack of flattened membrane saccules.

        "+ + "

        Role:

        Modification of proteins during a journey through its saccules.

        "+ + "

        Operation:

        Chemical reactions, including glycosylation.

        " + + txt_rer = "

        Rough endoplasmic reticulum - Tunnel

        "+ + "

        Structure:

        Consists of a phospholipid bilayer studded with ribosomes (an aspect rough ) define the light, an internal space that can be compared to a tunnel.

        "+ + "

        Role:

        More specialized than the real, he participated in the transport and a finalizing the proteins that are synthesized by ribosomes.

        "+ + '

        Operation:

        Proteins "fall" in the light of the RER where they are modified and displaced. They leave the RER in a vesicle membrane after it.

        ' + + txt_noy = "

        Core - The safe

        "+ + "

        Structure:

        Surrounded by a double membrane, that called the nuclear envelope, in places linked with the RER. These two membranes protect regular intervals formed nuclear pores. It located within the nucleolus and the DNA in the form of chromatin or chromosomes.

        "+ + "

        Role:

        Storing all the genetic information necessary for a life of the cell.

        "+ + "

        Operation:

        Copying of genetic information on mRNA.

        " + + txt_rel = "

        Smooth endoplasmic reticulum - REL

        "+ + "

        Structure:

        Like that of the RER, with the difference that the membrane is studded with ribosomes, as its smooth appearance.

        "+ + "

        Role:

        Phospholipid synthesis, calcium storage, transformation of certain molecules external (drugs, alcohol, ...). In some cells, the LRA also performs additional functions, such as the production of hormones, gastric acid, etc.

        "+ + "

        Operation:

        It is the seat of many complex chemical reactions (eg detoxification, various syntheses).

        " + + txt_adn = "

        DNA - The Book of Life

        "+ + "

        Structure:

        A scale in form of the famous double helix consists of two columns sugar-phosphate-sugar-phosphate ... and whose levels are called nitrogenous bases.

        "+ + "

        Role:

        DNA contains all the information needed for a life.

        "+ + "

        Operation:

        All information is written using the four letters A, T, G and C. Using these combinations, it is possible to write anything useful about cell.

        " + + txt_centr = "

        Centrioles - Tug of chromosomes

        "+ + "

        Structure:

        Nine triplets of microtubules surrounded by a some number of proteins.

        "+ + "

        Role:

        Separate the different chromosomes during cell division.

        "+ + "

        Operation:

        Centrioles, once placed at the two poles of the cell, deploy the microtubules to the centromeres of chromosomes and pull them to them to separate them.

        " + + txt_rib = "

        Ribosome - Decoders

        "+ + "

        Structure:

        Formed by two subunits composed of ribosomal RNA and proteins.

        "+ + "

        Role:

        The ribosome synthesizes proteins.

        "+ + "

        Operation:

        A strand of mRNA (messenger) pass through the ribosome and tRNA (transfer) between the large subunit where the codon (group of three nitrogen bases) is one who is in front of the mRNA. This tRNA carries with it a specific amino acid that is added a chain already assembled.

        " + + txt_arn = "

        RNA - Multifunction

        "+ + "

        Structure:

        Very similar DNA with the difference it has only one strand and thymine (T) of DNA is replaced by uracil (U). In addition, it is chemically more stable than DNA, so it is not used for information storage, just if in long term.

        "+ + "

        Role:

        Multiple, there are RNA transport, passenger, cruise, guides, satellite ...

        "+ + "

        Operation:

        Copying of genetic information, the opening of the double helix of DNA, and then copying the RNA codons. It can then exit the nucleus, the DNA can not do it.

        " + + txt_nucl = "

        Nucleolus - Factory RNA

        "+ + "

        Structure:

        Composed of any membrane, a cluster of proteins and RNA.

        "+ + "

        Role:

        Location of the RNA transcripts, including RNA (ribosomal), which combines with protein, will form the two subunits of ribosomes.

        "+ + "

        Operation:

        Creation of a ribosome: Transcription of rRNA and protein needed (this step is performed in the cytoplasm by other ribosomes) that fall within the nucleus, association of molecules frankly formed a new ribosome, which leaves the nucleus to play its role.

        " + break; +} + + diff --git a/resources/library/applications/iCell.wgt/js/textes_descriptifs.js0 b/resources/library/applications/iCell.wgt/js/textes_descriptifs.js0 new file mode 100644 index 0000000..9e54de3 --- /dev/null +++ b/resources/library/applications/iCell.wgt/js/textes_descriptifs.js0 @@ -0,0 +1,63 @@ +/* Pour info, les span taient une tentative de mise en forme via CSS mais j'ai trouv plus pratique, et je les ai laisss au cas o... */ + + var txt_vesicule = "

        Vsicule
        Transporteurs

        "+ + "

        Structure:

        Bicouche phospholipidique

        "+ + "

        Rle:

        Transport de protines ou d'autres lments l'intrieur de la cellule, vers l'extrieur (exocytose) ou vers l'intrieur (endocytose).

        "+ + '

        Fonctionnement:

        Transporteur "remorqu" par des protines prenant appui sur le cytosquelette.

        ' + + var txt_lysosome = "

        Lysosome
        Estomacs cellulaires

        "+ + "

        Structure:

        Bicouche phospholipidique

        "+ + "

        Rle:

        Digestion intra-cellulaire l'aide d'enzymes

        "+ + "

        Fonctionnement:

        Absorption de nutriments par endocytose ou d'lments cellulaires abims, digestion de ceux-ci, puis distribution des rsultats de la raction chimique dans la cellule et enfin expulsion des dchets par exocytose.

        " + + var txt_mitoch = "

        Mitochondrie
        Piles

        "+ + "

        Structure:

        Deux bichouches phospholipidiques appeles membranes mitochondriales, une externe et une interne. La mitochondrie contient des ribosomes, de l'ATP de l'ADN et bien d'autres molcules.

        "+ + "

        Rle:

        Centrale nergtique de la cellule.

        "+ + "

        Fonctionnement:

        L'nergie - sous forme d'ATP (adnosine triphosphate) - est issue de diffrentes tapes de ractions chimique partant d'une molcule de glucose.

        " + + var txt_golgi = "

        Appareil de Golgi
        Usines miniatures

        "+ + "

        Structure:

        Form d'un empilement de saccules membranaires applatis.

        "+ + "

        Rle:

        Modification de certaines protines au cours d'un cheminement au travers de ses saccules.

        "+ + "

        Fonctionnement:

        Suite de ractions chimiques, notamment par glycosilation.

        " + + var txt_rer = "

        Rticulum endoplasmique rugueux - Tunnel

        "+ + "

        Structure:

        Compos d'une bicouche phospholipidique piquete de ribosomes (d'un aspect rugueux) dlimitant la lumire, un espace interne pouvant tre compar un tunnel.

        "+ + "

        Rle:

        Plus spcialis que le REL, il participe au transport et la finalisation des protines, qui sont synthtises par les ribosomes.

        "+ + '

        Fonctionnement:

        Les protines "tombent" dans la lumire du RER o elles sont modifies et dplaces. Elles quittent le RER dans une vsucule issue de la membrane de ce dernier.

        ' + + var txt_noy = "

        Noyau - Le coffre-fort

        "+ + "

        Structure:

        Entour par une double membrane appele enveloppe nuclaire en lien par endroits avec le RER. Ces deux membranes fusionnent intervalles rguliers pour former les pores nuclaires. l'intrieur se trouvent le nuclole et l'ADN, sous forme de chromatine ou de chomosomes.

        "+ + "

        Rle:

        Stockage de la totalit des informations gntiques ncessaires la vie de la cellule.

        "+ + "

        Fonctionnement:

        Site de la transcription (copie de l'information gntique sur des ARNm).

        " + + var txt_rel = "

        Rticulum endoplasmique lisse - REL

        "+ + "

        Structure:

        Similaires celle du RER, la diffrence que sa membranne n'est pas parseme de ribosomes, d'o son aspect lisse.

        "+ + "

        Rle:

        Sinthse des phospholipides,stockage du calcium, transformation de certaines molcules extrieures (mdicament, alcool, ...). Dans certaines cellules, le REL remplit aussi des fonctions supplmentaires, telles la production d'hormones, d'acides gastriques, etc.

        "+ + "

        Fonctionnement:

        Il est le sige de beaucoup de ractions chimiques complexes (ex: dtoxification, diffrentes synthses).

        " + + var txt_adn = "

        ADN - Le livre de la vie

        "+ + "

        Structure:

        chelle la clbre forme de double hlice compose de deux colonnes sucre-phosphate-sucre-phosphate-... et dont les chelons sont apells bases azotes.

        "+ + "

        Rle:

        L'ADN contient toutes les informations ncessaires la vie.

        "+ + "

        Fonctionnement:

        Toutes les informations sont crites l'aide des quatre lettres A, T, G, et C. Grce ces combinaisons, il est possible d'crire tout ce qui est utile la cellule.

        " + + var txt_centr= "

        Centrioles - Remorqueurs de choromosomes

        "+ + "

        Structure:

        Neuf triplets de microtubules entours par un certain nombre de protines.

        "+ + "

        Rle:

        Sparer les diffrents chromosomes durant la division cellulaire.

        "+ + "

        Fonctionnement:

        Les centrioles, une fois placs aux deux ples de la cellule, dploient des microtubules vers les centromres des chromosomes et les tirent vers eux pour les sparer.

        " + + var txt_rib = "

        Ribosome - Dcodeurs

        "+ + "

        Structure:

        Form par deux sous-units composes d'ARN ribosomique et de protines.

        "+ + "

        Rle:

        Le ribosome synthtise les protines.

        "+ + "

        Fonctionnement:

        Un brin d'ARNm (messager) passe dans le ribosome et un ARNt (de transfert) entre dans la grande sous-unit si son codon (groupe de trois bases azotes) correspond celui qui est en face sur l'ARNm. Cet ARNt porte avec lui un acide amin spcifique qui est ajout la chaine dja assemble.

        " + + var txt_arn = "

        ARN - Multifonction

        "+ + "

        Structure:

        Trs similaire l'ADN la diffrence qu'il ne possde qu'un brin et que la thymine (T) de l'ADN est remplace par l'uracile (U). De plus, il est chimiquement plus instable que l'ADN, c'est pourquoi il n'est pas utilis pour le stockage d'informations long terme.

        "+ + "

        Rle:

        Multiples, il existe des ARN de transport, messagers, rgulateus, guides, satellites, ...

        "+ + "

        Fonctionnement:

        La copie d'informations gntiques se fait grce l'ouverture de la double-hlice d'ADN, puis la copie des codons sur l'ARN. Celui-ci peut alors sortir du noyau, ce que l'ADN ne peut pas faire.

        " + + var txt_nucl = "

        Nuclole - Fabrique d'ARN

        "+ + "

        Structure:

        Compos d'aucune membranne, c'est un agglomrat de protines et d'ARN.

        "+ + "

        Rle:

        Lieu de la transcription d'ARN, nottament d'ARNr (ribosomiques) qui, associs avec des protines, vont former les deux sous-units des ribosomes.

        "+ + "

        Fonctionnement:

        Cration d'un ribosome: Transcription des ARNr ainsi que des protines ncessaires (cette tape est effectue dans le cytoplasme par d'autres ribosomes) qui rentrent dans le noyau, association des molcules frachement formes en un nouveau ribosome, qui sort du noyau pour jouer son rle.

        " + + \ No newline at end of file diff --git a/resources/library/applications/iCell.wgt/readme.txt b/resources/library/applications/iCell.wgt/readme.txt new file mode 100644 index 0000000..7c426c8 --- /dev/null +++ b/resources/library/applications/iCell.wgt/readme.txt @@ -0,0 +1,31 @@ +------------------------------------------------------------------------- +-------- iCell par Sidney Bovet --------- +------------------------------------------------------------------------- + +Dmarche pour accder au widget depuis Uniboard 4 +(impossible depuis les versions ultrieures): + + + - Copier/Coller le dossier 'Cellule.wgt' dans le dossier + \Uniboard 4\library\interactive\Cellule.wgt + + - Depuis Uniboard 4: cliquez sur 'Bibliothque' puis, sous + l'onglet interactif, glissez l'icone du widget sur la page + + + +Licence: + +Ce travail est mis disposition sous une licence CreativeCommons BY-NC-SA. + +Ceci implique que vous tes libre de copier, de distribuer et/ou de modifier ce travail votre guise, sous les conditions suivantes: + +- Ce travail ne peut en aucun cas tre utilis dans un cadre commercial + +- Si vous transformez ce travail ou en crez un ayant celui-ci pour base, vous tes tenu de diffuser le rsultat sous la mme licence que iCell + +- De plus, au dbut ou la fin du nouveau travail doit figurer le nom de l'auteur originel ainsi que les sources qu'il a lui-mme cit + +------------------------------------------------------------------------- +-------- GYB - 2010 --------- +------------------------------------------------------------------------- \ No newline at end of file diff --git a/resources/library/applications/iCell.wgt/style/style.css b/resources/library/applications/iCell.wgt/style/style.css new file mode 100644 index 0000000..4395a02 --- /dev/null +++ b/resources/library/applications/iCell.wgt/style/style.css @@ -0,0 +1,80 @@ + body { + font-family: "Times New Roman"; + font-size: 16px; + } + + img { + border:none; + } + + #div_body { + position:absolute; + top:0px; + left:0px; + opacity:1; + } + + #div_organite { + position:absolute; + top:0px; + left:0px; + opacity:0; + z-index:-1; + } + + #div_infos { + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + + background-color:#7FC6BC; + border:1px solid #575757; + + width:350px; + height:400px; + + position:absolute; + top:40px; + left:75px; + padding:7px; + + opacity:0; + z-index:-1; + } + + #div_infos p:first-letter { /*premire lettre de chaque paragraphe (pour faire la tabulation dans les infos de l'organite)*/ + padding-left: 10px; + } + + #div_infos h4 { + margin: 5px 10px 0px 5px; + } + + #div_infos p{ + margin-top: 2px; + } + + #div_infos h2{ + margin: 2px 2px 2px 2px; + } + + #div_aura{ + position: absolute; + top: 0px; + left: 0px; + } + + #div_ADN{ + position:absolute; + top: 0px; + left: 0px; + z-index: -1; + } + + #div_zoom{ + position: absolute; + top:25px; + left: 25px; + z-index: -4; + } \ No newline at end of file diff --git a/resources/library/applications/iCell.wgt/widget.html b/resources/library/applications/iCell.wgt/widget.html new file mode 100644 index 0000000..44a9af5 --- /dev/null +++ b/resources/library/applications/iCell.wgt/widget.html @@ -0,0 +1,95 @@ + + + + + + + + + +iCell + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        +

        [Texte descriptif de l'organite selectionnee]

        +
        +
        +
        + + + + diff --git a/resources/library/audios/Sonata para piano.mp3 b/resources/library/audios/Sonata para piano.mp3 new file mode 100644 index 0000000..2d30433 Binary files /dev/null and b/resources/library/audios/Sonata para piano.mp3 differ diff --git a/resources/library/interactivities/Ass audio.wgt/config.xml b/resources/library/interactivities/Ass audio.wgt/config.xml new file mode 100644 index 0000000..8dc1299 --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/config.xml @@ -0,0 +1,17 @@ + + + Notes + Mnemis SA + Associer images + + + diff --git a/resources/library/interactivities/Ass audio.wgt/css/basic.css b/resources/library/interactivities/Ass audio.wgt/css/basic.css new file mode 100644 index 0000000..2ac889d --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/css/basic.css @@ -0,0 +1,470 @@ +html, body{ + width: 100%; + height: 100%; + margin: 0; + padding: 0; + border-radius: 35px; + overflow: hidden; + font-family: sans-serif; +} + +body{ + background-image: url(../img/bg.png); +} + +.toggle_mode{ + width: 100%; + height: 25px; + border-bottom: 1px solid black; + background-color: #ccc; + position: fixed; + top: 0; + left: 0; + z-index: 2; +} + +#display_img, #edit_img{ + width: 15px; + height: 15px; + margin: 5px 10px; +} + +#display_text, #edit_text{ + height: 19px; + padding: 3px 0 0 0; +} + +.selected{ + +} + +#display:hover, #edit:hover{ + background-color: #999; +} + +.cont{ + width: 100%; + border-bottom: 1px solid black; + margin: 0; + padding: 0; + position: relative; +} + +.sub_cont{ + width: 100%; + padding: 0; + margin: 20px 0 0 0; + min-height: 60px; +} + +.imgs_cont{ + width: 100%; + min-height: 142px; + margin: 0; +} + +.imgs_answers{ + width: 162px; + margin: 0 auto; + margin-bottom: 10px; + min-height: 142px; + border: 2px dashed #ccc; + text-align: center; +} + +.imgs_answers_gray{ + +} + +.imgs_answers_green{ + background-color: #9f9; +} + +.imgs_answers_red{ + background-color: #f99; +} + +.number_cont{ + width: 40px; + height: 33px; + margin-left: 40px; + margin-right: 10px; + background-image: url(../img/circle.png); + background-repeat: no-repeat; + text-align: center; + float: left; + font-size: 130%; + padding-top: 7px; + font-weight: bold; +} + +.text_cont{ + width: 80%; + min-height: 40px; + max-height: 60px; + float: right; + background-color: #999; + border-top-left-radius: 20px; + border-bottom-left-radius: 20px; +} + +.close_cont{ + width: 20px; + height: 20px; + background-image: url(../img/close_cont.png); + cursor: pointer; + position: absolute; + top: -15px; + left: 5px; +} + +.add_img{ + width: 120px; + height: 120px; + margin: 10px 20px; + background-image: url(../img/add_img.png); + background-position: center; + background-repeat: no-repeat; + cursor: pointer; + display: inline-block; +} + +.img_block{ + width: 120px; + height: 120px; + margin: 10px 20px; + cursor: pointer; + display: inline-block; + position: relative; +} + +.img_gray{ + border: 1px solid #ccc; + -moz-box-shadow: #ccc -1px 0 4px; + -webkit-box-shadow: #ccc -1px 0 4px; + box-shadow: #ccc -1px 0 4px; +} + +.close_img, .true_img, .false_img{ + width: 30px; + height: 30px; + background-repeat: no-repeat; + position: absolute; + right: -15px; + cursor: pointer; +} + +.close_img{ + background-image: url(../img/close_img.png); + top: -15px; +} + +.true_img{ + background-image: url(../img/false.png); + top: 15px; +} + +.false_img{ + background-image: url(../img/true.png); + top: 15px; +} + +.add_block{ + margin: 20px 0 0 20px; + width: 110px; + height: 25px; + background-image: url(../img/add_block.png); + background-repeat: no-repeat; + padding-left: 40px; + padding-top: 5px; + cursor: pointer; + background-color: #ccc; + -webkit-border-radius: 15px; + border-radius: 15px; +} + +.dropHere{ + background-color: #ccc; +} + +.dropBack{ + +} + +.audio_block{ + width: 120px; + height: 30px; + padding: 5px 0 5px 10px; + float: left; + border-right: 3px solid white; +} + +.audio_gray{ + border-top-left-radius: 15px; + border-bottom-left-radius: 15px; + background-color: white; +} + +.audio_desc{ + width: 70%; + max-height: 40px; + overflow-x: hidden; + float: right; + word-break: break-all; +} + +.play, .stop{ + height: 30px; + width: 70px; + float: left; + cursor: pointer; +} + +.play{ + background-image: url(../img/play.png); +} + +.stop{ + background-image: url(../img/stop.png); +} + +.replay{ + height: 30px; + width: 32px; + margin-left: 10px; + float: left; + background-image: url(../img/replay.png); + background-repeat: no-repeat; + cursor: pointer; +} + +.gray{ + background-color: #ccc; +} + +/*new design*/ + +.body_table{ + width: 100%; + height: 100%; + border-spacing: 0; +} + +/*top*/ + +.b_top_left{ + width: 54px; + background-image: url(../img/top_left.png); + background-repeat: no-repeat; +} + +.b_top_right{ + width: 54px; + background-image: url(../img/top_right.png); + background-repeat: no-repeat; +} + +.b_top_center{ + height: 54px; + background-image: url(../img/top.png); + background-repeat: repeat-x; +} + +/*bottom*/ + +.b_bottom_left{ + width: 54px; + background-image: url(../img/bottom_left.png); + background-repeat: no-repeat; +} + +.b_bottom_right{ + width: 54px; + background-image: url(../img/bottom_right.png); + background-repeat: no-repeat; +} + +.b_bottom_center{ + background-image: url(../img/bottom.png); + background-repeat: repeat-x; +} + +/*center*/ + +.b_center_left{ + width: 54px; + background-image: url(../img/left.png); + background-repeat: repeat-y; +} + +.b_center_right{ + width: 54px; + background-image: url(../img/right.png); + background-repeat: repeat-y; +} + +#data{ + width: 100%; + height: 100%; + min-height: 250px; + overflow: auto; +} + +#wgt_name{ + height: 44px; + margin: 10px 10px 0 10px; + padding: 0; + float: left; + font-family: sans-serif; + font-size: 24px; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; +} + +#wgt_reload, #wgt_edit, #wgt_display, #wgt_help{ + cursor: pointer; + margin: 10px 10px 0 0; + float: right; + font-family: sans-serif; + font-size: 24px; + line-height: 32px; +} + +#wgt_display{ + padding-left: 35px; + background: url(../img/toolbar-edit.png) left -32px no-repeat; + color: white; + display: none; +} + +#wgt_edit{ + padding-left: 35px; + background: url(../img/slate-toolbar-edit.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; +} + +#wgt_reload{ + padding-left: 35px; + background: url(../img/slate-toolbar-reload.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; +} + +.btl_pad{ + background-image: url(../img/pad-top-left.png) !important; +} + +.btc_pad{ + background-image: url(../img/pad-top.png) !important; +} + +.btr_pad{ + background-image: url(../img/pad-top-right.png) !important; +} + +.bcl_pad{ + background-image: url(../img/pad-left.png) !important; +} + +.bcr_pad{ + background-image: url(../img/pad-right.png) !important; +} + +.bbl_pad{ + background-image: url(../img/pad-bottom-left.png) !important; +} + +.bbc_pad{ + background-image: url(../img/pad-bottom.png) !important; +} + +.bbr_pad{ + background-image: url(../img/pad-bottom-right.png) !important; +} + +.without_radius{ + border-radius: 0 !important; +} + +.without_back{ + background: none !important; +} + +.pad_color{ + color: #FC9 !important; + text-shadow: none !important; +} + +.pad_reload{ + background: url(../img/toolbar-reload.png) left top no-repeat !important; +} + +.pad_edit{ + background: url(../img/toolbar-edit.png) left top no-repeat !important; +} + +.pad_help{ + background: url(../img/toolbar-help.png) left top no-repeat !important; +} + +.help_wood{ + background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important; + color: white !important; + text-shadow: #7F613F 0 -1px 0 !important; +} + +.help_pad{ + background: url(../img/toolbar-help.png) left -32px no-repeat !important; + color: white !important; +} + +#wgt_help{ + padding-left: 35px; + background: url(../img/slate-toolbar-help.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; +} + +#help{ + height: 100%; + overflow: auto; + display: none; + background-color: #ccc; + padding: 5px; +} + +.open{ + +} + +#parameters{ + display: none; + padding: 10px 20px; + background: url("../img/parameters-bg.png"); + border-radius: 4px 4px 0 0; +} + +.inline{ + display: inline-block; + font-family: sans-serif; + font-size: 14px; + color: #666; +} + +#parameters label { + font-style: italic; +} + +#style_select{ + margin-left: 10px; +} + +.display_wood{ + background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important; + text-shadow: #7F613F 0 -1px 0; +} + +.radius_ft{ + border-radius: 45px !important; +} \ No newline at end of file diff --git a/resources/library/interactivities/Ass audio.wgt/icon.svg b/resources/library/interactivities/Ass audio.wgt/icon.svg new file mode 100644 index 0000000..9c2fda1 --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/icon.svg @@ -0,0 +1,226 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/library/interactivities/Ass audio.wgt/img/add_block.png b/resources/library/interactivities/Ass audio.wgt/img/add_block.png new file mode 100644 index 0000000..50f9540 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/add_block.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/add_img.png b/resources/library/interactivities/Ass audio.wgt/img/add_img.png new file mode 100644 index 0000000..e678875 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/add_img.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/ar_down.png b/resources/library/interactivities/Ass audio.wgt/img/ar_down.png new file mode 100644 index 0000000..a20fab4 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/ar_down.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/ar_down_white.png b/resources/library/interactivities/Ass audio.wgt/img/ar_down_white.png new file mode 100644 index 0000000..4a1d133 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/ar_down_white.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/bg.png b/resources/library/interactivities/Ass audio.wgt/img/bg.png new file mode 100644 index 0000000..61c3c6f Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/bg.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/bottom.png b/resources/library/interactivities/Ass audio.wgt/img/bottom.png new file mode 100644 index 0000000..31e6afd Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/bottom.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/bottom_left.png b/resources/library/interactivities/Ass audio.wgt/img/bottom_left.png new file mode 100644 index 0000000..31d1741 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/bottom_left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/bottom_right.png b/resources/library/interactivities/Ass audio.wgt/img/bottom_right.png new file mode 100644 index 0000000..ec6e186 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/bottom_right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/circle.png b/resources/library/interactivities/Ass audio.wgt/img/circle.png new file mode 100644 index 0000000..4de395a Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/circle.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/close_cont.png b/resources/library/interactivities/Ass audio.wgt/img/close_cont.png new file mode 100644 index 0000000..210b4d6 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/close_cont.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/close_img.png b/resources/library/interactivities/Ass audio.wgt/img/close_img.png new file mode 100644 index 0000000..3f22728 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/close_img.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/drop_img.png b/resources/library/interactivities/Ass audio.wgt/img/drop_img.png new file mode 100644 index 0000000..17024f0 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/drop_img.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/false.png b/resources/library/interactivities/Ass audio.wgt/img/false.png new file mode 100644 index 0000000..6039039 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/false.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/green_point.png b/resources/library/interactivities/Ass audio.wgt/img/green_point.png new file mode 100644 index 0000000..a2a4468 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/green_point.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/left.png b/resources/library/interactivities/Ass audio.wgt/img/left.png new file mode 100644 index 0000000..270652a Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-left.png b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-left.png new file mode 100644 index 0000000..9a2bb34 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-right.png b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-right.png new file mode 100644 index 0000000..82d24c3 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom-right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-bottom.png b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom.png new file mode 100644 index 0000000..4560a69 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-bottom.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-left.png b/resources/library/interactivities/Ass audio.wgt/img/pad-left.png new file mode 100644 index 0000000..60c9fa4 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-right.png b/resources/library/interactivities/Ass audio.wgt/img/pad-right.png new file mode 100644 index 0000000..e31482c Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-top-left.png b/resources/library/interactivities/Ass audio.wgt/img/pad-top-left.png new file mode 100644 index 0000000..ea0d756 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-top-left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-top-right.png b/resources/library/interactivities/Ass audio.wgt/img/pad-top-right.png new file mode 100644 index 0000000..5d22aa6 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-top-right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/pad-top.png b/resources/library/interactivities/Ass audio.wgt/img/pad-top.png new file mode 100644 index 0000000..8dae00d Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/pad-top.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/parameters-bg.png b/resources/library/interactivities/Ass audio.wgt/img/parameters-bg.png new file mode 100644 index 0000000..36f648e Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/parameters-bg.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/play.png b/resources/library/interactivities/Ass audio.wgt/img/play.png new file mode 100644 index 0000000..cdd651a Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/play.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/red_point.png b/resources/library/interactivities/Ass audio.wgt/img/red_point.png new file mode 100644 index 0000000..f6daa19 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/red_point.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/replay.png b/resources/library/interactivities/Ass audio.wgt/img/replay.png new file mode 100644 index 0000000..8d6c192 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/replay.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/right.png b/resources/library/interactivities/Ass audio.wgt/img/right.png new file mode 100644 index 0000000..0dec63b Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-edit.png b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-edit.png new file mode 100644 index 0000000..f3896d0 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-edit.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-help.png b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-help.png new file mode 100644 index 0000000..fb7cdeb Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-help.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-reload.png b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-reload.png new file mode 100644 index 0000000..844169a Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/slate-toolbar-reload.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/stop.png b/resources/library/interactivities/Ass audio.wgt/img/stop.png new file mode 100644 index 0000000..782c41c Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/stop.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/toolbar-edit.png b/resources/library/interactivities/Ass audio.wgt/img/toolbar-edit.png new file mode 100644 index 0000000..daa338c Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/toolbar-edit.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/toolbar-help.png b/resources/library/interactivities/Ass audio.wgt/img/toolbar-help.png new file mode 100644 index 0000000..6c4454c Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/toolbar-help.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/toolbar-reload.png b/resources/library/interactivities/Ass audio.wgt/img/toolbar-reload.png new file mode 100644 index 0000000..340d737 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/toolbar-reload.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/top.png b/resources/library/interactivities/Ass audio.wgt/img/top.png new file mode 100644 index 0000000..78d6ac4 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/top.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/top_left.png b/resources/library/interactivities/Ass audio.wgt/img/top_left.png new file mode 100644 index 0000000..8280ab4 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/top_left.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/top_right.png b/resources/library/interactivities/Ass audio.wgt/img/top_right.png new file mode 100644 index 0000000..fe0286d Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/top_right.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/img/true.png b/resources/library/interactivities/Ass audio.wgt/img/true.png new file mode 100644 index 0000000..da01631 Binary files /dev/null and b/resources/library/interactivities/Ass audio.wgt/img/true.png differ diff --git a/resources/library/interactivities/Ass audio.wgt/index.html b/resources/library/interactivities/Ass audio.wgt/index.html new file mode 100644 index 0000000..67a98ea --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/index.html @@ -0,0 +1,32 @@ + + + + D'n'd + + + + + + + + diff --git a/resources/library/interactivities/Ass audio.wgt/js/jquery-1.6.2.min.js b/resources/library/interactivities/Ass audio.wgt/js/jquery-1.6.2.min.js new file mode 100644 index 0000000..48590ec --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/js/jquery-1.6.2.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
        a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
        ",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
        t
        ",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

        ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
        ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/",""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div
        ","
        "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
        ").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
        ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/resources/library/interactivities/Ass audio.wgt/js/jquery-ui-1.8.9.custom.min.js b/resources/library/interactivities/Ass audio.wgt/js/jquery-ui-1.8.9.custom.min.js new file mode 100644 index 0000000..45cc274 --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/js/jquery-ui-1.8.9.custom.min.js @@ -0,0 +1,781 @@ +/*! + * jQuery UI 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.9",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a); +return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent", +true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, +left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= +k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= +m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= +d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= +a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), +g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&& +this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"? +0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"), +10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor== +Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop(): +f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY; +if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/ +b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left
        ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})}, +stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!= +document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= +i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f
        ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; +f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top= +a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, +k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ +a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable, +{version:"1.8.9"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize, +function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n= +(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition= +false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left- +a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize", +b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top", +"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset, +f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left= +a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+ +a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&& +e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative", +height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width= +d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
        ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= +c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, +{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); +if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, +c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length- +1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null}); +this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&& +a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h= +d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)}); +return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g= +d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top= +e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; +if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder); +c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length=== +1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top< +this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0], +this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out", +g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", +function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("").addClass("ui-icon "+ +a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), +e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| +e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", +tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.9",animations:{slide:function(a,b){a= +c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1], +unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide", +paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(d){d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){f=false;var e=d.ui.keyCode; +switch(c.keyCode){case e.PAGE_UP:a._move("previousPage",c);break;case e.PAGE_DOWN:a._move("nextPage",c);break;case e.UP:a._move("previous",c);c.preventDefault();break;case e.DOWN:a._move("next",c);c.preventDefault();break;case e.ENTER:case e.NUMPAD_ENTER:if(a.menu.active){f=true;c.preventDefault()}case e.TAB:if(!a.menu.active)return;a.menu.select(c);break;case e.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem= +null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(f){f=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("
          ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo|| +"body",b)[0]).mousedown(function(c){var e=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(g){g.target!==a.element[0]&&g.target!==e&&!d.ui.contains(e,g.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,e){e=e.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:e})&&/^key/.test(c.originalEvent.type)&&a.element.val(e.value)},selected:function(c,e){var g=e.item.data("item.autocomplete"), +h=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=h;setTimeout(function(){a.previous=h;a.selectedItem=g},1)}false!==a._trigger("select",c,{item:g})&&a.element.val(g.value);a.term=a.element.val();a.close(c);a.selectedItem=g},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,f;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,e){e(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source=== +"string"){f=this.options.source;this.source=function(c,e){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:f,data:c,dataType:"json",success:function(g,h,i){i===a.xhr&&e(g);a.xhr=null},error:function(g){g===a.xhr&&e([]);a.xhr=null}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b); +else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var f=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return f.test(c.label||c.value||c)})}})})(jQuery); +(function(d){d.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(d(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(b){a.activate(b,d(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var f=b.offset().top-this.element.offset().top,c=this.element.attr("scrollTop"),e=this.element.height();if(f<0)this.element.attr("scrollTop",c+f);else f>=e&&this.element.attr("scrollTop",c+f-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,f){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0); +a.length?this.activate(f,a):this.activate(f,this.element.children(b))}else this.activate(f,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(".ui-menu-item:first"));else{var b=this.active.offset().top,f=this.element.height(),c=this.element.children(".ui-menu-item").filter(function(){var e=d(this).offset().top-b-f+d(this).height();return e<10&&e>-10});c.length||(c=this.element.children(".ui-menu-item:last"));this.activate(a, +c)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(".ui-menu-item:last"));else{var b=this.active.offset().top,f=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-b+f-d(this).height();return c<10&&c>-10});result.length||(result=this.element.children(".ui-menu-item:first")); +this.activate(a,result)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary"); +this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&& +c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
          ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
          ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose= +b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&& +a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index"); +isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ); +d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}}); +c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
          ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
          ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f, +h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g= +d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize, +position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f, +h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length=== +1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in +l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled"); +break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e= +this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&& +this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.9",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length=== +0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("
          ");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); +if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur(); +else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= +false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h=== +b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b, +g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a; +if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value= +this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate); +if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.9"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
          ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
        • #{label}
        • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= +-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, +"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.9"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]== +null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.9"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase(); +f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
          ')}}, +_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& +b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== +""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, +c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), +true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{}); +b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); +this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", +this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs, +function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null: +f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true}, +_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos= +d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b, +c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&& +d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", +function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!= +-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a, +"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]}, +_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e- +g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]? +b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear= +false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay= +d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); +else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b= +a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort, +g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", +RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= +a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), +b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= +this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
          '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
          ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z= +this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]- +1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
          '+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'
          ';var A=j?'":"";for(t=0;t<7;t++){var q= +(t+h)%7;A+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=A+"";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O";var P=!j?"":'";for(t=0;t<7;t++){var F= +p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&qo;P+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+= +P+""}g++;if(g>11){g=0;m++}x+="
          '+this._get(a,"weekHeader")+"
          '+this._get(a,"calculateWeek")(q)+""+(B&&!v?" ":J?''+q.getDate()+"":''+q.getDate()+"")+"
          "+(l?""+(i[0]>0&&D==i[1]-1?'
          ':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
          ', +o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&& +l)?" ":""));a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";if(d.browser.mozilla)k+='";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
          ";return k},_adjustInstDate:function(a,b,c){var e= +a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, +"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); +c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= +function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b)); +return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.9";window["DP_jQuery_"+y]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
          ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.9"})})(jQuery); +;/* + * jQuery UI Effects 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, +d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0]; +h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c, +a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.9",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", +border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c); +return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments); +else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c), +b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c, +a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c, +a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a== +e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], +10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; \ No newline at end of file diff --git a/resources/library/interactivities/Ass audio.wgt/js/script.js b/resources/library/interactivities/Ass audio.wgt/js/script.js new file mode 100644 index 0000000..2c1849d --- /dev/null +++ b/resources/library/interactivities/Ass audio.wgt/js/script.js @@ -0,0 +1,923 @@ +var sankoreLang = { + display: "Display", + edit: "Edit", + short_desc: "How many signals do you hear?", + add: "Add new block", + enter: "Enter your instruction here ...", + wgt_name: "Associate to the audio", + reload: "Reload", + slate: "slate", + pad: "pad", + none: "none", + help: "Help", + help_content: +"

          Associate to the audio

          " + +"

          Match a picture to a sound

          " + +"

          Drag and drop the image in the correct area. If the result is incorrect, the area turns in red. If the result is correct, the area turns in green.

          "+ +"

          Reload “button” resets the exercises.

          " + +"

          Enter the “Edit” mode to : " + +"

          • choose the theme of the App : pad, slate, or none (by default : none),
          • " + +"
          • modify an exercise or to create a new one.
          " + + +"

          To create a new exercise :

          " + +"
          • click on “New block”,
          • " + +"
          • insert an instruction the field dragging an audio file from your library,
          • " + +"
          • add picture frames clicking on the “+”," + +"
          • drag an drop pictures from your library," + +"
          • set the correct image of your activity clicking on the submit button “v” on the frame.
          " + +"

          To delete a frame, click on the cross button on the frame.

          " + +"

          To replace an audio file, drag a new one from your library.

          " + +"

          To replace a picture, drag a new one from your library.

          " + + +"

          To delete a whole block, click on the cross on the left.

          " + + +"

          “Display” button comes back to the activity.

          ", + theme: "Theme" +}; + +//main function +function start(){ + + $("#wgt_display").text(sankoreLang.display); + $("#wgt_edit").text(sankoreLang.edit); + $("#wgt_name").text(sankoreLang.wgt_name); + $("#wgt_reload").text(sankoreLang.reload); + $("#wgt_help").text(sankoreLang.help); + $("#help").html(sankoreLang.help_content); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) + + if(window.sankore){ + if(sankore.preference("associer_sound","")){ + var data = jQuery.parseJSON(sankore.preference("associer_sound","")); + importData(data); + } + else + showExample(); + if(sankore.preference("as_snd_style","")){ + changeStyle(sankore.preference("as_snd_style","")); + $("#style_select").val(sankore.preference("as_snd_style","")); + } else + changeStyle("3") + } + else + showExample(); + + //events + if (window.widget) { + window.widget.onleave = function(){ + exportData(); + sankore.setPreference("as_snd_style", $("#style_select").find("option:selected").val()); + } + } + + $("#wgt_help").click(function(){ + var tmp = $(this); + if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") + $("#help").slideUp("100", function(){ + tmp.removeClass("open"); + $("#data").show(); + }); + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); + $("#data").hide(); + $("#help").slideDown("100", function(){ + tmp.addClass("open"); + }); + } + }); + + $("#wgt_reload").click(function(){ + if($("#wgt_display").hasClass("selected")){ + $("#wgt_edit").trigger("click"); + $("#wgt_display").trigger("click"); + } else { + $("#wgt_display").trigger("click"); + } + }); + + $("#wgt_reload, #wgt_display, #wgt_edit").mouseover(function(){ + exportData(); + }); + + $("#style_select").change(function (event){ + changeStyle($(this).find("option:selected").val()); + }) + + $("#wgt_display, #wgt_edit").click(function(event){ + if(this.id == "wgt_display"){ + if(!$(this).hasClass("selected")){ + if(window.sankore) + sankore.enableDropOnWidget(false); + $(this).addClass("selected"); + $("#wgt_edit").removeClass("selected"); + $("#parameters").css("display", "none"); + $(".add_block").remove(); + $(".cont").each(function(){ + var container = $(this); + var tmp_i = 0; + var tmp_array = []; + + container.find(".text_cont .audio_desc").removeAttr("contenteditable"); + container.find(".audio_block").removeAttr("ondragenter") + .removeAttr("ondragleave") + .removeAttr("ondragover") + .removeAttr("ondrop") + container.find(".add_img").remove(); + container.find(".close_cont").remove(); + container.find(".img_block").each(function(){ + if($(this).find("img").attr("src") != "img/drop_img.png"){ + $(this).find(".close_img").remove(); + $(this).find(".true_img").remove(); + $(this).find(".false_img").remove(); + $(this).removeAttr("ondragenter") + .removeAttr("ondragleave") + .removeAttr("ondragover") + .removeAttr("ondrop") + .addClass("img_gray"); + } else + $(this).remove(); + }); + var img_answers = $("
          ").insertAfter(container.find(".sub_cont")); + container.find(".img_block").each(function(){ + $(this).css("float",""); + tmp_array.push($(this)); + }); + tmp_array = shuffle(tmp_array); + for(var i = 0; i"); + var answers = ""; + $(this).parent().find(".imgs_answers .img_block").each(function(){ + answers += $(this).find("input").val(); + }); + if(tmp_cont.children()[0].tagName == "IMG") + tmp_cont.removeClass("imgs_answers_green") + .removeClass("imgs_answers_red") + .addClass("imgs_answers_gray"); + else + if(tmp_cont.children().length == 1){ + if(tmp_cont.children().find("input").val() == "1") + tmp_cont.removeClass("imgs_answers_gray") + .removeClass("imgs_answers_red") + .addClass("imgs_answers_green"); + else + tmp_cont.removeClass("imgs_answers_gray") + .removeClass("imgs_answers_green") + .addClass("imgs_answers_red"); + } + } + } + } + }); + }); + $(this).css("display", "none"); + $("#wgt_edit").css("display", "block"); + } + } else { + if(!$(this).hasClass("selected")){ + if(window.sankore) + sankore.enableDropOnWidget(true); + $(this).addClass("selected"); + $("#wgt_display").removeClass("selected"); + $("#parameters").css("display", "block"); + + $(".cont").each(function(){ + var container = $(this); + container.find(".imgs_answers").find(".img_block").each(function(){ + $(this).appendTo(container.find(".imgs_cont")) + }); + container.find(".imgs_answers").remove(); + $("
          ").appendTo(container); + container.find(".imgs_cont").css("background-color", ""); + container.find(".text_cont .audio_desc").attr("contenteditable","true"); + container.find(".audio_block").attr("ondragenter", "return false;") + .attr("ondragleave", "$(this).removeClass('audio_gray'); return false;") + .attr("ondragover", "$(this).addClass('audio_gray'); return false;") + .attr("ondrop", "$(this).removeClass('audio_gray'); return onDropAudio(this,event);"); + var add_img = $("
          "); + container.find(".img_block").each(function(){ + $(this).draggable("destroy"); + $(this).attr("ondragenter", "return false;") + .attr("ondragleave", "$(this).css(\"background-color\",\"\"); return false;") + .attr("ondragover", "$(this).css(\"background-color\",\"#ccc\"); return false;") + .attr("ondrop", "$(this).css(\"background-color\",\"\"); return onDropTarget(this,event);") + .css("float","left"); + $("
          ").appendTo($(this)); + if($(this).find("input").val() == "1"){ + $("
          ").appendTo($(this)); + } + else{ + $("
          ").appendTo($(this)); + } + }); + container.find(".imgs_cont").append(add_img) + }); + + $("
          " + sankoreLang.add + "
          ").appendTo("#data"); + $(this).css("display", "none"); + $("#wgt_display").css("display", "block"); + } + } + + $("audio").each(function(){ + this.pause(); + $(this).parent().find(":first-child").removeClass("stop").addClass("play"); + }); + + }); + + //add new block + $(".add_block").live("click", function(){ + addContainer(); + }); + + //adding new img + $(".add_img").live("click", function(){ + addImgBlock($(this)); + }); + + //deleting a block + $(".close_cont").live("click",function(){ + $(this).parent().remove(); + refreshBlockNumbers(); + }); + + //deleting the img block + $(".close_img").live("click", function(){ + var i = 0; + var tmp_obj = $(this).parent().parent(); + $(this).parent().remove(); + }); + + //correct image + $(".true_img").live("click",function(){ + $(this).parent().parent().find(".img_block").each(function(){ + $(this).find("input").val(0); + var tmp_div = $(this).find(".false_img"); + if(tmp_div) + tmp_div.removeClass("false_img").addClass("true_img"); + }) + $(this).parent().find("input").val(1); + $(this).removeClass("true_img").addClass("false_img"); + }); + + //wrong image + $(".false_img").live("click",function(){ + $(this).parent().find("input").val(0); + $(this).removeClass("false_img").addClass("true_img"); + }); + + //play/pause event + $(".play, .stop").live("click", function(){ + var tmp_audio = $(this); + var audio = tmp_audio.parent().find("audio").get(0); + if($(this).hasClass("play")){ + if(tmp_audio.parent().find("source").attr("src")){ + tmp_audio.removeClass("play").addClass("stop"); + var id = setInterval(function(){ + if(audio.currentTime == audio.duration){ + clearInterval(id); + tmp_audio.removeClass("stop").addClass("play"); + } + }, 10); + tmp_audio.parent().find("input").val(id); + audio.play(); + } + } else { + $(this).removeClass("stop").addClass("play"); + clearInterval( tmp_audio.parent().find("input").val()) + audio.pause(); + } + }); + + $(".replay").live("click", function(){ + var tmp_audio = $(this).prev(); + var audio = $(this).parent().find("audio").get(0); + if(tmp_audio.parent().find("source").attr("src")){ + $(this).prev().removeClass("play").addClass("stop"); + clearInterval($(this).parent().find("input").val()); + var id = setInterval(function(){ + if(audio.currentTime == audio.duration){ + clearInterval(id); + tmp_audio.removeClass("stop").addClass("play"); + } + }, 10); + tmp_audio.parent().find("input").val(id); + audio.currentTime = 0; + audio.play(); + } + }); +} + +//export +function exportData(){ + var array_to_export = []; + if($("#wgt_edit").hasClass("selected")){ + $(".cont").each(function(){ + var cont_obj = new Object(); + cont_obj.text = $(this).find(".audio_desc").text(); + cont_obj.audio = $(this).find("source").attr("src"); + cont_obj.mode = "edit"; + cont_obj.imgs = []; + $(this).find(".img_block").each(function(){ + var img_obj = new Object(); + img_obj.value = $(this).find("input").val(); + img_obj.link = $(this).find("img").attr("src"); + img_obj.ht = $(this).find("img").height(); + img_obj.wd = $(this).find("img").width(); + cont_obj.imgs.push(img_obj); + }); + array_to_export.push(cont_obj); + }); + } else { + $(".cont").each(function(){ + var cont_obj = new Object(); + cont_obj.text = $(this).find(".audio_desc").text(); + cont_obj.audio = $(this).find("source").attr("src"); + cont_obj.mode = "display"; + cont_obj.imgs = []; + if($(this).find(".imgs_answers").children()[0].tagName == "DIV"){ + var tmp_cont = $(this).find(".imgs_answers").find(".img_block"); + var img_obj = new Object(); + img_obj.value = tmp_cont.find("input").val(); + img_obj.link = tmp_cont.find("img").attr("src"); + img_obj.ht = tmp_cont.find("img").height(); + img_obj.wd = tmp_cont.find("img").width(); + img_obj.cont = "answers"; + cont_obj.imgs.push(img_obj); + } + $(this).find(".imgs_cont .img_block").each(function(){ + var img_obj = new Object(); + img_obj.value = $(this).find("input").val(); + img_obj.link = $(this).find("img").attr("src"); + img_obj.ht = $(this).find("img").height(); + img_obj.wd = $(this).find("img").width(); + img_obj.cont = "cont"; + cont_obj.imgs.push(img_obj); + }); + array_to_export.push(cont_obj); + }); + } + if(window.sankore) + sankore.setPreference("associer_sound", JSON.stringify(array_to_export)); +} + +//import +function importData(data){ + + var tmp = 0; + for(var i in data){ + if(data[i].mode == "edit"){ + var tmp_array = []; + var container = $("
          "); + var sub_container = $("
          ").appendTo(container); + var imgs_answers = $("
          ").appendTo(container); + var imgs_container = $("
          ").appendTo(container); + + var number = $("
          "+ (++tmp) +"
          ").appendTo(sub_container); + var text = $("
          ").appendTo(sub_container); + var audio_block = $("
          ").appendTo(text); + $("
          ").appendTo(audio_block); + $("
          ").appendTo(audio_block); + var source = $("").attr("src", data[i].audio); + var audio = $("