From 625808d17ae9f2147ad2540ceef95ecb39ef6e75 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 26 Nov 2009 04:36:56 +0000 Subject: [PATCH] MINOR Removed wrong sapphire/thirdparty/greybox merge from trunk, needs to be copied from jsparty instead git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@93590 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- thirdparty/greybox/LGPL.txt | 504 -------- thirdparty/greybox/close.gif | Bin 200 -> 0 bytes thirdparty/greybox/greybox.css | 56 - thirdparty/greybox/greybox.js | 147 --- thirdparty/greybox/ie-hacks.css | 6 - thirdparty/greybox/jquery-1.0.2.js | 1923 ---------------------------- thirdparty/greybox/test.html | 98 -- 7 files changed, 2734 deletions(-) delete mode 100644 thirdparty/greybox/LGPL.txt delete mode 100644 thirdparty/greybox/close.gif delete mode 100644 thirdparty/greybox/greybox.css delete mode 100644 thirdparty/greybox/greybox.js delete mode 100644 thirdparty/greybox/ie-hacks.css delete mode 100644 thirdparty/greybox/jquery-1.0.2.js delete mode 100644 thirdparty/greybox/test.html diff --git a/thirdparty/greybox/LGPL.txt b/thirdparty/greybox/LGPL.txt deleted file mode 100644 index 8add30ad5..000000000 --- a/thirdparty/greybox/LGPL.txt +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin St, 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. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -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 and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, 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 library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete 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 distribute a copy of this License along with the -Library. - - 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 Library or any portion -of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -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 Library, 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 Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you 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. - - If distribution of 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 satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be 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. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library 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. - - 9. 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 Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -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 with -this License. - - 11. 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 Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library 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 Library. - -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. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library 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. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser 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 Library -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 Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -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 - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "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 -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. 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 LIBRARY 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 -LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. 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. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/thirdparty/greybox/close.gif b/thirdparty/greybox/close.gif deleted file mode 100644 index 6464f1fc7f6b88cbf037a4f1214f1a474c539d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmZ?wbhEHb3}oPESj524(b4h$|Nk#vzTCcjn*j+Z{$v63bU-9XEdz5e$F4j73{H8j z-fQvtthGdf2A|)9!e?e2IkzYIRvnu>XYD#}<8L`%#bp+nicDbgXw}*2px5ZVbdqJQ z*?PV?2@xjWf)X_SYfM`ipKrO*Q p7aez>uuz+_+TxCovWiGcE4%qxbM+T2aa2}bx^mU(HT;|m)&L^=PJ#dc diff --git a/thirdparty/greybox/greybox.css b/thirdparty/greybox/greybox.css deleted file mode 100644 index f18da1cc7..000000000 --- a/thirdparty/greybox/greybox.css +++ /dev/null @@ -1,56 +0,0 @@ - -html, body { - padding: 0; - margin: 0; - min-height: 100%; - height: 100%; - width: 100%; -} - -#GB_overlay { - position: absolute; - z-index:100; - top: 0px; - left: 0px; - background-color:#000; - filter:alpha(opacity=60); - -moz-opacity: 0.6; - opacity: 0.6; -} - -#GB_window { - top: 50%; - left: 50%; - position: fixed; - background: #fff; - border: 5px solid #aaa; - overflow: auto; - width: 400px; - height: 400px; - z-index: 150; -} - -#GB_frame { - border: 0; - overflow: auto; - width: 100%; - height: 378px; -} - -#GB_caption { - font: 12px bold helvetica, verdana, sans-serif; - color: #fff; - background: #888; - padding: 2px 0 2px 5px; - margin: 0; - text-align: left; -} - -#GB_window img { - position: absolute; - top: 2px; - right: 5px; - cursor: pointer; - cursor: hand; -} - diff --git a/thirdparty/greybox/greybox.js b/thirdparty/greybox/greybox.js deleted file mode 100644 index deea2f0ce..000000000 --- a/thirdparty/greybox/greybox.js +++ /dev/null @@ -1,147 +0,0 @@ -/* Greybox Redux - * Required: http://jquery.com/ - * Written by: John Resig - * Reworked by: Benjamin Yu (http://foofiles.com/, http://badpopcorn.com/) - * Based on code by: 4mir Salihefendic (http://amix.dk) - * License: LGPL (read more in LGPL.txt) - * - * @name Greybox - * @cat Plugins/Greybox - */ - -/* - Defaults, all configurable via options: - { - close_img: "close.gif", - height: 400, - width: 400, - animation: false, - overlay_clickable: true, - overflow: "auto", - callback: null, - caption: "" - } -*/ -(function() { - var settings = {}; - - GB_getPageScrollTop = function(){ - var yScrolltop; - var xScrollleft; - if (self.pageYOffset || self.pageXOffset) { - yScrolltop = self.pageYOffset; - xScrollleft = self.pageXOffset; - } else if(document.documentElement&& document.documentElement.scrollTop - || document.documentElement.scrollLeft ){ // Explorer 6 Strict - yScrolltop = document.documentElement.scrollTop; - xScrollleft = document.documentElement.scrollLeft; - } else if (document.body) {// all other Explorers - yScrolltop = document.body.scrollTop; - xScrollleft = document.body.scrollLeft; - } - arrayPageScroll = new Array(xScrollleft,yScrolltop); - return arrayPageScroll; - } - - GB_overlay_size = function() { - try { - if(window.innerHeight && window.scrollMaxY - || window.innerWidth && window.scrollMaxX) { - h = window.innerHeight + window.scrollMaxY; - w = window.innerWidth + window.scrollMaxX; - var deff = document.documentElement; - var wff = (deff&&deff.clientWidth) - || document.body.clientWidth || window.innerWidth || self.innerWidth; - var hff = (deff&&deff.clientHeight) || document.body.clientHeight - || window.innerHeight || self.innerHeight; - w -= (window.innerWidth - wff); - h -= (window.innerHeight - hff); - } else if(document.body.scrollHeight > document.body.offsetHeight - || document.body.scrollWidth > document.body.offsetWidth) { - // all but Explorer Mac - h = document.body.scrollHeight; - w = document.body.scrollWidth; - } else { - // Explorer Mac.would also work in Explorer 6 Strict, Mozilla and Safari - var left_top = GB_getPageScrollTop(); - h = left_top[1] + settings.height; - w = left_top[0] + settings.width; - if( h < document.body.offsetHeight) { - h = document.body.offsetHeight; - } - if( w < document.body.offsetWidth) { - w = document.body.offsetWidth; - } - } - } catch(err) { - w = jQuery(document.body).width(); - h = jQuery(document.body).height(); - } - jQuery("#GB_overlay").css({"height":h+"px", "width":w +"px"}); - } - - GB_position = function() { - var boxWidth = settings.width; - var boxHeight = settings.height; - jQuery('#GB_window').css({ - marginLeft: '-' + parseInt(boxWidth / 2) + 'px', - width: boxWidth + 'px', - height: settings.height+"px" - }); - if( !(jQuery.browser.msie && typeof(XMLHttpRequest) == 'function')) { - // take away IE6 - jQuery('#GB_window').css({marginTop: '-' + parseInt(boxHeight / 2)+'px'}); - } - jQuery("#GB_frame").css("height",settings.height - 32 +"px"); - } - - jQuery.GB_hide = function() { - jQuery("#GB_window,#GB_overlay").remove(); - if(settings.callback && typeof(settings.callback) == 'function') { - settings.callback.apply(); - } - } - - jQuery.GB_show = function(url, options) { - settings = jQuery.extend({ - close_img: "close.gif", - height: 400, - width: 400, - animation: false, - overlay_clickable: true, - overflow: "auto", - callback: null, - caption: "" - }, options || {}); - - jQuery(document.body) - .append( - "
" + - "
" + - "Close window
"); - jQuery("#GB_window img").click(jQuery.GB_hide); - if(settings.overlay_clickable) { - jQuery("#GB_overlay").click(jQuery.GB_hide); - } - - jQuery("#GB_window") - .append(""); - jQuery("#GB_frame").overflow(settings.overflow); - - jQuery("#GB_caption").html(settings.caption); - - GB_overlay_size(); - jQuery(window).resize(GB_overlay_size); - jQuery(window).scroll(GB_overlay_size); - jQuery("#GB_overlay").show(); - - GB_position(); - - if(settings.animation) { - jQuery("#GB_window").slideDown("slow"); - } else { - jQuery("#GB_window").show(); - } - } - -})(); diff --git a/thirdparty/greybox/ie-hacks.css b/thirdparty/greybox/ie-hacks.css deleted file mode 100644 index ea6c1d74f..000000000 --- a/thirdparty/greybox/ie-hacks.css +++ /dev/null @@ -1,6 +0,0 @@ -#GB_window { - position: absolute; - margin-top: expression(0 - parseInt(this.offsetHeight / 2) + - (boxMargin = document.documentElement && - document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} diff --git a/thirdparty/greybox/jquery-1.0.2.js b/thirdparty/greybox/jquery-1.0.2.js deleted file mode 100644 index d6d3fd905..000000000 --- a/thirdparty/greybox/jquery-1.0.2.js +++ /dev/null @@ -1,1923 +0,0 @@ -/* prevent execution of jQuery if included more then once */ -if(typeof window.jQuery == "undefined") { -/* - * jQuery 1.0.2 - New Wave Javascript - * - * Copyright (c) 2006 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2006-10-09 20:23:18 -0400 (Mon, 09 Oct 2006) $ - * $Rev: 413 $ - */ - -// Global undefined variable -window.undefined = window.undefined; -jQuery = function(a,c) { - - // Shortcut for document ready (because $(document).each() is silly) - if ( a && typeof a == "function" && jQuery.fn.ready ) - return jQuery(document).ready(a); - - // Make sure that a selection was provided - a = a || jQuery.context || document; - - // Watch for when a jQuery object is passed as the selector - if ( a.jquery ) - return jQuery( jQuery.merge( a, [] ) ); - - // Watch for when a jQuery object is passed at the context - if ( c && c.jquery ) - return jQuery( c ).find(a); - - // If the context is global, return a new object - if ( window == this ) - return new jQuery(a,c); - - // Handle HTML strings - var m = /^[^<]*(<.+>)[^>]*$/.exec(a); - if ( m ) a = jQuery.clean( [ m[1] ] ); - - // Watch for when an array is passed in - this.get( a.constructor == Array || a.length && !a.nodeType && a[0] != undefined && a[0].nodeType ? - // Assume that it is an array of DOM Elements - jQuery.merge( a, [] ) : - - // Find the matching elements and save them for later - jQuery.find( a, c ) ); - - // See if an extra function was provided - var fn = arguments[ arguments.length - 1 ]; - - // If so, execute it in context - if ( fn && typeof fn == "function" ) - this.each(fn); -}; - -// Map over the $ in case of overwrite -if ( typeof $ != "undefined" ) - jQuery._$ = $; - -// Map the jQuery namespace to the '$' one -var $ = jQuery; - -jQuery.fn = jQuery.prototype = { - jquery: "1.0.2", - - size: function() { - return this.length; - }, - - get: function( num ) { - // Watch for when an array (of elements) is passed in - if ( num && num.constructor == Array ) { - - // Use a tricky hack to make the jQuery object - // look and feel like an array - this.length = 0; - [].push.apply( this, num ); - - return this; - } else - return num == undefined ? - - // Return a 'clean' array - jQuery.merge( this, [] ) : - - // Return just the object - this[num]; - }, - each: function( fn, args ) { - return jQuery.each( this, fn, args ); - }, - index: function( obj ) { - var pos = -1; - this.each(function(i){ - if ( this == obj ) pos = i; - }); - return pos; - }, - - attr: function( key, value, type ) { - // Check to see if we're setting style values - return key.constructor != String || value != undefined ? - this.each(function(){ - // See if we're setting a hash of styles - if ( value == undefined ) - // Set all the styles - for ( var prop in key ) - jQuery.attr( - type ? this.style : this, - prop, key[prop] - ); - - // See if we're setting a single key/value style - else - jQuery.attr( - type ? this.style : this, - key, value - ); - }) : - - // Look for the case where we're accessing a style value - jQuery[ type || "attr" ]( this[0], key ); - }, - - css: function( key, value ) { - return this.attr( key, value, "curCSS" ); - }, - text: function(e) { - e = e || this; - var t = ""; - for ( var j = 0; j < e.length; j++ ) { - var r = e[j].childNodes; - for ( var i = 0; i < r.length; i++ ) - if ( r[i].nodeType != 8 ) - t += r[i].nodeType != 1 ? - r[i].nodeValue : jQuery.fn.text([ r[i] ]); - } - return t; - }, - - wrap: function() { - // The elements to wrap the target around - var a = jQuery.clean(arguments); - - // Wrap each of the matched elements individually - return this.each(function(){ - // Clone the structure that we're using to wrap - var b = a[0].cloneNode(true); - - // Insert it before the element to be wrapped - this.parentNode.insertBefore( b, this ); - - // Find the deepest point in the wrap structure - while ( b.firstChild ) - b = b.firstChild; - - // Move the matched element to within the wrap structure - b.appendChild( this ); - }); - }, - - append: function() { - return this.domManip(arguments, true, 1, function(a){ - this.appendChild( a ); - }); - }, - - prepend: function() { - return this.domManip(arguments, true, -1, function(a){ - this.insertBefore( a, this.firstChild ); - }); - }, - - before: function() { - return this.domManip(arguments, false, 1, function(a){ - this.parentNode.insertBefore( a, this ); - }); - }, - - after: function() { - return this.domManip(arguments, false, -1, function(a){ - this.parentNode.insertBefore( a, this.nextSibling ); - }); - }, - end: function() { - return this.get( this.stack.pop() ); - }, - find: function(t) { - return this.pushStack( jQuery.map( this, function(a){ - return jQuery.find(t,a); - }), arguments ); - }, - clone: function(deep) { - return this.pushStack( jQuery.map( this, function(a){ - return a.cloneNode( deep != undefined ? deep : true ); - }), arguments ); - }, - - filter: function(t) { - return this.pushStack( - t.constructor == Array && - jQuery.map(this,function(a){ - for ( var i = 0; i < t.length; i++ ) - if ( jQuery.filter(t[i],[a]).r.length ) - return a; - }) || - - t.constructor == Boolean && - ( t ? this.get() : [] ) || - - typeof t == "function" && - jQuery.grep( this, t ) || - - jQuery.filter(t,this).r, arguments ); - }, - - not: function(t) { - return this.pushStack( t.constructor == String ? - jQuery.filter(t,this,false).r : - jQuery.grep(this,function(a){ return a != t; }), arguments ); - }, - - add: function(t) { - return this.pushStack( jQuery.merge( this, t.constructor == String ? - jQuery.find(t) : t.constructor == Array ? t : [t] ), arguments ); - }, - is: function(expr) { - return expr ? jQuery.filter(expr,this).r.length > 0 : false; - }, - domManip: function(args, table, dir, fn){ - var clone = this.size() > 1; - var a = jQuery.clean(args); - - return this.each(function(){ - var obj = this; - - if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() != "THEAD" ) { - var tbody = this.getElementsByTagName("tbody"); - - if ( !tbody.length ) { - obj = document.createElement("tbody"); - this.appendChild( obj ); - } else - obj = tbody[0]; - } - - for ( var i = ( dir < 0 ? a.length - 1 : 0 ); - i != ( dir < 0 ? dir : a.length ); i += dir ) { - fn.apply( obj, [ clone ? a[i].cloneNode(true) : a[i] ] ); - } - }); - }, - pushStack: function(a,args) { - var fn = args && args[args.length-1]; - var fn2 = args && args[args.length-2]; - - if ( fn && fn.constructor != Function ) fn = null; - if ( fn2 && fn2.constructor != Function ) fn2 = null; - - if ( !fn ) { - if ( !this.stack ) this.stack = []; - this.stack.push( this.get() ); - this.get( a ); - } else { - var old = this.get(); - this.get( a ); - - if ( fn2 && a.length || !fn2 ) - this.each( fn2 || fn ).get( old ); - else - this.get( old ).each( fn ); - } - - return this; - } -}; - -jQuery.extend = jQuery.fn.extend = function(obj,prop) { - if ( !prop ) { prop = obj; obj = this; } - for ( var i in prop ) obj[i] = prop[i]; - return obj; -}; - -jQuery.extend({ - init: function(){ - jQuery.initDone = true; - - jQuery.each( jQuery.macros.axis, function(i,n){ - jQuery.fn[ i ] = function(a) { - var ret = jQuery.map(this,n); - if ( a && a.constructor == String ) - ret = jQuery.filter(a,ret).r; - return this.pushStack( ret, arguments ); - }; - }); - - jQuery.each( jQuery.macros.to, function(i,n){ - jQuery.fn[ i ] = function(){ - var a = arguments; - return this.each(function(){ - for ( var j = 0; j < a.length; j++ ) - jQuery(a[j])[n]( this ); - }); - }; - }); - - jQuery.each( jQuery.macros.each, function(i,n){ - jQuery.fn[ i ] = function() { - return this.each( n, arguments ); - }; - }); - - jQuery.each( jQuery.macros.filter, function(i,n){ - jQuery.fn[ n ] = function(num,fn) { - return this.filter( ":" + n + "(" + num + ")", fn ); - }; - }); - - jQuery.each( jQuery.macros.attr, function(i,n){ - n = n || i; - jQuery.fn[ i ] = function(h) { - return h == undefined ? - this.length ? this[0][n] : null : - this.attr( n, h ); - }; - }); - - jQuery.each( jQuery.macros.css, function(i,n){ - jQuery.fn[ n ] = function(h) { - return h == undefined ? - ( this.length ? jQuery.css( this[0], n ) : null ) : - this.css( n, h ); - }; - }); - - }, - each: function( obj, fn, args ) { - if ( obj.length == undefined ) - for ( var i in obj ) - fn.apply( obj[i], args || [i, obj[i]] ); - else - for ( var i = 0; i < obj.length; i++ ) - fn.apply( obj[i], args || [i, obj[i]] ); - return obj; - }, - - className: { - add: function(o,c){ - if (jQuery.className.has(o,c)) return; - o.className += ( o.className ? " " : "" ) + c; - }, - remove: function(o,c){ - if( !c ) { - o.className = ""; - } else { - var classes = o.className.split(" "); - for(var i=0; i"; - } else if ( !a[i].indexOf(""; - } else if ( !a[i].indexOf(""; - } - - var div = document.createElement("div"); - div.innerHTML = a[i]; - - if ( table ) { - div = div.firstChild; - if ( table != "thead" ) div = div.firstChild; - if ( table == "td" ) div = div.firstChild; - } - - for ( var j = 0; j < div.childNodes.length; j++ ) - r.push( div.childNodes[j] ); - } else if ( a[i].jquery || a[i].length && !a[i].nodeType ) - for ( var k = 0; k < a[i].length; k++ ) - r.push( a[i][k] ); - else if ( a[i] !== null ) - r.push( a[i].nodeType ? a[i] : document.createTextNode(a[i].toString()) ); - } - return r; - }, - - expr: { - "": "m[2]== '*'||a.nodeName.toUpperCase()==m[2].toUpperCase()", - "#": "a.getAttribute('id')&&a.getAttribute('id')==m[2]", - ":": { - // Position Checks - lt: "im[3]-0", - nth: "m[3]-0==i", - eq: "m[3]-0==i", - first: "i==0", - last: "i==r.length-1", - even: "i%2==0", - odd: "i%2", - - // Child Checks - "nth-child": "jQuery.sibling(a,m[3]).cur", - "first-child": "jQuery.sibling(a,0).cur", - "last-child": "jQuery.sibling(a,0).last", - "only-child": "jQuery.sibling(a).length==1", - - // Parent Checks - parent: "a.childNodes.length", - empty: "!a.childNodes.length", - - // Text Check - contains: "(a.innerText||a.innerHTML).indexOf(m[3])>=0", - - // Visibility - visible: "a.type!='hidden'&&jQuery.css(a,'display')!='none'&&jQuery.css(a,'visibility')!='hidden'", - hidden: "a.type=='hidden'||jQuery.css(a,'display')=='none'||jQuery.css(a,'visibility')=='hidden'", - - // Form attributes - enabled: "!a.disabled", - disabled: "a.disabled", - checked: "a.checked", - selected: "a.selected || jQuery.attr(a, 'selected')", - - // Form elements - text: "a.type=='text'", - radio: "a.type=='radio'", - checkbox: "a.type=='checkbox'", - file: "a.type=='file'", - password: "a.type=='password'", - submit: "a.type=='submit'", - image: "a.type=='image'", - reset: "a.type=='reset'", - button: "a.type=='button'", - input: "a.nodeName.toLowerCase().match(/input|select|textarea|button/)" - }, - ".": "jQuery.className.has(a,m[2])", - "@": { - "=": "z==m[4]", - "!=": "z!=m[4]", - "^=": "z && !z.indexOf(m[4])", - "$=": "z && z.substr(z.length - m[4].length,m[4].length)==m[4]", - "*=": "z && z.indexOf(m[4])>=0", - "": "z" - }, - "[": "jQuery.find(m[2],a).length" - }, - - token: [ - "\\.\\.|/\\.\\.", "a.parentNode", - ">|/", "jQuery.sibling(a.firstChild)", - "\\+", "jQuery.sibling(a).next", - "~", function(a){ - var r = []; - var s = jQuery.sibling(a); - if ( s.n > 0 ) - for ( var i = s.n; i < s.length; i++ ) - r.push( s[i] ); - return r; - } - ], - find: function( t, context ) { - // Make sure that the context is a DOM Element - if ( context && context.nodeType == undefined ) - context = null; - - // Set the correct context (if none is provided) - context = context || jQuery.context || document; - - if ( t.constructor != String ) return [t]; - - if ( !t.indexOf("//") ) { - context = context.documentElement; - t = t.substr(2,t.length); - } else if ( !t.indexOf("/") ) { - context = context.documentElement; - t = t.substr(1,t.length); - // FIX Assume the root element is right :( - if ( t.indexOf("/") >= 1 ) - t = t.substr(t.indexOf("/"),t.length); - } - - var ret = [context]; - var done = []; - var last = null; - - while ( t.length > 0 && last != t ) { - var r = []; - last = t; - - t = jQuery.trim(t).replace( /^\/\//i, "" ); - - var foundToken = false; - - for ( var i = 0; i < jQuery.token.length; i += 2 ) { - if ( foundToken ) continue; - - var re = new RegExp("^(" + jQuery.token[i] + ")"); - var m = re.exec(t); - - if ( m ) { - r = ret = jQuery.map( ret, jQuery.token[i+1] ); - t = jQuery.trim( t.replace( re, "" ) ); - foundToken = true; - } - } - - if ( !foundToken ) { - if ( !t.indexOf(",") || !t.indexOf("|") ) { - if ( ret[0] == context ) ret.shift(); - done = jQuery.merge( done, ret ); - r = ret = [context]; - t = " " + t.substr(1,t.length); - } else { - var re2 = /^([#.]?)([a-z0-9\\*_-]*)/i; - var m = re2.exec(t); - - if ( m[1] == "#" ) { - // Ummm, should make this work in all XML docs - var oid = document.getElementById(m[2]); - r = ret = oid ? [oid] : []; - t = t.replace( re2, "" ); - } else { - if ( !m[2] || m[1] == "." ) m[2] = "*"; - - for ( var i = 0; i < ret.length; i++ ) - r = jQuery.merge( r, - m[2] == "*" ? - jQuery.getAll(ret[i]) : - ret[i].getElementsByTagName(m[2]) - ); - } - } - - } - - if ( t ) { - var val = jQuery.filter(t,r); - ret = r = val.r; - t = jQuery.trim(val.t); - } - } - - if ( ret && ret[0] == context ) ret.shift(); - done = jQuery.merge( done, ret ); - - return done; - }, - - getAll: function(o,r) { - r = r || []; - var s = o.childNodes; - for ( var i = 0; i < s.length; i++ ) - if ( s[i].nodeType == 1 ) { - r.push( s[i] ); - jQuery.getAll( s[i], r ); - } - return r; - }, - - attr: function(elem, name, value){ - var fix = { - "for": "htmlFor", - "class": "className", - "float": "cssFloat", - innerHTML: "innerHTML", - className: "className", - value: "value", - disabled: "disabled", - checked: "checked" - }; - - // IE actually uses filters for opacity ... elem is actually elem.style - if (name == "opacity" && jQuery.browser.msie && value != undefined) { - // IE has trouble with opacity if it does not have layout - // Would prefer to check element.hasLayout first but don't have access to the element here - elem['zoom'] = 1; - if (value == 1) // Remove filter to avoid more IE weirdness - return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,""); - else - return elem["filter"] = elem["filter"].replace(/alpha\([^\)]*\)/gi,"") + "alpha(opacity=" + value * 100 + ")"; - } else if (name == "opacity" && jQuery.browser.msie) { - return elem["filter"] ? parseFloat( elem["filter"].match(/alpha\(opacity=(.*)\)/)[1] )/100 : 1; - } - - // Mozilla doesn't play well with opacity 1 - if (name == "opacity" && jQuery.browser.mozilla && value == 1) value = 0.9999; - - if ( fix[name] ) { - if ( value != undefined ) elem[fix[name]] = value; - return elem[fix[name]]; - } else if( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == 'FORM' && (name == 'action' || name == 'method') ) { - return elem.getAttributeNode(name).nodeValue; - } else if ( elem.getAttribute != undefined ) { - if ( value != undefined ) elem.setAttribute( name, value ); - return elem.getAttribute( name, 2 ); - } else { - name = name.replace(/-([a-z])/ig,function(z,b){return b.toUpperCase();}); - if ( value != undefined ) elem[name] = value; - return elem[name]; - } - }, - - // The regular expressions that power the parsing engine - parse: [ - // Match: [@value='test'], [@foo] - "\\[ *(@)S *([!*$^=]*) *('?\"?)(.*?)\\4 *\\]", - - // Match: [div], [div p] - "(\\[)\s*(.*?)\s*\\]", - - // Match: :contains('foo') - "(:)S\\(\"?'?([^\\)]*?)\"?'?\\)", - - // Match: :even, :last-chlid - "([:.#]*)S" - ], - - filter: function(t,r,not) { - // Figure out if we're doing regular, or inverse, filtering - var g = not !== false ? jQuery.grep : - function(a,f) {return jQuery.grep(a,f,true);}; - - while ( t && /^[a-z[({<*:.#]/i.test(t) ) { - - var p = jQuery.parse; - - for ( var i = 0; i < p.length; i++ ) { - - // Look for, and replace, string-like sequences - // and finally build a regexp out of it - var re = new RegExp( - "^" + p[i].replace("S", "([a-z*_-][a-z0-9_-]*)"), "i" ); - - var m = re.exec( t ); - - if ( m ) { - // Re-organize the first match - if ( !i ) - m = ["",m[1], m[3], m[2], m[5]]; - - // Remove what we just matched - t = t.replace( re, "" ); - - break; - } - } - - // :not() is a special case that can be optimized by - // keeping it out of the expression list - if ( m[1] == ":" && m[2] == "not" ) - r = jQuery.filter(m[3],r,false).r; - - // Otherwise, find the expression to execute - else { - var f = jQuery.expr[m[1]]; - if ( f.constructor != String ) - f = jQuery.expr[m[1]][m[2]]; - - // Build a custom macro to enclose it - eval("f = function(a,i){" + - ( m[1] == "@" ? "z=jQuery.attr(a,m[3]);" : "" ) + - "return " + f + "}"); - - // Execute it against the current filter - r = g( r, f ); - } - } - - // Return an array of filtered elements (r) - // and the modified expression string (t) - return { r: r, t: t }; - }, - trim: function(t){ - return t.replace(/^\s+|\s+$/g, ""); - }, - parents: function( elem ){ - var matched = []; - var cur = elem.parentNode; - while ( cur && cur != document ) { - matched.push( cur ); - cur = cur.parentNode; - } - return matched; - }, - sibling: function(elem, pos, not) { - var elems = []; - - if(elem) { - var siblings = elem.parentNode.childNodes; - for ( var i = 0; i < siblings.length; i++ ) { - if ( not === true && siblings[i] == elem ) continue; - - if ( siblings[i].nodeType == 1 ) - elems.push( siblings[i] ); - if ( siblings[i] == elem ) - elems.n = elems.length - 1; - } - } - - return jQuery.extend( elems, { - last: elems.n == elems.length - 1, - cur: pos == "even" && elems.n % 2 == 0 || pos == "odd" && elems.n % 2 || elems[pos] == elem, - prev: elems[elems.n - 1], - next: elems[elems.n + 1] - }); - }, - merge: function(first, second) { - var result = []; - - // Move b over to the new array (this helps to avoid - // StaticNodeList instances) - for ( var k = 0; k < first.length; k++ ) - result[k] = first[k]; - - // Now check for duplicates between a and b and only - // add the unique items - for ( var i = 0; i < second.length; i++ ) { - var noCollision = true; - - // The collision-checking process - for ( var j = 0; j < first.length; j++ ) - if ( second[i] == first[j] ) - noCollision = false; - - // If the item is unique, add it - if ( noCollision ) - result.push( second[i] ); - } - - return result; - }, - grep: function(elems, fn, inv) { - // If a string is passed in for the function, make a function - // for it (a handy shortcut) - if ( fn.constructor == String ) - fn = new Function("a","i","return " + fn); - - var result = []; - - // Go through the array, only saving the items - // that pass the validator function - for ( var i = 0; i < elems.length; i++ ) - if ( !inv && fn(elems[i],i) || inv && !fn(elems[i],i) ) - result.push( elems[i] ); - - return result; - }, - map: function(elems, fn) { - // If a string is passed in for the function, make a function - // for it (a handy shortcut) - if ( fn.constructor == String ) - fn = new Function("a","return " + fn); - - var result = []; - - // Go through the array, translating each of the items to their - // new value (or values). - for ( var i = 0; i < elems.length; i++ ) { - var val = fn(elems[i],i); - - if ( val !== null && val != undefined ) { - if ( val.constructor != Array ) val = [val]; - result = jQuery.merge( result, val ); - } - } - - return result; - }, - - /* - * A number of helper functions used for managing events. - * Many of the ideas behind this code orignated from Dean Edwards' addEvent library. - */ - event: { - - // Bind an event to an element - // Original by Dean Edwards - add: function(element, type, handler) { - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( jQuery.browser.msie && element.setInterval != undefined ) - element = window; - - // Make sure that the function being executed has a unique ID - if ( !handler.guid ) - handler.guid = this.guid++; - - // Init the element's event structure - if (!element.events) - element.events = {}; - - // Get the current list of functions bound to this event - var handlers = element.events[type]; - - // If it hasn't been initialized yet - if (!handlers) { - // Init the event handler queue - handlers = element.events[type] = {}; - - // Remember an existing handler, if it's already there - if (element["on" + type]) - handlers[0] = element["on" + type]; - } - - // Add the function to the element's handler list - handlers[handler.guid] = handler; - - // And bind the global event handler to the element - element["on" + type] = this.handle; - - // Remember the function in a global list (for triggering) - if (!this.global[type]) - this.global[type] = []; - this.global[type].push( element ); - }, - - guid: 1, - global: {}, - - // Detach an event or set of events from an element - remove: function(element, type, handler) { - if (element.events) - if (type && element.events[type]) - if ( handler ) - delete element.events[type][handler.guid]; - else - for ( var i in element.events[type] ) - delete element.events[type][i]; - else - for ( var j in element.events ) - this.remove( element, j ); - }, - - trigger: function(type,data,element) { - // Touch up the incoming data - data = data || []; - - // Handle a global trigger - if ( !element ) { - var g = this.global[type]; - if ( g ) - for ( var i = 0; i < g.length; i++ ) - this.trigger( type, data, g[i] ); - - // Handle triggering a single element - } else if ( element["on" + type] ) { - // Pass along a fake event - data.unshift( this.fix({ type: type, target: element }) ); - - // Trigger the event - element["on" + type].apply( element, data ); - } - }, - - handle: function(event) { - if ( typeof jQuery == "undefined" ) return; - - event = event || jQuery.event.fix( window.event ); - - // If no correct event was found, fail - if ( !event ) return; - - var returnValue = true; - - var c = this.events[event.type]; - - var args = [].slice.call( arguments, 1 ); - args.unshift( event ); - - for ( var j in c ) { - if ( c[j].apply( this, args ) === false ) { - event.preventDefault(); - event.stopPropagation(); - returnValue = false; - } - } - - return returnValue; - }, - - fix: function(event) { - if ( event ) { - event.preventDefault = function() { - this.returnValue = false; - }; - - event.stopPropagation = function() { - this.cancelBubble = true; - }; - } - - return event; - } - - } -}); -new function() { - var b = navigator.userAgent.toLowerCase(); - - // Figure out what browser is being used - jQuery.browser = { - safari: /webkit/.test(b), - opera: /opera/.test(b), - msie: /msie/.test(b) && !/opera/.test(b), - mozilla: /mozilla/.test(b) && !/(compatible|webkit)/.test(b) - }; - - // Check to see if the W3C box model is being used - jQuery.boxModel = !jQuery.browser.msie || document.compatMode == "CSS1Compat"; -}; - -jQuery.macros = { - to: { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after" - }, - - css: "width,height,top,left,position,float,overflow,color,background".split(","), - - filter: [ "eq", "lt", "gt", "contains" ], - - attr: { - - val: "value", - - html: "innerHTML", - - id: null, - - title: null, - - name: null, - - href: null, - - src: null, - - rel: null - }, - - axis: { - - parent: "a.parentNode", - - ancestors: jQuery.parents, - - parents: jQuery.parents, - - next: "jQuery.sibling(a).next", - - prev: "jQuery.sibling(a).prev", - - siblings: "jQuery.sibling(a, null, true)", - - children: "jQuery.sibling(a.firstChild)" - }, - - each: { - removeAttr: function( key ) { - this.removeAttribute( key ); - }, - show: function(){ - this.style.display = this.oldblock ? this.oldblock : ""; - if ( jQuery.css(this,"display") == "none" ) - this.style.display = "block"; - }, - hide: function(){ - this.oldblock = this.oldblock || jQuery.css(this,"display"); - if ( this.oldblock == "none" ) - this.oldblock = "block"; - this.style.display = "none"; - }, - toggle: function(){ - jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ].apply( jQuery(this), arguments ); - }, - addClass: function(c){ - jQuery.className.add(this,c); - }, - removeClass: function(c){ - jQuery.className.remove(this,c); - }, - toggleClass: function( c ){ - jQuery.className[ jQuery.className.has(this,c) ? "remove" : "add" ](this,c); - }, - - remove: function(a){ - if ( !a || jQuery.filter( a, [this] ).r ) - this.parentNode.removeChild( this ); - }, - empty: function(){ - while ( this.firstChild ) - this.removeChild( this.firstChild ); - }, - bind: function( type, fn ) { - if ( fn.constructor == String ) - fn = new Function("e", ( !fn.indexOf(".") ? "jQuery(this)" : "return " ) + fn); - jQuery.event.add( this, type, fn ); - }, - - unbind: function( type, fn ) { - jQuery.event.remove( this, type, fn ); - }, - trigger: function( type, data ) { - jQuery.event.trigger( type, data, this ); - } - } -}; - -jQuery.init(); -jQuery.fn.extend({ - - // We're overriding the old toggle function, so - // remember it for later - _toggle: jQuery.fn.toggle, - toggle: function(a,b) { - // If two functions are passed in, we're - // toggling on a click - return a && b && a.constructor == Function && b.constructor == Function ? this.click(function(e){ - // Figure out which function to execute - this.last = this.last == a ? b : a; - - // Make sure that clicks stop - e.preventDefault(); - - // and execute the function - return this.last.apply( this, [e] ) || false; - }) : - - // Otherwise, execute the old toggle function - this._toggle.apply( this, arguments ); - }, - hover: function(f,g) { - - // A private function for haandling mouse 'hovering' - function handleHover(e) { - // Check if mouse(over|out) are still within the same parent element - var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; - - // Traverse up the tree - while ( p && p != this ) try { p = p.parentNode } catch(e) { p = this; }; - - // If we actually just moused on to a sub-element, ignore it - if ( p == this ) return false; - - // Execute the right function - return (e.type == "mouseover" ? f : g).apply(this, [e]); - } - - // Bind the function to the two event listeners - return this.mouseover(handleHover).mouseout(handleHover); - }, - ready: function(f) { - // If the DOM is already ready - if ( jQuery.isReady ) - // Execute the function immediately - f.apply( document ); - - // Otherwise, remember the function for later - else { - // Add the function to the wait list - jQuery.readyList.push( f ); - } - - return this; - } -}); - -jQuery.extend({ - /* - * All the code that makes DOM Ready work nicely. - */ - isReady: false, - readyList: [], - - // Handle when the DOM is ready - ready: function() { - // Make sure that the DOM is not already loaded - if ( !jQuery.isReady ) { - // Remember that the DOM is ready - jQuery.isReady = true; - - // If there are functions bound, to execute - if ( jQuery.readyList ) { - // Execute all of them - for ( var i = 0; i < jQuery.readyList.length; i++ ) - jQuery.readyList[i].apply( document ); - - // Reset the list of functions - jQuery.readyList = null; - } - // Remove event lisenter to avoid memory leak - if ( jQuery.browser.mozilla || jQuery.browser.opera ) - document.removeEventListener( "DOMContentLoaded", jQuery.ready, false ); - } - } -}); - -new function(){ - - var e = ("blur,focus,load,resize,scroll,unload,click,dblclick," + - "mousedown,mouseup,mousemove,mouseover,mouseout,change,reset,select," + - "submit,keydown,keypress,keyup,error").split(","); - - // Go through all the event names, but make sure that - // it is enclosed properly - for ( var i = 0; i < e.length; i++ ) new function(){ - - var o = e[i]; - - // Handle event binding - jQuery.fn[o] = function(f){ - return f ? this.bind(o, f) : this.trigger(o); - }; - - // Handle event unbinding - jQuery.fn["un"+o] = function(f){ return this.unbind(o, f); }; - - // Finally, handle events that only fire once - jQuery.fn["one"+o] = function(f){ - // Attach the event listener - return this.each(function(){ - - var count = 0; - - // Add the event - jQuery.event.add( this, o, function(e){ - // If this function has already been executed, stop - if ( count++ ) return; - - // And execute the bound function - return f.apply(this, [e]); - }); - }); - }; - - }; - - // If Mozilla is used - if ( jQuery.browser.mozilla || jQuery.browser.opera ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", jQuery.ready, false ); - - // If IE is used, use the excellent hack by Matthias Miller - // http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited - } else if ( jQuery.browser.msie ) { - - // Only works if you document.write() it - document.write("<\/script>"); - - // Use the defer script hack - var script = document.getElementById("__ie_init"); - script.onreadystatechange = function() { - if ( this.readyState != "complete" ) return; - this.parentNode.removeChild( this ); - jQuery.ready(); - }; - - // Clear from memory - script = null; - - // If Safari is used - } else if ( jQuery.browser.safari ) { - // Continually check to see if the document.readyState is valid - jQuery.safariTimer = setInterval(function(){ - // loaded and complete are both valid states - if ( document.readyState == "loaded" || - document.readyState == "complete" ) { - - // If either one are found, remove the timer - clearInterval( jQuery.safariTimer ); - jQuery.safariTimer = null; - - // and execute any waiting functions - jQuery.ready(); - } - }, 10); - } - - // A fallback to window.onload, that will always work - jQuery.event.add( window, "load", jQuery.ready ); - -}; - -// Clean up after IE to avoid memory leaks -if (jQuery.browser.msie) jQuery(window).unload(function() { - var event = jQuery.event, global = event.global; - for (var type in global) { - var els = global[type], i = els.length; - if (i>0) do if (type != 'unload') event.remove(els[i-1], type); while (--i); - } -}); -jQuery.fn.extend({ - - // overwrite the old show method - _show: jQuery.fn.show, - - show: function(speed,callback){ - return speed ? this.animate({ - height: "show", width: "show", opacity: "show" - }, speed, callback) : this._show(); - }, - - // Overwrite the old hide method - _hide: jQuery.fn.hide, - - hide: function(speed,callback){ - return speed ? this.animate({ - height: "hide", width: "hide", opacity: "hide" - }, speed, callback) : this._hide(); - }, - - slideDown: function(speed,callback){ - return this.animate({height: "show"}, speed, callback); - }, - - slideUp: function(speed,callback){ - return this.animate({height: "hide"}, speed, callback); - }, - - slideToggle: function(speed,callback){ - return this.each(function(){ - var state = jQuery(this).is(":hidden") ? "show" : "hide"; - jQuery(this).animate({height: state}, speed, callback); - }); - }, - - fadeIn: function(speed,callback){ - return this.animate({opacity: "show"}, speed, callback); - }, - - fadeOut: function(speed,callback){ - return this.animate({opacity: "hide"}, speed, callback); - }, - - fadeTo: function(speed,to,callback){ - return this.animate({opacity: to}, speed, callback); - }, - animate: function(prop,speed,callback) { - return this.queue(function(){ - - this.curAnim = prop; - - for ( var p in prop ) { - var e = new jQuery.fx( this, jQuery.speed(speed,callback), p ); - if ( prop[p].constructor == Number ) - e.custom( e.cur(), prop[p] ); - else - e[ prop[p] ]( prop ); - } - - }); - }, - queue: function(type,fn){ - if ( !fn ) { - fn = type; - type = "fx"; - } - - return this.each(function(){ - if ( !this.queue ) - this.queue = {}; - - if ( !this.queue[type] ) - this.queue[type] = []; - - this.queue[type].push( fn ); - - if ( this.queue[type].length == 1 ) - fn.apply(this); - }); - } - -}); - -jQuery.extend({ - - setAuto: function(e,p) { - if ( e.notAuto ) return; - - if ( p == "height" && e.scrollHeight != parseInt(jQuery.curCSS(e,p)) ) return; - if ( p == "width" && e.scrollWidth != parseInt(jQuery.curCSS(e,p)) ) return; - - // Remember the original height - var a = e.style[p]; - - // Figure out the size of the height right now - var o = jQuery.curCSS(e,p,1); - - if ( p == "height" && e.scrollHeight != o || - p == "width" && e.scrollWidth != o ) return; - - // Set the height to auto - e.style[p] = e.currentStyle ? "" : "auto"; - - // See what the size of "auto" is - var n = jQuery.curCSS(e,p,1); - - // Revert back to the original size - if ( o != n && n != "auto" ) { - e.style[p] = a; - e.notAuto = true; - } - }, - - speed: function(s,o) { - o = o || {}; - - if ( o.constructor == Function ) - o = { complete: o }; - - var ss = { slow: 600, fast: 200 }; - o.duration = (s && s.constructor == Number ? s : ss[s]) || 400; - - // Queueing - o.oldComplete = o.complete; - o.complete = function(){ - jQuery.dequeue(this, "fx"); - if ( o.oldComplete && o.oldComplete.constructor == Function ) - o.oldComplete.apply( this ); - }; - - return o; - }, - - queue: {}, - - dequeue: function(elem,type){ - type = type || "fx"; - - if ( elem.queue && elem.queue[type] ) { - // Remove self - elem.queue[type].shift(); - - // Get next function - var f = elem.queue[type][0]; - - if ( f ) f.apply( elem ); - } - }, - - /* - * I originally wrote fx() as a clone of moo.fx and in the process - * of making it small in size the code became illegible to sane - * people. You've been warned. - */ - - fx: function( elem, options, prop ){ - - var z = this; - - // The users options - z.o = { - duration: options.duration || 400, - complete: options.complete, - step: options.step - }; - - // The element - z.el = elem; - - // The styles - var y = z.el.style; - - // Simple function for setting a style value - z.a = function(){ - if ( options.step ) - options.step.apply( elem, [ z.now ] ); - - if ( prop == "opacity" ) - jQuery.attr(y, "opacity", z.now); // Let attr handle opacity - else if ( parseInt(z.now) ) // My hate for IE will never die - y[prop] = parseInt(z.now) + "px"; - - y.display = "block"; - }; - - // Figure out the maximum number to run to - z.max = function(){ - return parseFloat( jQuery.css(z.el,prop) ); - }; - - // Get the current size - z.cur = function(){ - var r = parseFloat( jQuery.curCSS(z.el, prop) ); - return r && r > -10000 ? r : z.max(); - }; - - // Start an animation from one number to another - z.custom = function(from,to){ - z.startTime = (new Date()).getTime(); - z.now = from; - z.a(); - - z.timer = setInterval(function(){ - z.step(from, to); - }, 13); - }; - - // Simple 'show' function - z.show = function( p ){ - if ( !z.el.orig ) z.el.orig = {}; - - // Remember where we started, so that we can go back to it later - z.el.orig[prop] = this.cur(); - - // Begin the animation - if (prop == "opacity") - z.custom(z.el.orig[prop], 1); - else - z.custom(0, z.el.orig[prop]); - - // Stupid IE, look what you made me do - if ( prop != "opacity" ) - y[prop] = "1px"; - }; - - // Simple 'hide' function - z.hide = function(){ - if ( !z.el.orig ) z.el.orig = {}; - - // Remember where we started, so that we can go back to it later - z.el.orig[prop] = this.cur(); - - z.o.hide = true; - - // Begin the animation - z.custom(z.el.orig[prop], 0); - }; - - // Remember the overflow of the element - if ( !z.el.oldOverlay ) - z.el.oldOverflow = jQuery.css( z.el, "overflow" ); - - // Make sure that nothing sneaks out - y.overflow = "hidden"; - - // Each step of an animation - z.step = function(firstNum, lastNum){ - var t = (new Date()).getTime(); - - if (t > z.o.duration + z.startTime) { - // Stop the timer - clearInterval(z.timer); - z.timer = null; - - z.now = lastNum; - z.a(); - - z.el.curAnim[ prop ] = true; - - var done = true; - for ( var i in z.el.curAnim ) - if ( z.el.curAnim[i] !== true ) - done = false; - - if ( done ) { - // Reset the overflow - y.overflow = z.el.oldOverflow; - - // Hide the element if the "hide" operation was done - if ( z.o.hide ) - y.display = 'none'; - - // Reset the property, if the item has been hidden - if ( z.o.hide ) { - for ( var p in z.el.curAnim ) { - if (p == "opacity" && jQuery.browser.msie) - jQuery.attr(y, p, z.el.orig[p]); - else - y[ p ] = z.el.orig[p] + "px"; - - // set its height and/or width to auto - if ( p == 'height' || p == 'width' ) - jQuery.setAuto( z.el, p ); - } - } - } - - // If a callback was provided, execute it - if( done && z.o.complete && z.o.complete.constructor == Function ) - // Execute the complete function - z.o.complete.apply( z.el ); - } else { - // Figure out where in the animation we are and set the number - var p = (t - this.startTime) / z.o.duration; - z.now = ((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum; - - // Perform the next step of the animation - z.a(); - } - }; - - } - -}); -jQuery.fn.extend({ - loadIfModified: function( url, params, callback ) { - this.load( url, params, callback, 1 ); - }, - load: function( url, params, callback, ifModified ) { - if ( url.constructor == Function ) - return this.bind("load", url); - - callback = callback || function(){}; - - // Default to a GET request - var type = "GET"; - - // If the second parameter was provided - if ( params ) { - // If it's a function - if ( params.constructor == Function ) { - // We assume that it's the callback - callback = params; - params = null; - - // Otherwise, build a param string - } else { - params = jQuery.param( params ); - type = "POST"; - } - } - - var self = this; - - // Request the remote document - jQuery.ajax( type, url, params,function(res, status){ - - if ( status == "success" || !ifModified && status == "notmodified" ) { - // Inject the HTML into all the matched elements - self.html(res.responseText).each( callback, [res.responseText, status] ); - - // Execute all the scripts inside of the newly-injected HTML - jQuery("script", self).each(function(){ - if ( this.src ) - jQuery.getScript( this.src ); - else - eval.call( window, this.text || this.textContent || this.innerHTML || "" ); - }); - } else - callback.apply( self, [res.responseText, status] ); - - }, ifModified); - - return this; - }, - serialize: function() { - return jQuery.param( this ); - } - -}); - -// If IE is used, create a wrapper for the XMLHttpRequest object -if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" ) - XMLHttpRequest = function(){ - return new ActiveXObject( - navigator.userAgent.indexOf("MSIE 5") >= 0 ? - "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP" - ); - }; - -// Attach a bunch of functions for handling common AJAX events - - - -new function(){ - var e = "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess".split(","); - - for ( var i = 0; i < e.length; i++ ) new function(){ - var o = e[i]; - jQuery.fn[o] = function(f){ - return this.bind(o, f); - }; - }; -}; - -jQuery.extend({ - get: function( url, data, callback, type, ifModified ) { - if ( data.constructor == Function ) { - type = callback; - callback = data; - data = null; - } - - // append ? + data or & + data, in case there are already params - if ( data ) url += ((url.indexOf("?") > -1) ? "&" : "?") + jQuery.param(data); - - // Build and start the HTTP Request - jQuery.ajax( "GET", url, null, function(r, status) { - if ( callback ) callback( jQuery.httpData(r,type), status ); - }, ifModified); - }, - getIfModified: function( url, data, callback, type ) { - jQuery.get(url, data, callback, type, 1); - }, - getScript: function( url, callback ) { - jQuery.get(url, callback, "script"); - }, - getJSON: function( url, data, callback ) { - if(callback) - jQuery.get(url, data, callback, "json"); - else { - jQuery.get(url, data, "json"); - } - }, - post: function( url, data, callback, type ) { - // Build and start the HTTP Request - jQuery.ajax( "POST", url, jQuery.param(data), function(r, status) { - if ( callback ) callback( jQuery.httpData(r,type), status ); - }); - }, - - // timeout (ms) - timeout: 0, - ajaxTimeout: function(timeout) { - jQuery.timeout = timeout; - }, - - // Last-Modified header cache for next request - lastModified: {}, - ajax: function( type, url, data, ret, ifModified ) { - // If only a single argument was passed in, - // assume that it is a object of key/value pairs - if ( !url ) { - ret = type.complete; - var success = type.success; - var error = type.error; - var dataType = type.dataType; - var global = typeof type.global == "boolean" ? type.global : true; - var timeout = typeof type.timeout == "number" ? type.timeout : jQuery.timeout; - var ifModified = type.ifModified || false; - data = type.data; - url = type.url; - type = type.type; - } - - // Watch for a new set of requests - if ( global && ! jQuery.active++ ) - jQuery.event.trigger( "ajaxStart" ); - - var requestDone = false; - - // Create the request object - var xml = new XMLHttpRequest(); - - // Open the socket - xml.open(type || "GET", url, true); - - // Set the correct header, if data is being sent - if ( data ) - xml.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - - // Set the If-Modified-Since header, if ifModified mode. - if ( ifModified ) - xml.setRequestHeader("If-Modified-Since", - jQuery.lastModified[url] || "Thu, 01 Jan 1970 00:00:00 GMT" ); - - // Set header so the called script knows that it's an XMLHttpRequest - xml.setRequestHeader("X-Requested-With", "XMLHttpRequest"); - - // Make sure the browser sends the right content length - if ( xml.overrideMimeType ) - xml.setRequestHeader("Connection", "close"); - - // Wait for a response to come back - var onreadystatechange = function(istimeout){ - // The transfer is complete and the data is available, or the request timed out - if ( xml && (xml.readyState == 4 || istimeout == "timeout") ) { - requestDone = true; - - var status = jQuery.httpSuccess( xml ) && istimeout != "timeout" ? - ifModified && jQuery.httpNotModified( xml, url ) ? "notmodified" : "success" : "error"; - - // Make sure that the request was successful or notmodified - if ( status != "error" ) { - // Cache Last-Modified header, if ifModified mode. - var modRes; - try { - modRes = xml.getResponseHeader("Last-Modified"); - } catch(e) {} // swallow exception thrown by FF if header is not available - - if ( ifModified && modRes ) - jQuery.lastModified[url] = modRes; - - // If a local callback was specified, fire it - if ( success ) - success( jQuery.httpData( xml, dataType ), status ); - - // Fire the global callback - if( global ) - jQuery.event.trigger( "ajaxSuccess" ); - - // Otherwise, the request was not successful - } else { - // If a local callback was specified, fire it - if ( error ) error( xml, status ); - - // Fire the global callback - if( global ) - jQuery.event.trigger( "ajaxError" ); - } - - // The request was completed - if( global ) - jQuery.event.trigger( "ajaxComplete" ); - - // Handle the global AJAX counter - if ( global && ! --jQuery.active ) - jQuery.event.trigger( "ajaxStop" ); - - // Process result - if ( ret ) ret(xml, status); - - // Stop memory leaks - xml.onreadystatechange = function(){}; - xml = null; - - } - }; - xml.onreadystatechange = onreadystatechange; - - // Timeout checker - if(timeout > 0) - setTimeout(function(){ - // Check to see if the request is still happening - if (xml) { - // Cancel the request - xml.abort(); - - if ( !requestDone ) onreadystatechange( "timeout" ); - - // Clear from memory - xml = null; - } - }, timeout); - - // Send the data - xml.send(data); - }, - - // Counter for holding the number of active queries - active: 0, - - // Determines if an XMLHttpRequest was successful or not - httpSuccess: function(r) { - try { - return !r.status && location.protocol == "file:" || - ( r.status >= 200 && r.status < 300 ) || r.status == 304 || - jQuery.browser.safari && r.status == undefined; - } catch(e){} - - return false; - }, - - // Determines if an XMLHttpRequest returns NotModified - httpNotModified: function(xml, url) { - try { - var xmlRes = xml.getResponseHeader("Last-Modified"); - - // Firefox always returns 200. check Last-Modified date - return xml.status == 304 || xmlRes == jQuery.lastModified[url] || - jQuery.browser.safari && xml.status == undefined; - } catch(e){} - - return false; - }, - - /* Get the data out of an XMLHttpRequest. - * Return parsed XML if content-type header is "xml" and type is "xml" or omitted, - * otherwise return plain text. - * (String) data - The type of data that you're expecting back, - * (e.g. "xml", "html", "script") - */ - httpData: function(r,type) { - var ct = r.getResponseHeader("content-type"); - var data = !type && ct && ct.indexOf("xml") >= 0; - data = type == "xml" || data ? r.responseXML : r.responseText; - - // If the type is "script", eval it - if ( type == "script" ) eval.call( window, data ); - - // Get the JavaScript object, if JSON is used. - if ( type == "json" ) eval( "data = " + data ); - - return data; - }, - - // Serialize an array of form elements or a set of - // key/values into a query string - param: function(a) { - var s = []; - - // If an array was passed in, assume that it is an array - // of form elements - if ( a.constructor == Array || a.jquery ) { - // Serialize the form elements - for ( var i = 0; i < a.length; i++ ) - s.push( a[i].name + "=" + encodeURIComponent( a[i].value ) ); - - // Otherwise, assume that it's an object of key/value pairs - } else { - // Serialize the key/values - for ( var j in a ) - s.push( j + "=" + encodeURIComponent( a[j] ) ); - } - - // Return the resulting serialization - return s.join("&"); - } - -}); -} // close: if(typeof window.jQuery == "undefined") { diff --git a/thirdparty/greybox/test.html b/thirdparty/greybox/test.html deleted file mode 100644 index 690894064..000000000 --- a/thirdparty/greybox/test.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - GreyBox Redux - - - - - - - - -

Greybox Redux (Reworked)

- -

Reworked original greybox redux at -http://jquery.com/demo/grey/

- -

See it in action:

- - -