Commit graph

323 commits

Author SHA1 Message Date
John Resig 22c9c9b9d3 Make sure that [name=FOO] searches actually have the specified name (IE includes elements that have the ID, as well). 2009-02-15 22:33:19 +00:00
John Resig 20827707a9 Added fixes for two different :not() bugs. One with p:not(p.foo) failing and another with a weird combination of multiple selectors and filters. Fixes jQuery bug #4101. 2009-02-15 21:13:33 +00:00
John Resig f9a7cfacf7 Updated the copy of jQuery and added some more context tests. 2009-02-15 18:20:01 +00:00
John Resig 21dde30348 Provide a graceful failover for [name=foo] queries that are looking for non-input/iframe/form elements. Fixes jQuery bug #4081. 2009-02-14 22:24:55 +00:00
John Resig 6f4b08cdf9 Added support for sorting in Safari - when querySelectorAll isn't able to be used. 2009-02-14 18:10:45 +00:00
John Resig 868f262eed Disabled expando selector tests - they don't work in all browsers. 2009-02-14 17:13:08 +00:00
John Resig e16c7fe0f8 Make sure that elements are returned in document order - and that the results are unique. 2009-02-14 16:59:10 +00:00
John Resig 9aa0c69c43 Fixed bubbling of live events (if an inner element handles an event first - and stops progatation - then the parent event doesn't encounter the event). Thanks to Irae for the patch. Fixes bug #3980. 2009-02-09 23:29:57 +00:00
John Resig b16da9d762 Reworked the attribute selection code to be able to select false-y values - and added some tests to verify that they work well against expandos. 2009-02-09 15:18:07 +00:00
John Resig ce90accc58 Reworked the .clone() function in IE. Fixes jQuery bugs #3500 (jQuery expandos were causing extra elements to appear from using .html() cloning), #3254 (Mis-match in clone result length causes problem), and #2845 (Cloning an <object/> causes exceptions to be thrown). 2009-02-09 14:48:15 +00:00
John Resig f38648c7cd Added a fix for empty attribute selection values. Fixes jQuery bug #3990. 2009-02-07 17:41:30 +00:00
John Resig 2b7642cff0 Added logic for not using getElementsByClassName in different failure states. Fixes jQuery bugs #4058 and #4042. 2009-02-07 16:54:11 +00:00
John Resig b438d83916 Tweaked one of the selector tests. 2009-01-22 00:11:11 +00:00
John Resig d45f193948 A follow-up for bug #3945. ID selectors don't work in querySelectorAll on XML documents, so we just fall back to the normal engine. 2009-01-21 23:31:29 +00:00
John Resig 7d9d210540 Make sure that [name=foo] and #id selectors don't use the native methods on XML documents (since id and name attributes may not be defined by a DTD and will return nothing instead. Fixes jQuery bug #3945. 2009-01-21 23:19:30 +00:00
John Resig f9a5849723 Now handle the case where Safari's querySelectorAll fails on uppercase characters in quirks mode. Added a test to check for it and re-worked some of the existing tests to better handle document order issues. Fixes jQuery bug #3840. 2009-01-21 22:57:07 +00:00
John Resig 9b3804a8ec After discussing it with a number of users I've decided to revert the change to [name!=value]. It is now equal to :not([attr!=value]). Attempting to switch it to [attr]:not([attr!=value]) produced some really non-obvious results and confused users. Fixes jQuery bug #3884. 2009-01-21 22:36:21 +00:00
John Resig 626961c4a5 CHILD positions were being cached improperly. Tweaked it and added a test to make sure it doesn't happen again. Fixes jQuery bug #3924. 2009-01-21 22:01:50 +00:00
John Resig aa7616cf9a Added support for a[name^='foo['] style selectors. Fies jQuery bug #3928. 2009-01-20 19:44:08 +00:00
John Resig cd28922b78 Made sure that .removeClass(null) doesn't throw an exception. Fixes #3847. 2009-01-20 17:33:25 +00:00
John Resig a78557472c Focused support of .live(). stopPropagation and stopImmediatePropagation are not supported - and do not do what the use would expect. 2009-01-20 17:25:37 +00:00
John Resig 28a1f02223 Re-worked the logic for where .selector and .context are added for ID selectors (especially ones that aren't found). Fixes jQuery bug #3833. 2009-01-20 16:00:48 +00:00
John Resig 4e7d565e50 Added two more tweaks for XHTML core tests. 2009-01-19 23:33:46 +00:00
John Resig 9db710a156 Made some tweaks to the core tests so that they'll run better under XHTML. 2009-01-19 23:22:25 +00:00
John Resig 96152559e0 Landing a fix for non-link anchor tabIndex (from scott.gonzalez). Fixes ticket #3916. 2009-01-19 21:40:23 +00:00
John Resig 1d513efd3c Added a way to run the test suite as an XHTML page. 2009-01-19 18:14:51 +00:00
John Resig 8e8d7ade43 Merged some recent fixes in from Sizzle. 2009-01-19 18:09:11 +00:00
Ariel Flesler 34a9f8a210 jquery fx: sync animations were being left on jQuery.timers (double callback)
jQuery.timerId is now a local var and it's not null'ed anymore.
2009-01-14 23:09:52 +00:00
John Resig 6dc30ae7f6 Merged Sizzle changes back into jQuery. 2009-01-13 16:40:19 +00:00
John Resig ea78377760 Only try to wrap the element if it's not disconnected, fixed #3828. 2009-01-12 14:07:14 +00:00
John Resig 0c97178553 Fixed an issue with parentNode being accessed in attr() on disconnected DOM elements. 2009-01-12 14:00:35 +00:00
John Resig aa29b8e3bc Had to remove the global variable tricks (especially the delete window calls) as they cause
exceptions in IE. Also fixed a faulty test that assumed the order of Ajax function callbacks 
would be consistent.
2009-01-12 01:12:58 +00:00
John Resig 73ff49ac9a Prevented non-script <script> blocks from executing, fixing #3733. 2009-01-11 19:33:01 +00:00
John Resig 0066ba3f82 .closest() with positional selectors wasn't worked as expected. 2009-01-10 20:30:03 +00:00
John Resig b1018cad12 Landed a fix for when a DOM element gets accidentally removed by another live event handler. Thanks to Irae for the patches. Fixed #3820. 2009-01-10 19:57:07 +00:00
John Resig 29bf601f34 Fixed an issue with script nodes being removed incorrectly, fixes #3737. 2009-01-10 01:07:59 +00:00
Ariel Flesler afb05081c0 testrunner: Putting back the global variables used for ajax tests. I added many calls to delete though. The global namespace must be cleaned up before calling start() again. 2009-01-10 00:16:48 +00:00
Ariel Flesler d62875fb01 testrunner: Removing every global variable leaked within (and outside) tests. Some were deleted and some saved within the jQuery namespace. 2009-01-09 23:49:18 +00:00
John Resig ec7baf230d Didn't get specific enough with the proxy guid, fixes #3787. 2009-01-09 22:14:48 +00:00
John Resig d12e8a34e6 Made it so that you can bind a single function to multiple .live() selectors. Additionally, simplified the proxy code to provide a default proxy function.
Fixes #3787.
2009-01-09 22:10:42 +00:00
Ariel Flesler eced38a30d testrunner: refactored unbind's tests. Including one for #3538, passing since last commit. 2009-01-08 22:22:33 +00:00
John Resig c6f189ac73 Selector state wasn't being passed along on a cloned jQuery object. 2009-01-08 21:41:58 +00:00
Scott González 49d0d5b7a3 Fixed tabindex normalization so that elements that natively support tabbing, but don't have a tabindex explicitly set return 0 instead of undefined.
Removed jQuery.support.tabindex since we're only normalizing non-XML right now and all browsers support tabIndex for HTML documents.
2009-01-07 14:36:30 +00:00
John Resig b1e161466c Disabled an extra event binding. 2009-01-05 23:06:57 +00:00
John Resig 45b3a884d5 Timeout test appears to be flaky - disabling, for now. 2009-01-05 22:14:26 +00:00
John Resig 60226c8a30 The timeout test was waiting for 10 seconds - unnecessary, lowered it to 1 second. 2009-01-05 22:05:59 +00:00
John Resig d3141dcdba Simplified the XML clone test. 2009-01-05 21:56:35 +00:00
John Resig c6de039bb1 Simplified the XML selector test (save the result). 2009-01-05 21:04:15 +00:00
John Resig f796ad14fd Fixed an issue with how broken selector tests were handled in IE (the exception was misdirected). 2009-01-05 20:43:58 +00:00
John Resig 122b672f70 Landed cross-browser support for tabIndex, by Scott, closes ticket #3649. 2009-01-05 17:34:42 +00:00
John Resig 4694e537bc Forgot to merge in some of the new tests from Sizzle. 2009-01-05 01:24:14 +00:00
John Resig 989667c9fd Synced with the Sizzle repository. 2009-01-05 00:21:13 +00:00
John Resig c0294278db Landed a proper fix for #3255 - which involves doing createElement instead of going through the normal clean method. 2009-01-03 00:51:07 +00:00
John Resig b2583a7526 Fixed an issue that was introduced by [5743] (which didn't have a test case, either - that has been resolved). This fixed #3739. 2009-01-02 23:32:10 +00:00
Ariel Flesler 989e3f61f7 jquery event: closes #3772. The extra function on $.event.trigger isn't supported anymore. 2009-01-02 22:23:52 +00:00
John Resig d20e7fede1 Disabled testing of em-defined borders, need to look back into this issue. 2009-01-02 19:25:54 +00:00
John Resig c59bf424a1 The exact escaping of the text() test isn't important - as long as < is escaped. 2009-01-02 19:23:12 +00:00
John Resig 6a3d1a1e28 Fixed an issue with .not("#foo, bar") not working correctly, closes #3757. 2008-12-31 19:21:24 +00:00
Ariel Flesler c0446c70d5 jquery event:
* event objects have isDefaultPrevented, isPropagationStopped and isImmediatePropagationStopped methods.
* Removed donative and dohandlers from $.trigger
* event.result carries the last returned data from a handler(not undefined).
* $.trigger doesn't keep bubbling if stopPropagation() is called.
* Same event object is used all along for global trigger
* Fixed the bug where target doesn't change when triggering on many elements.
* The data array on $.trigger was accumulating objects as it bubbles.
testrunner: adding more tests
2008-12-31 02:58:13 +00:00
John Resig 4f7441910f Made sure that return false works in .live() along with the event object being passed in as the first argument. 2008-12-30 20:45:33 +00:00
Ariel Flesler 4afa608351 jquery data: Closes #3539. Exposed jQuery.queue. Moved all the data and queue functions to their own module. Made the dequeue function more generic(designed to be used on functions). Closes #3748. Reverted a previous modification. 2008-12-30 02:31:26 +00:00
Ariel Flesler 4f99e793fa jquery event: jQuery.Event can be instantiated without the 'new' keyword. 2008-12-29 21:57:29 +00:00
Ariel Flesler 4ca4ce52f7 jquery event: Closes #3662. Adds a jQuery.Event class. Makes trigger and fix simpler. Adds currentTarget attribute to event objects. Event object isn't passed as part of data. 2008-12-25 21:44:54 +00:00
Ariel Flesler 654d946ead jquery fx: Closes #3219. jQuery.fn.toggle can accept a boolean argument indicating show/hide. 2008-12-25 20:13:42 +00:00
Ariel Flesler 0a8f96ac3d jquery core: Closes #1681. jQuery.fn.toggleClass can accept a boolean argument indicating add/remove. 2008-12-25 20:12:18 +00:00
Ariel Flesler 0e3e470edc jquery core: Closes #3255. The div used in jQuery.clean is emptied in the end. Cleaning the parentNode's properties of the elements. 2008-12-25 19:47:56 +00:00
Ariel Flesler 4b25b147ab jquery core: Closes #3641. jQuery.merge stopped looping once a 0 was found. 2008-12-25 19:25:30 +00:00
John Resig c03a280155 Added a new liveQuery/event delegation hybrid method: .live and .die. Easily adapts event delegation to the jQuery style. $("div").live("click", fn); $("div > #foo").live("submit", fn); $("div").die("click"); 2008-12-22 04:59:34 +00:00
John Resig 67ded9a36a Made sure that the correct event.taget is being used in event bubbling. 2008-12-22 02:02:05 +00:00
John Resig 25885e07b2 Added support for bubbling triggered events. 2008-12-22 01:57:06 +00:00
John Resig 6b09032864 Added support for the new .closest() method (very useful for event delegation). 2008-12-22 00:52:53 +00:00
John Resig c85243dfc4 Landing the new Sizzle selector engine. There'll need to be some later tweaks (to make the tests a little more pragmatic - especially for document order elements). But it appears to be passing well and that's enough. Closes #3563. 2008-12-20 01:19:17 +00:00
John Resig 46ee77bcc3 Fixed line-ending issue. 2008-12-19 05:43:37 +00:00
John Resig 3963fcb30d Tweaked mis-numbered makeArray test. 2008-12-19 05:42:15 +00:00
John Resig 132b8de614 Switched to using DOM Fragments in domManip. 2008-12-19 04:37:54 +00:00
John Resig 2875460f63 Added selector path logging (creates a trail that plugins can use). 2008-12-19 04:37:10 +00:00
John Resig 77344f4c50 Added support for multiple-namespaced events (in bind, trigger, and unbind). 2008-12-19 04:34:12 +00:00
Ariel Flesler e611289a79 testrunner: re adding the test for a function within isFunction. 2008-12-16 00:05:04 +00:00
Brandon Aaron 5c21e44fce new offset method, faster and no more browser detection 2008-11-10 02:39:03 +00:00
Jörn Zaefferer 12bb969411 core: tests cleanup for compability with qunit updates: stop() now actually accepts an argument (ajax.js); selectors should be confined to fixture(event.js) 2008-10-24 14:40:58 +00:00
Ariel Flesler b860c30b82 test runner: Commented 2 tests that jam the suite. 2008-10-21 01:48:23 +00:00
Ariel Flesler 96e8f355da testrunner: fixing tests that were broken due to recent updates to qunit. 2008-10-18 21:59:09 +00:00
John Resig 0865b073f8 A test was using the old / child selector syntax - updating to the new style. 2008-08-21 17:08:50 +00:00
Ariel Flesler 1023cf1d72 jquery core: closes #3248, #3079, #3026, #3176, #3202, #3129. jQuery.makeArray doesn't support functions anymore. Voiding the conflict with Scriptaculous 1.7.x. 2008-08-12 19:34:30 +00:00
Jörn Zaefferer db63af1068 core/test: replaced local qunit copy with qunit via svn:externals; inlined styles specific to polluted.php; kept testrunner.js with just the noConflict call 2008-08-08 17:42:52 +00:00
Jörn Zaefferer c66aa57029 core: deleted useless test/fix.html 2008-08-08 17:21:42 +00:00
Ariel Flesler a27b5d0468 jquery core: closes #2652. val() supports option elements, also simplified the code. 2008-07-23 17:00:32 +00:00
Ariel Flesler 69212c501f jquery core: closes #2968. Simplified isFunction, dropping support for DOM methods and functions like alert() on IE. 2008-07-23 16:18:05 +00:00
Ariel Flesler fa13d6009d test runner: adding scriptaculous 1.7.0 for the polluted test runner. It fails, but 1.8.x doesn't fail anymore. 2008-07-22 02:12:08 +00:00
Ariel Flesler 28937ded0e test runner: optimizing a test for speed. 2008-07-01 02:08:45 +00:00
Ariel Flesler a23e4361fc test runner: recloses #3102. Adding one test for $().eq("1") 2008-07-01 02:05:46 +00:00
Ariel Flesler febe463cc2 test runner: closes #3048. The text from the tests, is html-escaped. 2008-06-17 20:11:47 +00:00
Ariel Flesler 21d669135d test runner: 2 tests for [5728]. 2008-06-17 19:59:16 +00:00
Scott González 24eb176f0c ajax tests: Replaced $ with jQuery. 2008-06-05 18:11:29 +00:00
Ariel Flesler 1e9593646f test runner: adding 2 tests for .val( Number ).
Removed a silly test.
2008-05-29 00:03:45 +00:00
Ariel Flesler 9e48649729 test runner: the changes are:
- Replaced all the $ for jQuery in the tests and suite.
- Added a noConflict to testrunner.js.
- Modified the test for noConflict() so that it still work.
- Added jQuery 1.2.1 and 1.2.3 to otherlibs.
2008-05-28 23:18:25 +00:00
Ariel Flesler 52fbe5d2a8 test runner: adding a new test page called 'polluted'. Where one can choose to pre-include other libraries and run the test suite with them. 2008-05-28 20:19:18 +00:00
Ariel Flesler 6bf51eea04 test runner: Adding type="text/javascript" to a script tag (trivial). 2008-05-28 18:46:38 +00:00
Ariel Flesler c6e88b16e9 test runner: a test for load() with a hash of data, and another for load() with a string of data (#1516).
It includes a php that dumps all the GET and POST vars to html elements, where the key makes the id, and the value the text.
2008-05-27 22:46:28 +00:00
Ariel Flesler 3c5c3dffaa test runner: A test was failing on Opera 9.50. Not a bug, just made the test less specific and it passed. 2008-05-24 21:27:12 +00:00
Ariel Flesler 0e63c789e3 test runner: adding more tests for attr(). Related to [5574] and [5683]. 2008-05-24 18:11:55 +00:00
Brandon Aaron 2c2a6253e3 Updating unit tests for offset 2008-05-15 23:36:06 +00:00
Brandon Aaron de6520b50e Added some unit tests for position method. Fixed issue with position in IE. 2008-05-15 19:38:00 +00:00
Ariel Flesler 1382ea8d98 test runner: improved the shown message of 4 isFunction tests. 2008-05-14 21:18:46 +00:00
Brandon Aaron bf802496c6 Updating outerWidth unit test to use absolute position 2008-05-13 18:56:56 +00:00
Ariel Flesler 37394598cb test runner: improved a test and added a missing semicolon 2008-05-12 22:59:58 +00:00
Ariel Flesler 16f6b3684d test runner: when errors are thrown in a test, the message is successfully show on all browsers. 2008-05-12 22:31:27 +00:00
Jörn Zaefferer aec0dad980 jquery core: reverted qunit introduction until build scripts are updated 2008-05-08 21:42:40 +00:00
Jörn Zaefferer b6bb0d46b6 jquery testsuite: switch to qunit 2008-05-08 19:33:49 +00:00
Ariel Flesler 0a794ed5fc test runner: added 2 tests for [5500] 2008-05-08 17:16:49 +00:00
Ariel Flesler 6a9b73c7b9 test runner: extra tests for $.fn.add enabled by [5503] and a small fix for an html() test. 2008-05-08 17:11:03 +00:00
Ariel Flesler 407c5eb430 test runner: extra test case, [5501] 2008-05-08 16:25:12 +00:00
Ariel Flesler 9f0c0cfec5 test runner: making 2 tests more flexible because they yield a slightly different result on Safari 3, but still acceptable. 2008-05-08 16:04:01 +00:00
Scott González 5311565223 ajax test: Removed test for extending with null. 2008-05-07 01:16:54 +00:00
Ariel Flesler 96ca83d150 test runner: extra test for makeArray, related to [5481] 2008-05-07 00:46:14 +00:00
Jörn Zaefferer 46931d3146 jquery ajax: support for dynamic data arguments, see #2806; added test/data/echoQuery.php for easier testing of sent query strings 2008-05-06 22:21:43 +00:00
Jörn Zaefferer 1753ab3d82 jquery testrunner: reset $.ajaxSettings after each run to prevent sideeffects between tests 2008-05-06 19:39:58 +00:00
Ariel Flesler ba48be3ada test runner: translated all the ok() with '==' to equals(), as it gives more information on failures. 2008-05-06 18:56:02 +00:00
Ariel Flesler 6fc2c67581 test runner: adding some tests that were missing for the $ constructor. 2008-05-06 00:42:59 +00:00
Jörn Zaefferer d726a96b1f jquery testrunner: reset global events after each run, speeds up a test run for ajax from 16s to 10s (test/?ajax), kudos to Ariel 2008-05-05 23:29:28 +00:00
Scott González f8698395ac core: Fixed #2605: .data() now accepts null as a value. 2008-05-03 01:51:55 +00:00
Scott González ad3c49d1b6 core: Fixed #2605: .data() now accepts null as a value. 2008-05-03 01:39:27 +00:00
Scott González 35c68b4578 core: Fixed #2600: jQuery.extend no longer skips over null properties. 2008-05-02 19:49:41 +00:00
Ariel Flesler d822c0c214 test runner: adding a test case for $.fn._toggle with more than 2 functions. 2008-04-29 22:20:02 +00:00
Ariel Flesler f54d277df4 test runner: voided the failing tests for jQuery.map, that belong to an unapproved proposal(#2616). 2008-04-29 20:54:30 +00:00
Ariel Flesler 5ca908d3b6 test runner: added another test for makeArray. 2008-04-29 20:52:48 +00:00
Brandon Aaron aea452f162 Merged dimensions with core 2008-04-29 03:26:06 +00:00
Jörn Zaefferer ab756ceab0 jquery core: tests for #2616 2008-04-28 14:00:27 +00:00
Ariel Flesler 508b1e2432 jquery core: fixed makeArray to recognize the window (has length)
test runner: updated the tests for makeArray
2008-04-25 03:48:07 +00:00
Ariel Flesler ba391eccf9 - Adding the enhancements to the test runner, to accept multiple(and negative) filters from the GET variables, as specified in the ticket #2738. 2008-04-24 21:32:35 +00:00
Jörn Zaefferer f8e5fd6fef jquery core: Patch from #2619 applied, making makeArray more flexible and faster; removed hint to ticket from (previously failing) test 2008-04-24 21:23:36 +00:00
Jörn Zaefferer f12d94a628 testrunner: refactored url-test-filter, still regex based 2008-04-24 20:08:50 +00:00
Ariel Flesler 291f071eff - adding the tests for the changes to $.makeArray, proposed at #2619 2008-04-22 23:07:35 +00:00
Jörn Zaefferer f861c88b1b jquery testrunner: accept regexp to select tests, eg. /test/?^core|^selector to run both core and selector module 2008-04-22 22:43:18 +00:00
Jörn Zaefferer e454e8305d jquery.ajax: improvement for #2688, added test 2008-04-22 22:07:17 +00:00
Jörn Zaefferer 32b1cb3a5c jquery.event: Patch for #2708 2008-04-22 21:59:40 +00:00
Brandon Aaron 5d033dba02 Trigger onclick handlers of links 2008-04-21 20:39:17 +00:00
John Resig b0c7df65d0 You can now overwrite values returned from .data() with .bind("getData") - returning a value will override any bound value on that element. 2008-02-03 18:43:04 +00:00
John Resig 4a11e6d70b Tweaked the .data() event triggering - it now triggers a single 'setData' event, passing in a key value pair of what was changed. 2008-02-03 17:56:21 +00:00
John Resig 703e89ba30 Added support for .unbind(".test") to unbind all namespaced events on an element. 2008-02-03 04:33:11 +00:00
John Resig 77da94552e Added $().data(), $().removeData(), and .bind("click!"). .data() and .removeData() handle namespaced data, .data() triggers a "set-KEY" event on all modified elements, and .bind("click!") only triggers a click (and no namespaced events). 2008-02-03 04:05:24 +00:00
David Serduke 1faed11e3c Fix #2184 by using the jQuery.clean() function instead of a direct innerHTML assignment in the clone() function for IE. 2008-01-23 03:54:23 +00:00
David Serduke 0635df4391 Fixed #2174 by removing the s.dataType == "json" check for possible cross domain since it causes absolute urls to use a <script> tag ajax retrieval even though absolute urls work fine for retrieving local data. Cross-domain jsonp will still work since the $.ajax() function actually changes the s.dataType to "script" before it reaches this check in cases where it is s.dataType == "jsonp" or s.dataType == "json" and a parameter has =? in it. 2008-01-17 21:38:58 +00:00
John Resig d0fae71464 Discontinued the test for $(form.elements). 2008-01-14 20:40:05 +00:00
John Resig 2e6c123c87 Excluded a couple Ajax tests from running locally. 2008-01-14 20:17:21 +00:00
John Resig c39bd07cc9 Added support for breaking in an object loop (Bug #2111). 2008-01-14 20:06:34 +00:00
Brandon Aaron 8a356f0d23 Adding browser UA tests 2008-01-14 18:47:21 +00:00
Jörn Zaefferer 2fa855601e fix for #2114; refactored tests for bind() to highlight failing select-change-test 2008-01-14 09:33:08 +00:00
Jörn Zaefferer 948753842b Test for #2114 2008-01-04 11:33:34 +00:00
David Serduke 50c40add5a Fixed a couple problems found in the test suite. First, IE doesn't like it when text nodes were trying to duplicate their events in clone, so don't do text nodes (that shouldn't have events anyway). Also the fx module was freezing from a recent update that wasn't quite finished. 2007-12-20 20:40:20 +00:00