Index: jquery/version.txt =================================================================== --- jquery/version.txt (revision 1611) +++ jquery/version.txt (working copy) @@ -1 +1 @@ -1.1.2 +1.1.2+RSE Index: jquery/src/jquery/jquery.js =================================================================== --- jquery/src/jquery/jquery.js (revision 1611) +++ jquery/src/jquery/jquery.js (working copy) @@ -1043,6 +1043,18 @@ is: function(expr) { return expr ? jQuery.multiFilter(expr,this).length > 0 : false; }, + + /** + * Sort and reverse the nodes in an jQuery object + * (see http://dev.jquery.com/ticket/255) + */ + sort: function () { + return this.pushStack(jQuery.makeArray([].sort.apply(this, arguments))); + }, + + reverse: function () { + return this.pushStack(this.get().reverse(), arguments); + }, /** * Get the content of the value attribute of the first matched element. @@ -1453,7 +1465,7 @@ if ( arg.constructor == Number ) arg = arg.toString(); - // Convert html string into DOM nodes + // Convert html string into DOM nodes if ( typeof arg == "string" ) { // Trim whitespace, otherwise indexOf won't work as expected var s = jQuery.trim(arg), div = doc.createElement("div"), tb = []; Index: jquery/src/selector/selector.js =================================================================== --- jquery/src/selector/selector.js (revision 1611) +++ jquery/src/selector/selector.js (working copy) @@ -52,6 +52,8 @@ "@": { "=": "z==m[4]", "!=": "z!=m[4]", + "=~": "z.match(RegExp(m[4]))!=null", + "!~": "z.match(RegExp(m[4]))==null", "^=": "z&&!z.indexOf(m[4])", "$=": "z&&z.substr(z.length - m[4].length,m[4].length)==m[4]", "*=": "z&&z.indexOf(m[4])>=0", @@ -67,7 +69,7 @@ // The regular expressions that power the parsing engine parse: [ // Match: [@value='test'], [@foo] - /^\[ *(@)([\w-]+) *([!*$^=]*) *('?"?)(.*?)\4 *\]/, + /^\[ *(@)([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, // Match: [div], [div p] /^(\[)\s*(.*?(\[.*?\])?[^[]*?)\s*\]/, Index: jquery/src/event/event.js =================================================================== --- jquery/src/event/event.js (revision 1611) +++ jquery/src/event/event.js (working copy) @@ -264,7 +264,7 @@ * Binds a handler to a particular event (like click) for each matched element. * The handler is executed only once for each element. Otherwise, the same rules * as described in bind() apply. - The event handler is passed an event object that you can use to prevent + * The event handler is passed an event object that you can use to prevent * default behaviour. To stop both default action and event bubbling, your handler * has to return false. * @@ -545,6 +545,7 @@ * * @name scroll * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the scroll event on each of the matched elements. * @cat Events */ @@ -560,6 +561,7 @@ * * @name submit * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the submit event on each of the matched elements. * @cat Events */ @@ -590,6 +592,7 @@ * * @name focus * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the focus event on each of the matched elements. * @cat Events */ @@ -619,6 +622,7 @@ * * @name keydown * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the keydown event on each of the matched elements. * @cat Events */ @@ -632,6 +636,7 @@ * * @name dblclick * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the dblclick event on each of the matched elements. * @cat Events */ @@ -645,6 +650,7 @@ * * @name keypress * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the keypress event on each of the matched elements. * @cat Events */ @@ -658,6 +664,7 @@ * * @name error * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the error event on each of the matched elements. * @cat Events */ @@ -671,6 +678,7 @@ * * @name blur * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the blur event on each of the matched elements. * @cat Events */ @@ -702,6 +710,7 @@ * * @name load * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the load event on each of the matched elements. * @cat Events */ @@ -715,6 +724,7 @@ * * @name select * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the select event on each of the matched elements. * @cat Events */ @@ -743,6 +753,7 @@ * * @name mouseup * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the mouseup event on each of the matched elements. * @cat Events */ @@ -756,6 +767,7 @@ * * @name unload * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the unload event on each of the matched elements. * @cat Events */ @@ -769,6 +781,7 @@ * * @name change * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the change event on each of the matched elements. * @cat Events */ @@ -782,6 +795,7 @@ * * @name mouseout * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the mouseout event on each of the matched elements. * @cat Events */ @@ -795,6 +809,7 @@ * * @name keyup * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the keyup event on each of the matched elements. * @cat Events */ @@ -808,6 +823,7 @@ * * @name click * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the click event on each of the matched elements. * @cat Events */ @@ -834,6 +850,7 @@ * * @name resize * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the resize event on each of the matched elements. * @cat Events */ @@ -847,6 +864,7 @@ * * @name mousemove * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the mousemove event on each of the matched elements. * @cat Events */ @@ -860,6 +878,7 @@ * * @name mousedown * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the mousedown event on each of the matched elements. * @cat Events */ @@ -873,6 +892,7 @@ * * @name mouseover * @type jQuery + * @param Object data (optional) Additional data passed to the event handler as event.data * @param Function fn A function to bind to the mousedown event on each of the matched elements. * @cat Events */ @@ -881,8 +901,8 @@ "submit,keydown,keypress,keyup,error").split(","), function(i,o){ // Handle event binding - jQuery.fn[o] = function(f){ - return f ? this.bind(o, f) : this.trigger(o); + jQuery.fn[o] = function(d,f){ + return (f || d) ? this.bind(o, d, f) : this.trigger(o); }; }); Index: jquery/src/fx/fx.js =================================================================== --- jquery/src/fx/fx.js (revision 1611) +++ jquery/src/fx/fx.js (working copy) @@ -304,7 +304,7 @@ * @example $("p").animate({ * opacity: 'show' * }, "slow", "easein"); - * @desc An example of using an 'easing' function to provide a different style of animation. This will only work if you have a plugin that provides this easing function (Only 'linear' is provided by default, with jQuery). + * @desc An example of using an 'easing' function to provide a different style of animation. This will only work if you have a plugin that provides this easing function (Only 'swing' and 'linear' are provided by default, with jQuery). * * @name animate * @type jQuery Index: plugins/validate/jquery.validate.js =================================================================== --- plugins/validate/jquery.validate.js (revision 1611) +++ plugins/validate/jquery.validate.js (working copy) @@ -756,6 +756,17 @@ return value.length > 0; } }, + + /** + * Return true, if the value matches a regex. + * + * @name jQuery.validator.methods.regex + * @type Boolean + * @cat Plugins/Validate/Methods + */ + regex: function(value, element, param) { + return !jQuery.validator.methods.required(value, element) || param.test(value); + }, /** * Return false, if the element is @@ -1115,8 +1126,8 @@ * Add a new validation method. It must consist of a name (must be a legal * javascript identifier), a function and a default message. * - * Please note: While the temptation is great to - * add a regex method that checks it's paramter against the value, + * Please note: While the "regex" method above can be used + * to checks it's paramter against the value, * it is much cleaner to encapsulate those regular expressions * inside their own method. If you need lots of slightly different * expressions, try to extract a common parameter. Index: plugins/methods/string.js =================================================================== --- plugins/methods/string.js (revision 1611) +++ plugins/methods/string.js (working copy) @@ -16,7 +16,7 @@ /** * Adds a given method under the given name - * to the Date prototype if it doesn't + * to the String prototype if it doesn't * currently exist. * * @private @@ -147,7 +147,7 @@ * @cat Plugins/Methods/String */ add("stripTags", function() { - return this.replace(/<\/?[^>]+>/gi, ''); + return this.replace(/<([a-zA-Z][a-zA-Z0-9:_-]*(\s+[a-zA-Z][a-zA-Z0-9:_-]*=("[^"]*"|'[^']*'))*|\/?[a-zA-Z][a-zA-Z0-9:_-])>/gi, ''); }); -})(); \ No newline at end of file +})(); Index: plugins/methods/array.js =================================================================== --- plugins/methods/array.js (revision 1611) +++ plugins/methods/array.js (working copy) @@ -16,7 +16,7 @@ /** * Adds a given method under the given name - * to the Date prototype if it doesn't + * to the Array prototype if it doesn't * currently exist. * * @private @@ -47,7 +47,7 @@ for( var i = 0; i < this.length; i++) handler.call(scope, this[i], i, this); }); - + /** * Tests whether all elements in the array pass the test * implemented by the provided function. @@ -194,4 +194,4 @@ }); }); -})(); \ No newline at end of file +})(); Index: plugins/cookie/jquery.cookie.js =================================================================== --- plugins/cookie/jquery.cookie.js (revision 1611) +++ plugins/cookie/jquery.cookie.js (working copy) @@ -17,6 +17,8 @@ * @desc Create a cookie with all available options. * @example $.cookie('the_cookie', 'the_value'); * @desc Create a session cookie. + * @example $.cookie('the_cookie', null); + * @desc Delete a cookie by passing a null value. * @example $.cookie('the_cookie', '', {expires: -1}); * @desc Delete a cookie by setting a date in the past. * @@ -55,15 +57,35 @@ jQuery.cookie = function(name, value, options) { if (typeof value != 'undefined') { // name and value given, set cookie options = options || {}; + if (value === null) { + value = ""; + options.expires = -1; + } var expires = ''; - if (options.expires && (typeof options.expires == 'number' || options.expires.toGMTString)) { + if (options.expires) { var date; - if (typeof options.expires == 'number') { + if (typeof options.expires == 'string' && options.expires.match(/^[+-]?[0-9]+[YMWDhms]$/) !== null) { + var match = options.expires.match(/^([+-]?[0-9]+)([YMDWhms])$/); + options.expires = parseInt(match[0], 10) * (({ + "Y": (60 * 60 * 24 * 365), + "M": (60 * 60 * 24 * 365/12), + "W": (60 * 60 * 24 * 7), + "D": (60 * 60 * 24), + "h": (60 * 60), + "m": (60), + "s": (1) + }[match[1]]) || 0); date = new Date(); - date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); - } else { + date.setTime(date.getTime() + options.expires * 1000); + } + else if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000); + } + else if (typeof options.expires.toGMTString != 'undefined') date = options.expires; - } + else + throw "invalid \"expires\" option"; expires = '; expires=' + date.toGMTString(); // use expires attribute, max-age is not supported by IE } var path = options.path ? '; path=' + options.path : ''; @@ -85,4 +107,4 @@ } return cookieValue; } -}; \ No newline at end of file +}; Index: plugins/squeezebox/index.html =================================================================== --- plugins/squeezebox/index.html (revision 1611) +++ plugins/squeezebox/index.html (working copy) @@ -8,7 +8,7 @@ - +