Mercurial > hg > MakeItSo
annotate makeitso/static/jquery.js @ 133:cd51ef9288ea
WIP
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 03 Nov 2011 11:00:01 -0700 |
parents | bf1ce840d0f0 |
children |
rev | line source |
---|---|
14
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 /*! |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 * jQuery JavaScript Library v1.3.2 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 * http://jquery.com/ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 * |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 * Copyright (c) 2009 John Resig |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 * Dual licensed under the MIT and GPL licenses. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 * http://docs.jquery.com/License |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 * |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 * Revision: 6246 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 */ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 var |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 // Will speed up references to window, and allows munging its name. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 window = this, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 // Will speed up references to undefined, and allows munging its name. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 undefined, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
19 // Map over jQuery in case of overwrite |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 _jQuery = window.jQuery, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
21 // Map over the $ in case of overwrite |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
22 _$ = window.$, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
23 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
24 jQuery = window.jQuery = window.$ = function( selector, context ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
25 // The jQuery object is actually just the init constructor 'enhanced' |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
26 return new jQuery.fn.init( selector, context ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
27 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 // A simple way to check for HTML strings or ID strings |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 // (both of which we optimize for) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
31 quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
32 // Is it a simple selector |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
33 isSimple = /^.[^:#\[\.,]*$/; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
34 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
35 jQuery.fn = jQuery.prototype = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
36 init: function( selector, context ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
37 // Make sure that a selection was provided |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
38 selector = selector || document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
39 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
40 // Handle $(DOMElement) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
41 if ( selector.nodeType ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
42 this[0] = selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
43 this.length = 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
44 this.context = selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
45 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
46 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
47 // Handle HTML strings |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
48 if ( typeof selector === "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
49 // Are we dealing with HTML string or an ID? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
50 var match = quickExpr.exec( selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
51 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
52 // Verify a match, and that no context was specified for #id |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
53 if ( match && (match[1] || !context) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
54 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
55 // HANDLE: $(html) -> $(array) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
56 if ( match[1] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
57 selector = jQuery.clean( [ match[1] ], context ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
58 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
59 // HANDLE: $("#id") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
60 else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
61 var elem = document.getElementById( match[3] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
62 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
63 // Handle the case where IE and Opera return items |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
64 // by name instead of ID |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
65 if ( elem && elem.id != match[3] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
66 return jQuery().find( selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
67 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
68 // Otherwise, we inject the element directly into the jQuery object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
69 var ret = jQuery( elem || [] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
70 ret.context = document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
71 ret.selector = selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
72 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
73 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
74 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
75 // HANDLE: $(expr, [context]) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
76 // (which is just equivalent to: $(content).find(expr) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
77 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
78 return jQuery( context ).find( selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
79 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
80 // HANDLE: $(function) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
81 // Shortcut for document ready |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
82 } else if ( jQuery.isFunction( selector ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
83 return jQuery( document ).ready( selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
84 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
85 // Make sure that old selector state is passed along |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
86 if ( selector.selector && selector.context ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
87 this.selector = selector.selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
88 this.context = selector.context; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
89 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
90 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
91 return this.setArray(jQuery.isArray( selector ) ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
92 selector : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
93 jQuery.makeArray(selector)); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
94 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
95 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
96 // Start with an empty selector |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
97 selector: "", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
98 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
99 // The current version of jQuery being used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
100 jquery: "1.3.2", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
101 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
102 // The number of elements contained in the matched element set |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
103 size: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
104 return this.length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
105 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
106 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
107 // Get the Nth element in the matched element set OR |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
108 // Get the whole matched element set as a clean array |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
109 get: function( num ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
110 return num === undefined ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
111 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
112 // Return a 'clean' array |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
113 Array.prototype.slice.call( this ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
114 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
115 // Return just the object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
116 this[ num ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
117 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
118 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
119 // Take an array of elements and push it onto the stack |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
120 // (returning the new matched element set) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
121 pushStack: function( elems, name, selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
122 // Build a new jQuery matched element set |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
123 var ret = jQuery( elems ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
124 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
125 // Add the old object onto the stack (as a reference) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
126 ret.prevObject = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
127 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
128 ret.context = this.context; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
129 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
130 if ( name === "find" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
131 ret.selector = this.selector + (this.selector ? " " : "") + selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
132 else if ( name ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
133 ret.selector = this.selector + "." + name + "(" + selector + ")"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
134 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
135 // Return the newly-formed element set |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
136 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
137 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
138 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
139 // Force the current matched set of elements to become |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
140 // the specified array of elements (destroying the stack in the process) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
141 // You should use pushStack() in order to do this, but maintain the stack |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
142 setArray: function( elems ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
143 // Resetting the length to 0, then using the native Array push |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
144 // is a super-fast way to populate an object with array-like properties |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
145 this.length = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
146 Array.prototype.push.apply( this, elems ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
147 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
148 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
149 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
150 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
151 // Execute a callback for every element in the matched set. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
152 // (You can seed the arguments with an array of args, but this is |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
153 // only used internally.) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
154 each: function( callback, args ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
155 return jQuery.each( this, callback, args ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
156 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
157 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
158 // Determine the position of an element within |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
159 // the matched set of elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
160 index: function( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
161 // Locate the position of the desired element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
162 return jQuery.inArray( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
163 // If it receives a jQuery object, the first element is used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
164 elem && elem.jquery ? elem[0] : elem |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
165 , this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
166 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
167 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
168 attr: function( name, value, type ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
169 var options = name; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
170 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
171 // Look for the case where we're accessing a style value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
172 if ( typeof name === "string" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
173 if ( value === undefined ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
174 return this[0] && jQuery[ type || "attr" ]( this[0], name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
175 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
176 else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
177 options = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
178 options[ name ] = value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
179 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
180 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
181 // Check to see if we're setting style values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
182 return this.each(function(i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
183 // Set all the styles |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
184 for ( name in options ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
185 jQuery.attr( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
186 type ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
187 this.style : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
188 this, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
189 name, jQuery.prop( this, options[ name ], type, i, name ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
190 ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
191 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
192 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
193 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
194 css: function( key, value ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
195 // ignore negative width and height values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
196 if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
197 value = undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
198 return this.attr( key, value, "curCSS" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
199 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
200 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
201 text: function( text ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
202 if ( typeof text !== "object" && text != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
203 return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
204 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
205 var ret = ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
206 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
207 jQuery.each( text || this, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
208 jQuery.each( this.childNodes, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
209 if ( this.nodeType != 8 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
210 ret += this.nodeType != 1 ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
211 this.nodeValue : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
212 jQuery.fn.text( [ this ] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
213 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
214 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
215 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
216 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
217 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
218 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
219 wrapAll: function( html ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
220 if ( this[0] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
221 // The elements to wrap the target around |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
222 var wrap = jQuery( html, this[0].ownerDocument ).clone(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
223 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
224 if ( this[0].parentNode ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
225 wrap.insertBefore( this[0] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
226 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
227 wrap.map(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
228 var elem = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
229 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
230 while ( elem.firstChild ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
231 elem = elem.firstChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
232 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
233 return elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
234 }).append(this); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
235 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
236 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
237 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
238 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
239 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
240 wrapInner: function( html ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
241 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
242 jQuery( this ).contents().wrapAll( html ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
243 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
244 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
245 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
246 wrap: function( html ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
247 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
248 jQuery( this ).wrapAll( html ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
249 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
250 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
251 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
252 append: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
253 return this.domManip(arguments, true, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
254 if (this.nodeType == 1) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
255 this.appendChild( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
256 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
257 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
258 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
259 prepend: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
260 return this.domManip(arguments, true, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
261 if (this.nodeType == 1) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
262 this.insertBefore( elem, this.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
263 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
264 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
265 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
266 before: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
267 return this.domManip(arguments, false, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
268 this.parentNode.insertBefore( elem, this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
269 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
270 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
271 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
272 after: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
273 return this.domManip(arguments, false, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
274 this.parentNode.insertBefore( elem, this.nextSibling ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
275 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
276 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
277 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
278 end: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
279 return this.prevObject || jQuery( [] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
280 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
281 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
282 // For internal use only. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
283 // Behaves like an Array's method, not like a jQuery method. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
284 push: [].push, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
285 sort: [].sort, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
286 splice: [].splice, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
287 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
288 find: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
289 if ( this.length === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
290 var ret = this.pushStack( [], "find", selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
291 ret.length = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
292 jQuery.find( selector, this[0], ret ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
293 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
294 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
295 return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
296 return jQuery.find( selector, elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
297 })), "find", selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
298 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
299 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
300 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
301 clone: function( events ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
302 // Do the clone |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
303 var ret = this.map(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
304 if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
305 // IE copies events bound via attachEvent when |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
306 // using cloneNode. Calling detachEvent on the |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
307 // clone will also remove the events from the orignal |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
308 // In order to get around this, we use innerHTML. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
309 // Unfortunately, this means some modifications to |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
310 // attributes in IE that are actually only stored |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
311 // as properties will not be copied (such as the |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
312 // the name attribute on an input). |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
313 var html = this.outerHTML; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
314 if ( !html ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
315 var div = this.ownerDocument.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
316 div.appendChild( this.cloneNode(true) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
317 html = div.innerHTML; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
318 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
319 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
320 return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
321 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
322 return this.cloneNode(true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
323 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
324 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
325 // Copy the events from the original to the clone |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
326 if ( events === true ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
327 var orig = this.find("*").andSelf(), i = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
328 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
329 ret.find("*").andSelf().each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
330 if ( this.nodeName !== orig[i].nodeName ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
331 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
332 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
333 var events = jQuery.data( orig[i], "events" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
334 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
335 for ( var type in events ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
336 for ( var handler in events[ type ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
337 jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
338 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
339 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
340 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
341 i++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
342 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
343 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
344 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
345 // Return the cloned set |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
346 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
347 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
348 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
349 filter: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
350 return this.pushStack( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
351 jQuery.isFunction( selector ) && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
352 jQuery.grep(this, function(elem, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
353 return selector.call( elem, i ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
354 }) || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
355 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
356 jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
357 return elem.nodeType === 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
358 }) ), "filter", selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
359 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
360 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
361 closest: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
362 var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
363 closer = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
364 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
365 return this.map(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
366 var cur = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
367 while ( cur && cur.ownerDocument ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
368 if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
369 jQuery.data(cur, "closest", closer); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
370 return cur; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
371 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
372 cur = cur.parentNode; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
373 closer++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
374 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
375 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
376 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
377 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
378 not: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
379 if ( typeof selector === "string" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
380 // test special case where just one selector is passed in |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
381 if ( isSimple.test( selector ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
382 return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
383 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
384 selector = jQuery.multiFilter( selector, this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
385 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
386 var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
387 return this.filter(function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
388 return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
389 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
390 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
391 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
392 add: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
393 return this.pushStack( jQuery.unique( jQuery.merge( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
394 this.get(), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
395 typeof selector === "string" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
396 jQuery( selector ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
397 jQuery.makeArray( selector ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
398 ))); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
399 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
400 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
401 is: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
402 return !!selector && jQuery.multiFilter( selector, this ).length > 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
403 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
404 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
405 hasClass: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
406 return !!selector && this.is( "." + selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
407 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
408 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
409 val: function( value ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
410 if ( value === undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
411 var elem = this[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
412 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
413 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
414 if( jQuery.nodeName( elem, 'option' ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
415 return (elem.attributes.value || {}).specified ? elem.value : elem.text; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
416 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
417 // We need to handle select boxes special |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
418 if ( jQuery.nodeName( elem, "select" ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
419 var index = elem.selectedIndex, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
420 values = [], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
421 options = elem.options, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
422 one = elem.type == "select-one"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
423 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
424 // Nothing was selected |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
425 if ( index < 0 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
426 return null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
427 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
428 // Loop through all the selected options |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
429 for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
430 var option = options[ i ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
431 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
432 if ( option.selected ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
433 // Get the specifc value for the option |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
434 value = jQuery(option).val(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
435 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
436 // We don't need an array for one selects |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
437 if ( one ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
438 return value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
439 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
440 // Multi-Selects return an array |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
441 values.push( value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
442 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
443 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
444 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
445 return values; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
446 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
447 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
448 // Everything else, we just grab the value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
449 return (elem.value || "").replace(/\r/g, ""); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
450 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
451 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
452 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
453 return undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
454 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
455 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
456 if ( typeof value === "number" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
457 value += ''; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
458 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
459 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
460 if ( this.nodeType != 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
461 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
462 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
463 if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
464 this.checked = (jQuery.inArray(this.value, value) >= 0 || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
465 jQuery.inArray(this.name, value) >= 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
466 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
467 else if ( jQuery.nodeName( this, "select" ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
468 var values = jQuery.makeArray(value); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
469 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
470 jQuery( "option", this ).each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
471 this.selected = (jQuery.inArray( this.value, values ) >= 0 || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
472 jQuery.inArray( this.text, values ) >= 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
473 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
474 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
475 if ( !values.length ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
476 this.selectedIndex = -1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
477 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
478 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
479 this.value = value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
480 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
481 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
482 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
483 html: function( value ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
484 return value === undefined ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
485 (this[0] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
486 this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
487 null) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
488 this.empty().append( value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
489 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
490 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
491 replaceWith: function( value ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
492 return this.after( value ).remove(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
493 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
494 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
495 eq: function( i ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
496 return this.slice( i, +i + 1 ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
497 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
498 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
499 slice: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
500 return this.pushStack( Array.prototype.slice.apply( this, arguments ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
501 "slice", Array.prototype.slice.call(arguments).join(",") ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
502 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
503 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
504 map: function( callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
505 return this.pushStack( jQuery.map(this, function(elem, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
506 return callback.call( elem, i, elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
507 })); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
508 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
509 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
510 andSelf: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
511 return this.add( this.prevObject ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
512 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
513 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
514 domManip: function( args, table, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
515 if ( this[0] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
516 var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
517 scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
518 first = fragment.firstChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
519 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
520 if ( first ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
521 for ( var i = 0, l = this.length; i < l; i++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
522 callback.call( root(this[i], first), this.length > 1 || i > 0 ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
523 fragment.cloneNode(true) : fragment ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
524 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
525 if ( scripts ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
526 jQuery.each( scripts, evalScript ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
527 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
528 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
529 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
530 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
531 function root( elem, cur ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
532 return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
533 (elem.getElementsByTagName("tbody")[0] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
534 elem.appendChild(elem.ownerDocument.createElement("tbody"))) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
535 elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
536 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
537 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
538 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
539 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
540 // Give the init function the jQuery prototype for later instantiation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
541 jQuery.fn.init.prototype = jQuery.fn; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
542 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
543 function evalScript( i, elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
544 if ( elem.src ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
545 jQuery.ajax({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
546 url: elem.src, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
547 async: false, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
548 dataType: "script" |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
549 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
550 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
551 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
552 jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
553 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
554 if ( elem.parentNode ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
555 elem.parentNode.removeChild( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
556 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
557 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
558 function now(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
559 return +new Date; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
560 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
561 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
562 jQuery.extend = jQuery.fn.extend = function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
563 // copy reference to target object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
564 var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
565 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
566 // Handle a deep copy situation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
567 if ( typeof target === "boolean" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
568 deep = target; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
569 target = arguments[1] || {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
570 // skip the boolean and the target |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
571 i = 2; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
572 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
573 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
574 // Handle case when target is a string or something (possible in deep copy) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
575 if ( typeof target !== "object" && !jQuery.isFunction(target) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
576 target = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
577 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
578 // extend jQuery itself if only one argument is passed |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
579 if ( length == i ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
580 target = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
581 --i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
582 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
583 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
584 for ( ; i < length; i++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
585 // Only deal with non-null/undefined values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
586 if ( (options = arguments[ i ]) != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
587 // Extend the base object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
588 for ( var name in options ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
589 var src = target[ name ], copy = options[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
590 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
591 // Prevent never-ending loop |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
592 if ( target === copy ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
593 continue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
594 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
595 // Recurse if we're merging object values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
596 if ( deep && copy && typeof copy === "object" && !copy.nodeType ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
597 target[ name ] = jQuery.extend( deep, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
598 // Never move original objects, clone them |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
599 src || ( copy.length != null ? [ ] : { } ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
600 , copy ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
601 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
602 // Don't bring in undefined values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
603 else if ( copy !== undefined ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
604 target[ name ] = copy; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
605 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
606 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
607 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
608 // Return the modified object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
609 return target; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
610 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
611 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
612 // exclude the following css properties to add px |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
613 var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
614 // cache defaultView |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
615 defaultView = document.defaultView || {}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
616 toString = Object.prototype.toString; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
617 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
618 jQuery.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
619 noConflict: function( deep ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
620 window.$ = _$; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
621 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
622 if ( deep ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
623 window.jQuery = _jQuery; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
624 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
625 return jQuery; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
626 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
627 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
628 // See test/unit/core.js for details concerning isFunction. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
629 // Since version 1.3, DOM methods and functions like alert |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
630 // aren't supported. They return false on IE (#2968). |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
631 isFunction: function( obj ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
632 return toString.call(obj) === "[object Function]"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
633 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
634 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
635 isArray: function( obj ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
636 return toString.call(obj) === "[object Array]"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
637 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
638 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
639 // check if an element is in a (or is an) XML document |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
640 isXMLDoc: function( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
641 return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
642 !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
643 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
644 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
645 // Evalulates a script in a global context |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
646 globalEval: function( data ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
647 if ( data && /\S/.test(data) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
648 // Inspired by code by Andrea Giammarchi |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
649 // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
650 var head = document.getElementsByTagName("head")[0] || document.documentElement, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
651 script = document.createElement("script"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
652 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
653 script.type = "text/javascript"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
654 if ( jQuery.support.scriptEval ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
655 script.appendChild( document.createTextNode( data ) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
656 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
657 script.text = data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
658 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
659 // Use insertBefore instead of appendChild to circumvent an IE6 bug. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
660 // This arises when a base node is used (#2709). |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
661 head.insertBefore( script, head.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
662 head.removeChild( script ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
663 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
664 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
665 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
666 nodeName: function( elem, name ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
667 return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
668 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
669 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
670 // args is for internal usage only |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
671 each: function( object, callback, args ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
672 var name, i = 0, length = object.length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
673 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
674 if ( args ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
675 if ( length === undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
676 for ( name in object ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
677 if ( callback.apply( object[ name ], args ) === false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
678 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
679 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
680 for ( ; i < length; ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
681 if ( callback.apply( object[ i++ ], args ) === false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
682 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
683 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
684 // A special, fast, case for the most common use of each |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
685 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
686 if ( length === undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
687 for ( name in object ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
688 if ( callback.call( object[ name ], name, object[ name ] ) === false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
689 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
690 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
691 for ( var value = object[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
692 i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
693 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
694 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
695 return object; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
696 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
697 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
698 prop: function( elem, value, type, i, name ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
699 // Handle executable functions |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
700 if ( jQuery.isFunction( value ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
701 value = value.call( elem, i ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
702 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
703 // Handle passing in a number to a CSS property |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
704 return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
705 value + "px" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
706 value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
707 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
708 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
709 className: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
710 // internal only, use addClass("class") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
711 add: function( elem, classNames ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
712 jQuery.each((classNames || "").split(/\s+/), function(i, className){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
713 if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
714 elem.className += (elem.className ? " " : "") + className; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
715 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
716 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
717 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
718 // internal only, use removeClass("class") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
719 remove: function( elem, classNames ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
720 if (elem.nodeType == 1) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
721 elem.className = classNames !== undefined ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
722 jQuery.grep(elem.className.split(/\s+/), function(className){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
723 return !jQuery.className.has( classNames, className ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
724 }).join(" ") : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
725 ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
726 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
727 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
728 // internal only, use hasClass("class") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
729 has: function( elem, className ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
730 return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
731 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
732 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
733 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
734 // A method for quickly swapping in/out CSS properties to get correct calculations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
735 swap: function( elem, options, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
736 var old = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
737 // Remember the old values, and insert the new ones |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
738 for ( var name in options ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
739 old[ name ] = elem.style[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
740 elem.style[ name ] = options[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
741 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
742 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
743 callback.call( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
744 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
745 // Revert the old values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
746 for ( var name in options ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
747 elem.style[ name ] = old[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
748 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
749 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
750 css: function( elem, name, force, extra ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
751 if ( name == "width" || name == "height" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
752 var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
753 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
754 function getWH() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
755 val = name == "width" ? elem.offsetWidth : elem.offsetHeight; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
756 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
757 if ( extra === "border" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
758 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
759 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
760 jQuery.each( which, function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
761 if ( !extra ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
762 val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
763 if ( extra === "margin" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
764 val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
765 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
766 val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
767 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
768 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
769 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
770 if ( elem.offsetWidth !== 0 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
771 getWH(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
772 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
773 jQuery.swap( elem, props, getWH ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
774 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
775 return Math.max(0, Math.round(val)); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
776 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
777 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
778 return jQuery.curCSS( elem, name, force ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
779 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
780 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
781 curCSS: function( elem, name, force ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
782 var ret, style = elem.style; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
783 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
784 // We need to handle opacity special in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
785 if ( name == "opacity" && !jQuery.support.opacity ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
786 ret = jQuery.attr( style, "opacity" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
787 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
788 return ret == "" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
789 "1" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
790 ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
791 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
792 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
793 // Make sure we're using the right name for getting the float value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
794 if ( name.match( /float/i ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
795 name = styleFloat; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
796 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
797 if ( !force && style && style[ name ] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
798 ret = style[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
799 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
800 else if ( defaultView.getComputedStyle ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
801 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
802 // Only "float" is needed here |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
803 if ( name.match( /float/i ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
804 name = "float"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
805 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
806 name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
807 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
808 var computedStyle = defaultView.getComputedStyle( elem, null ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
809 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
810 if ( computedStyle ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
811 ret = computedStyle.getPropertyValue( name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
812 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
813 // We should always get a number back from opacity |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
814 if ( name == "opacity" && ret == "" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
815 ret = "1"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
816 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
817 } else if ( elem.currentStyle ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
818 var camelCase = name.replace(/\-(\w)/g, function(all, letter){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
819 return letter.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
820 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
821 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
822 ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
823 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
824 // From the awesome hack by Dean Edwards |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
825 // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
826 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
827 // If we're not dealing with a regular pixel number |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
828 // but a number that has a weird ending, we need to convert it to pixels |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
829 if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
830 // Remember the original values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
831 var left = style.left, rsLeft = elem.runtimeStyle.left; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
832 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
833 // Put in the new values to get a computed value out |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
834 elem.runtimeStyle.left = elem.currentStyle.left; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
835 style.left = ret || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
836 ret = style.pixelLeft + "px"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
837 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
838 // Revert the changed values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
839 style.left = left; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
840 elem.runtimeStyle.left = rsLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
841 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
842 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
843 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
844 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
845 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
846 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
847 clean: function( elems, context, fragment ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
848 context = context || document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
849 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
850 // !context.createElement fails in IE with an error but returns typeof 'object' |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
851 if ( typeof context.createElement === "undefined" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
852 context = context.ownerDocument || context[0] && context[0].ownerDocument || document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
853 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
854 // If a single string is passed in and it's a single tag |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
855 // just do a createElement and skip the rest |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
856 if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
857 var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
858 if ( match ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
859 return [ context.createElement( match[1] ) ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
860 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
861 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
862 var ret = [], scripts = [], div = context.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
863 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
864 jQuery.each(elems, function(i, elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
865 if ( typeof elem === "number" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
866 elem += ''; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
867 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
868 if ( !elem ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
869 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
870 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
871 // Convert html string into DOM nodes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
872 if ( typeof elem === "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
873 // Fix "XHTML"-style tags in all browsers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
874 elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
875 return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
876 all : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
877 front + "></" + tag + ">"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
878 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
879 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
880 // Trim whitespace, otherwise indexOf won't work as expected |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
881 var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
882 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
883 var wrap = |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
884 // option or optgroup |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
885 !tags.indexOf("<opt") && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
886 [ 1, "<select multiple='multiple'>", "</select>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
887 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
888 !tags.indexOf("<leg") && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
889 [ 1, "<fieldset>", "</fieldset>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
890 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
891 tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
892 [ 1, "<table>", "</table>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
893 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
894 !tags.indexOf("<tr") && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
895 [ 2, "<table><tbody>", "</tbody></table>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
896 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
897 // <thead> matched above |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
898 (!tags.indexOf("<td") || !tags.indexOf("<th")) && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
899 [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
900 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
901 !tags.indexOf("<col") && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
902 [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
903 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
904 // IE can't serialize <link> and <script> tags normally |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
905 !jQuery.support.htmlSerialize && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
906 [ 1, "div<div>", "</div>" ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
907 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
908 [ 0, "", "" ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
909 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
910 // Go to html and back, then peel off extra wrappers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
911 div.innerHTML = wrap[1] + elem + wrap[2]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
912 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
913 // Move to the right depth |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
914 while ( wrap[0]-- ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
915 div = div.lastChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
916 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
917 // Remove IE's autoinserted <tbody> from table fragments |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
918 if ( !jQuery.support.tbody ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
919 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
920 // String was a <table>, *may* have spurious <tbody> |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
921 var hasBody = /<tbody/i.test(elem), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
922 tbody = !tags.indexOf("<table") && !hasBody ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
923 div.firstChild && div.firstChild.childNodes : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
924 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
925 // String was a bare <thead> or <tfoot> |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
926 wrap[1] == "<table>" && !hasBody ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
927 div.childNodes : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
928 []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
929 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
930 for ( var j = tbody.length - 1; j >= 0 ; --j ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
931 if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
932 tbody[ j ].parentNode.removeChild( tbody[ j ] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
933 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
934 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
935 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
936 // IE completely kills leading whitespace when innerHTML is used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
937 if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
938 div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
939 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
940 elem = jQuery.makeArray( div.childNodes ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
941 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
942 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
943 if ( elem.nodeType ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
944 ret.push( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
945 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
946 ret = jQuery.merge( ret, elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
947 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
948 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
949 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
950 if ( fragment ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
951 for ( var i = 0; ret[i]; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
952 if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
953 scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
954 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
955 if ( ret[i].nodeType === 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
956 ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
957 fragment.appendChild( ret[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
958 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
959 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
960 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
961 return scripts; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
962 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
963 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
964 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
965 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
966 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
967 attr: function( elem, name, value ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
968 // don't set attributes on text and comment nodes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
969 if (!elem || elem.nodeType == 3 || elem.nodeType == 8) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
970 return undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
971 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
972 var notxml = !jQuery.isXMLDoc( elem ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
973 // Whether we are setting (or getting) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
974 set = value !== undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
975 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
976 // Try to normalize/fix the name |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
977 name = notxml && jQuery.props[ name ] || name; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
978 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
979 // Only do all the following if this is a node (faster for style) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
980 // IE elem.getAttribute passes even for style |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
981 if ( elem.tagName ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
982 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
983 // These attributes require special treatment |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
984 var special = /href|src|style/.test( name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
985 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
986 // Safari mis-reports the default selected property of a hidden option |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
987 // Accessing the parent's selectedIndex property fixes it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
988 if ( name == "selected" && elem.parentNode ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
989 elem.parentNode.selectedIndex; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
990 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
991 // If applicable, access the attribute via the DOM 0 way |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
992 if ( name in elem && notxml && !special ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
993 if ( set ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
994 // We can't allow the type property to be changed (since it causes problems in IE) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
995 if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
996 throw "type property can't be changed"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
997 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
998 elem[ name ] = value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
999 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1000 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1001 // browsers index elements by id/name on forms, give priority to attributes. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1002 if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1003 return elem.getAttributeNode( name ).nodeValue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1004 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1005 // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1006 // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1007 if ( name == "tabIndex" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1008 var attributeNode = elem.getAttributeNode( "tabIndex" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1009 return attributeNode && attributeNode.specified |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1010 ? attributeNode.value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1011 : elem.nodeName.match(/(button|input|object|select|textarea)/i) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1012 ? 0 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1013 : elem.nodeName.match(/^(a|area)$/i) && elem.href |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1014 ? 0 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1015 : undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1016 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1017 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1018 return elem[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1019 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1020 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1021 if ( !jQuery.support.style && notxml && name == "style" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1022 return jQuery.attr( elem.style, "cssText", value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1023 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1024 if ( set ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1025 // convert the value to a string (all browsers do this but IE) see #1070 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1026 elem.setAttribute( name, "" + value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1027 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1028 var attr = !jQuery.support.hrefNormalized && notxml && special |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1029 // Some attributes require a special call on IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1030 ? elem.getAttribute( name, 2 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1031 : elem.getAttribute( name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1032 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1033 // Non-existent attributes return null, we normalize to undefined |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1034 return attr === null ? undefined : attr; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1035 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1036 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1037 // elem is actually elem.style ... set the style |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1038 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1039 // IE uses filters for opacity |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1040 if ( !jQuery.support.opacity && name == "opacity" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1041 if ( set ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1042 // IE has trouble with opacity if it does not have layout |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1043 // Force it by setting the zoom level |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1044 elem.zoom = 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1045 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1046 // Set the alpha filter to set the opacity |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1047 elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) + |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1048 (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1049 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1050 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1051 return elem.filter && elem.filter.indexOf("opacity=") >= 0 ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1052 (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '': |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1053 ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1054 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1055 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1056 name = name.replace(/-([a-z])/ig, function(all, letter){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1057 return letter.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1058 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1059 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1060 if ( set ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1061 elem[ name ] = value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1062 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1063 return elem[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1064 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1065 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1066 trim: function( text ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1067 return (text || "").replace( /^\s+|\s+$/g, "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1068 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1069 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1070 makeArray: function( array ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1071 var ret = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1072 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1073 if( array != null ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1074 var i = array.length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1075 // The window, strings (and functions) also have 'length' |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1076 if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1077 ret[0] = array; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1078 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1079 while( i ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1080 ret[--i] = array[i]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1081 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1082 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1083 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1084 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1085 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1086 inArray: function( elem, array ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1087 for ( var i = 0, length = array.length; i < length; i++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1088 // Use === because on IE, window == document |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1089 if ( array[ i ] === elem ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1090 return i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1091 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1092 return -1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1093 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1094 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1095 merge: function( first, second ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1096 // We have to loop this way because IE & Opera overwrite the length |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1097 // expando of getElementsByTagName |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1098 var i = 0, elem, pos = first.length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1099 // Also, we need to make sure that the correct elements are being returned |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1100 // (IE returns comment nodes in a '*' query) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1101 if ( !jQuery.support.getAll ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1102 while ( (elem = second[ i++ ]) != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1103 if ( elem.nodeType != 8 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1104 first[ pos++ ] = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1105 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1106 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1107 while ( (elem = second[ i++ ]) != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1108 first[ pos++ ] = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1109 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1110 return first; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1111 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1112 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1113 unique: function( array ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1114 var ret = [], done = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1115 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1116 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1117 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1118 for ( var i = 0, length = array.length; i < length; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1119 var id = jQuery.data( array[ i ] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1120 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1121 if ( !done[ id ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1122 done[ id ] = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1123 ret.push( array[ i ] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1124 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1125 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1126 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1127 } catch( e ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1128 ret = array; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1129 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1130 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1131 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1132 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1133 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1134 grep: function( elems, callback, inv ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1135 var ret = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1136 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1137 // Go through the array, only saving the items |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1138 // that pass the validator function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1139 for ( var i = 0, length = elems.length; i < length; i++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1140 if ( !inv != !callback( elems[ i ], i ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1141 ret.push( elems[ i ] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1142 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1143 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1144 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1145 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1146 map: function( elems, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1147 var ret = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1148 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1149 // Go through the array, translating each of the items to their |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1150 // new value (or values). |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1151 for ( var i = 0, length = elems.length; i < length; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1152 var value = callback( elems[ i ], i ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1153 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1154 if ( value != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1155 ret[ ret.length ] = value; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1156 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1157 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1158 return ret.concat.apply( [], ret ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1159 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1160 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1161 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1162 // Use of jQuery.browser is deprecated. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1163 // It's included for backwards compatibility and plugins, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1164 // although they should work to migrate away. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1165 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1166 var userAgent = navigator.userAgent.toLowerCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1167 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1168 // Figure out what browser is being used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1169 jQuery.browser = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1170 version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1171 safari: /webkit/.test( userAgent ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1172 opera: /opera/.test( userAgent ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1173 msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1174 mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1175 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1176 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1177 jQuery.each({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1178 parent: function(elem){return elem.parentNode;}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1179 parents: function(elem){return jQuery.dir(elem,"parentNode");}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1180 next: function(elem){return jQuery.nth(elem,2,"nextSibling");}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1181 prev: function(elem){return jQuery.nth(elem,2,"previousSibling");}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1182 nextAll: function(elem){return jQuery.dir(elem,"nextSibling");}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1183 prevAll: function(elem){return jQuery.dir(elem,"previousSibling");}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1184 siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1185 children: function(elem){return jQuery.sibling(elem.firstChild);}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1186 contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1187 }, function(name, fn){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1188 jQuery.fn[ name ] = function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1189 var ret = jQuery.map( this, fn ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1190 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1191 if ( selector && typeof selector == "string" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1192 ret = jQuery.multiFilter( selector, ret ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1193 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1194 return this.pushStack( jQuery.unique( ret ), name, selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1195 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1196 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1197 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1198 jQuery.each({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1199 appendTo: "append", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1200 prependTo: "prepend", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1201 insertBefore: "before", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1202 insertAfter: "after", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1203 replaceAll: "replaceWith" |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1204 }, function(name, original){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1205 jQuery.fn[ name ] = function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1206 var ret = [], insert = jQuery( selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1207 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1208 for ( var i = 0, l = insert.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1209 var elems = (i > 0 ? this.clone(true) : this).get(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1210 jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1211 ret = ret.concat( elems ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1212 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1213 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1214 return this.pushStack( ret, name, selector ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1215 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1216 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1217 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1218 jQuery.each({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1219 removeAttr: function( name ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1220 jQuery.attr( this, name, "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1221 if (this.nodeType == 1) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1222 this.removeAttribute( name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1223 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1224 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1225 addClass: function( classNames ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1226 jQuery.className.add( this, classNames ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1227 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1228 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1229 removeClass: function( classNames ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1230 jQuery.className.remove( this, classNames ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1231 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1232 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1233 toggleClass: function( classNames, state ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1234 if( typeof state !== "boolean" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1235 state = !jQuery.className.has( this, classNames ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1236 jQuery.className[ state ? "add" : "remove" ]( this, classNames ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1237 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1238 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1239 remove: function( selector ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1240 if ( !selector || jQuery.filter( selector, [ this ] ).length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1241 // Prevent memory leaks |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1242 jQuery( "*", this ).add([this]).each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1243 jQuery.event.remove(this); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1244 jQuery.removeData(this); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1245 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1246 if (this.parentNode) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1247 this.parentNode.removeChild( this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1248 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1249 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1250 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1251 empty: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1252 // Remove element nodes and prevent memory leaks |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1253 jQuery(this).children().remove(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1254 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1255 // Remove any remaining nodes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1256 while ( this.firstChild ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1257 this.removeChild( this.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1258 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1259 }, function(name, fn){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1260 jQuery.fn[ name ] = function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1261 return this.each( fn, arguments ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1262 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1263 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1264 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1265 // Helper function used by the dimensions and offset modules |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1266 function num(elem, prop) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1267 return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1268 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1269 var expando = "jQuery" + now(), uuid = 0, windowData = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1270 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1271 jQuery.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1272 cache: {}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1273 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1274 data: function( elem, name, data ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1275 elem = elem == window ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1276 windowData : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1277 elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1278 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1279 var id = elem[ expando ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1280 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1281 // Compute a unique ID for the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1282 if ( !id ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1283 id = elem[ expando ] = ++uuid; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1284 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1285 // Only generate the data cache if we're |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1286 // trying to access or manipulate it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1287 if ( name && !jQuery.cache[ id ] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1288 jQuery.cache[ id ] = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1289 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1290 // Prevent overriding the named cache with undefined values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1291 if ( data !== undefined ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1292 jQuery.cache[ id ][ name ] = data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1293 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1294 // Return the named cache data, or the ID for the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1295 return name ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1296 jQuery.cache[ id ][ name ] : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1297 id; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1298 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1299 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1300 removeData: function( elem, name ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1301 elem = elem == window ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1302 windowData : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1303 elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1304 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1305 var id = elem[ expando ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1306 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1307 // If we want to remove a specific section of the element's data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1308 if ( name ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1309 if ( jQuery.cache[ id ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1310 // Remove the section of cache data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1311 delete jQuery.cache[ id ][ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1312 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1313 // If we've removed all the data, remove the element's cache |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1314 name = ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1315 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1316 for ( name in jQuery.cache[ id ] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1317 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1318 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1319 if ( !name ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1320 jQuery.removeData( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1321 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1322 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1323 // Otherwise, we want to remove all of the element's data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1324 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1325 // Clean up the element expando |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1326 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1327 delete elem[ expando ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1328 } catch(e){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1329 // IE has trouble directly removing the expando |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1330 // but it's ok with using removeAttribute |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1331 if ( elem.removeAttribute ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1332 elem.removeAttribute( expando ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1333 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1334 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1335 // Completely remove the data cache |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1336 delete jQuery.cache[ id ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1337 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1338 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1339 queue: function( elem, type, data ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1340 if ( elem ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1341 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1342 type = (type || "fx") + "queue"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1343 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1344 var q = jQuery.data( elem, type ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1345 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1346 if ( !q || jQuery.isArray(data) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1347 q = jQuery.data( elem, type, jQuery.makeArray(data) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1348 else if( data ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1349 q.push( data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1350 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1351 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1352 return q; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1353 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1354 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1355 dequeue: function( elem, type ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1356 var queue = jQuery.queue( elem, type ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1357 fn = queue.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1358 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1359 if( !type || type === "fx" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1360 fn = queue[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1361 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1362 if( fn !== undefined ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1363 fn.call(elem); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1364 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1365 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1366 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1367 jQuery.fn.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1368 data: function( key, value ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1369 var parts = key.split("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1370 parts[1] = parts[1] ? "." + parts[1] : ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1371 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1372 if ( value === undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1373 var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1374 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1375 if ( data === undefined && this.length ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1376 data = jQuery.data( this[0], key ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1377 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1378 return data === undefined && parts[1] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1379 this.data( parts[0] ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1380 data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1381 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1382 return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1383 jQuery.data( this, key, value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1384 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1385 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1386 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1387 removeData: function( key ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1388 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1389 jQuery.removeData( this, key ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1390 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1391 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1392 queue: function(type, data){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1393 if ( typeof type !== "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1394 data = type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1395 type = "fx"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1396 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1397 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1398 if ( data === undefined ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1399 return jQuery.queue( this[0], type ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1400 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1401 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1402 var queue = jQuery.queue( this, type, data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1403 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1404 if( type == "fx" && queue.length == 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1405 queue[0].call(this); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1406 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1407 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1408 dequeue: function(type){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1409 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1410 jQuery.dequeue( this, type ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1411 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1412 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1413 });/*! |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1414 * Sizzle CSS Selector Engine - v0.9.3 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1415 * Copyright 2009, The Dojo Foundation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1416 * Released under the MIT, BSD, and GPL Licenses. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1417 * More information: http://sizzlejs.com/ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1418 */ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1419 (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1420 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1421 var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1422 done = 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1423 toString = Object.prototype.toString; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1424 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1425 var Sizzle = function(selector, context, results, seed) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1426 results = results || []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1427 context = context || document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1428 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1429 if ( context.nodeType !== 1 && context.nodeType !== 9 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1430 return []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1431 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1432 if ( !selector || typeof selector !== "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1433 return results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1434 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1435 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1436 var parts = [], m, set, checkSet, check, mode, extra, prune = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1437 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1438 // Reset the position of the chunker regexp (start from head) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1439 chunker.lastIndex = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1440 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1441 while ( (m = chunker.exec(selector)) !== null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1442 parts.push( m[1] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1443 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1444 if ( m[2] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1445 extra = RegExp.rightContext; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1446 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1447 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1448 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1449 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1450 if ( parts.length > 1 && origPOS.exec( selector ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1451 if ( parts.length === 2 && Expr.relative[ parts[0] ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1452 set = posProcess( parts[0] + parts[1], context ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1453 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1454 set = Expr.relative[ parts[0] ] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1455 [ context ] : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1456 Sizzle( parts.shift(), context ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1457 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1458 while ( parts.length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1459 selector = parts.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1460 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1461 if ( Expr.relative[ selector ] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1462 selector += parts.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1463 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1464 set = posProcess( selector, set ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1465 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1466 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1467 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1468 var ret = seed ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1469 { expr: parts.pop(), set: makeArray(seed) } : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1470 Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1471 set = Sizzle.filter( ret.expr, ret.set ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1472 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1473 if ( parts.length > 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1474 checkSet = makeArray(set); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1475 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1476 prune = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1477 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1478 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1479 while ( parts.length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1480 var cur = parts.pop(), pop = cur; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1481 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1482 if ( !Expr.relative[ cur ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1483 cur = ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1484 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1485 pop = parts.pop(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1486 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1487 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1488 if ( pop == null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1489 pop = context; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1490 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1491 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1492 Expr.relative[ cur ]( checkSet, pop, isXML(context) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1493 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1494 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1495 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1496 if ( !checkSet ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1497 checkSet = set; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1498 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1499 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1500 if ( !checkSet ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1501 throw "Syntax error, unrecognized expression: " + (cur || selector); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1502 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1503 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1504 if ( toString.call(checkSet) === "[object Array]" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1505 if ( !prune ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1506 results.push.apply( results, checkSet ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1507 } else if ( context.nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1508 for ( var i = 0; checkSet[i] != null; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1509 if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1510 results.push( set[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1511 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1512 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1513 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1514 for ( var i = 0; checkSet[i] != null; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1515 if ( checkSet[i] && checkSet[i].nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1516 results.push( set[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1517 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1518 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1519 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1520 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1521 makeArray( checkSet, results ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1522 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1523 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1524 if ( extra ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1525 Sizzle( extra, context, results, seed ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1526 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1527 if ( sortOrder ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1528 hasDuplicate = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1529 results.sort(sortOrder); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1530 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1531 if ( hasDuplicate ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1532 for ( var i = 1; i < results.length; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1533 if ( results[i] === results[i-1] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1534 results.splice(i--, 1); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1535 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1536 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1537 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1538 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1539 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1540 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1541 return results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1542 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1543 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1544 Sizzle.matches = function(expr, set){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1545 return Sizzle(expr, null, null, set); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1546 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1547 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1548 Sizzle.find = function(expr, context, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1549 var set, match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1550 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1551 if ( !expr ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1552 return []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1553 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1554 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1555 for ( var i = 0, l = Expr.order.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1556 var type = Expr.order[i], match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1557 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1558 if ( (match = Expr.match[ type ].exec( expr )) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1559 var left = RegExp.leftContext; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1560 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1561 if ( left.substr( left.length - 1 ) !== "\\" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1562 match[1] = (match[1] || "").replace(/\\/g, ""); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1563 set = Expr.find[ type ]( match, context, isXML ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1564 if ( set != null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1565 expr = expr.replace( Expr.match[ type ], "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1566 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1567 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1568 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1569 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1570 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1571 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1572 if ( !set ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1573 set = context.getElementsByTagName("*"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1574 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1575 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1576 return {set: set, expr: expr}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1577 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1578 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1579 Sizzle.filter = function(expr, set, inplace, not){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1580 var old = expr, result = [], curLoop = set, match, anyFound, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1581 isXMLFilter = set && set[0] && isXML(set[0]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1582 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1583 while ( expr && set.length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1584 for ( var type in Expr.filter ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1585 if ( (match = Expr.match[ type ].exec( expr )) != null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1586 var filter = Expr.filter[ type ], found, item; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1587 anyFound = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1588 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1589 if ( curLoop == result ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1590 result = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1591 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1592 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1593 if ( Expr.preFilter[ type ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1594 match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1595 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1596 if ( !match ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1597 anyFound = found = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1598 } else if ( match === true ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1599 continue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1600 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1601 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1602 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1603 if ( match ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1604 for ( var i = 0; (item = curLoop[i]) != null; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1605 if ( item ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1606 found = filter( item, match, i, curLoop ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1607 var pass = not ^ !!found; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1608 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1609 if ( inplace && found != null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1610 if ( pass ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1611 anyFound = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1612 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1613 curLoop[i] = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1614 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1615 } else if ( pass ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1616 result.push( item ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1617 anyFound = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1618 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1619 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1620 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1621 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1622 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1623 if ( found !== undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1624 if ( !inplace ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1625 curLoop = result; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1626 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1627 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1628 expr = expr.replace( Expr.match[ type ], "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1629 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1630 if ( !anyFound ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1631 return []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1632 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1633 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1634 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1635 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1636 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1637 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1638 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1639 // Improper expression |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1640 if ( expr == old ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1641 if ( anyFound == null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1642 throw "Syntax error, unrecognized expression: " + expr; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1643 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1644 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1645 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1646 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1647 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1648 old = expr; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1649 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1650 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1651 return curLoop; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1652 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1653 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1654 var Expr = Sizzle.selectors = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1655 order: [ "ID", "NAME", "TAG" ], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1656 match: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1657 ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1658 CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1659 NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1660 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1661 TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1662 CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1663 POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1664 PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1665 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1666 attrMap: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1667 "class": "className", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1668 "for": "htmlFor" |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1669 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1670 attrHandle: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1671 href: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1672 return elem.getAttribute("href"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1673 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1674 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1675 relative: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1676 "+": function(checkSet, part, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1677 var isPartStr = typeof part === "string", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1678 isTag = isPartStr && !/\W/.test(part), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1679 isPartStrNotTag = isPartStr && !isTag; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1680 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1681 if ( isTag && !isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1682 part = part.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1683 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1684 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1685 for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1686 if ( (elem = checkSet[i]) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1687 while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1688 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1689 checkSet[i] = isPartStrNotTag || elem && elem.nodeName === part ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1690 elem || false : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1691 elem === part; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1692 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1693 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1694 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1695 if ( isPartStrNotTag ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1696 Sizzle.filter( part, checkSet, true ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1697 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1698 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1699 ">": function(checkSet, part, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1700 var isPartStr = typeof part === "string"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1701 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1702 if ( isPartStr && !/\W/.test(part) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1703 part = isXML ? part : part.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1704 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1705 for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1706 var elem = checkSet[i]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1707 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1708 var parent = elem.parentNode; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1709 checkSet[i] = parent.nodeName === part ? parent : false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1710 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1711 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1712 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1713 for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1714 var elem = checkSet[i]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1715 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1716 checkSet[i] = isPartStr ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1717 elem.parentNode : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1718 elem.parentNode === part; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1719 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1720 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1721 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1722 if ( isPartStr ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1723 Sizzle.filter( part, checkSet, true ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1724 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1725 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1726 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1727 "": function(checkSet, part, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1728 var doneName = done++, checkFn = dirCheck; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1729 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1730 if ( !part.match(/\W/) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1731 var nodeCheck = part = isXML ? part : part.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1732 checkFn = dirNodeCheck; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1733 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1734 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1735 checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1736 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1737 "~": function(checkSet, part, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1738 var doneName = done++, checkFn = dirCheck; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1739 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1740 if ( typeof part === "string" && !part.match(/\W/) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1741 var nodeCheck = part = isXML ? part : part.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1742 checkFn = dirNodeCheck; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1743 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1744 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1745 checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1746 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1747 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1748 find: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1749 ID: function(match, context, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1750 if ( typeof context.getElementById !== "undefined" && !isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1751 var m = context.getElementById(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1752 return m ? [m] : []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1753 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1754 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1755 NAME: function(match, context, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1756 if ( typeof context.getElementsByName !== "undefined" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1757 var ret = [], results = context.getElementsByName(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1758 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1759 for ( var i = 0, l = results.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1760 if ( results[i].getAttribute("name") === match[1] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1761 ret.push( results[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1762 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1763 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1764 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1765 return ret.length === 0 ? null : ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1766 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1767 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1768 TAG: function(match, context){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1769 return context.getElementsByTagName(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1770 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1771 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1772 preFilter: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1773 CLASS: function(match, curLoop, inplace, result, not, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1774 match = " " + match[1].replace(/\\/g, "") + " "; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1775 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1776 if ( isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1777 return match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1778 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1779 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1780 for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1781 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1782 if ( not ^ (elem.className && (" " + elem.className + " ").indexOf(match) >= 0) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1783 if ( !inplace ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1784 result.push( elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1785 } else if ( inplace ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1786 curLoop[i] = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1787 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1788 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1789 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1790 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1791 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1792 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1793 ID: function(match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1794 return match[1].replace(/\\/g, ""); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1795 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1796 TAG: function(match, curLoop){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1797 for ( var i = 0; curLoop[i] === false; i++ ){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1798 return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1799 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1800 CHILD: function(match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1801 if ( match[1] == "nth" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1802 // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6' |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1803 var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1804 match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1805 !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1806 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1807 // calculate the numbers (first)n+(last) including if they are negative |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1808 match[2] = (test[1] + (test[2] || 1)) - 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1809 match[3] = test[3] - 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1810 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1811 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1812 // TODO: Move to normal caching system |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1813 match[0] = done++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1814 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1815 return match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1816 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1817 ATTR: function(match, curLoop, inplace, result, not, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1818 var name = match[1].replace(/\\/g, ""); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1819 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1820 if ( !isXML && Expr.attrMap[name] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1821 match[1] = Expr.attrMap[name]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1822 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1823 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1824 if ( match[2] === "~=" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1825 match[4] = " " + match[4] + " "; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1826 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1827 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1828 return match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1829 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1830 PSEUDO: function(match, curLoop, inplace, result, not){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1831 if ( match[1] === "not" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1832 // If we're dealing with a complex expression, or a simple one |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1833 if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1834 match[3] = Sizzle(match[3], null, null, curLoop); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1835 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1836 var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1837 if ( !inplace ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1838 result.push.apply( result, ret ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1839 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1840 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1841 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1842 } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1843 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1844 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1845 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1846 return match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1847 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1848 POS: function(match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1849 match.unshift( true ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1850 return match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1851 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1852 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1853 filters: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1854 enabled: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1855 return elem.disabled === false && elem.type !== "hidden"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1856 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1857 disabled: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1858 return elem.disabled === true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1859 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1860 checked: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1861 return elem.checked === true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1862 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1863 selected: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1864 // Accessing this property makes selected-by-default |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1865 // options in Safari work properly |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1866 elem.parentNode.selectedIndex; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1867 return elem.selected === true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1868 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1869 parent: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1870 return !!elem.firstChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1871 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1872 empty: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1873 return !elem.firstChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1874 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1875 has: function(elem, i, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1876 return !!Sizzle( match[3], elem ).length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1877 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1878 header: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1879 return /h\d/i.test( elem.nodeName ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1880 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1881 text: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1882 return "text" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1883 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1884 radio: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1885 return "radio" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1886 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1887 checkbox: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1888 return "checkbox" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1889 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1890 file: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1891 return "file" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1892 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1893 password: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1894 return "password" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1895 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1896 submit: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1897 return "submit" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1898 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1899 image: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1900 return "image" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1901 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1902 reset: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1903 return "reset" === elem.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1904 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1905 button: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1906 return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1907 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1908 input: function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1909 return /input|select|textarea|button/i.test(elem.nodeName); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1910 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1911 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1912 setFilters: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1913 first: function(elem, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1914 return i === 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1915 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1916 last: function(elem, i, match, array){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1917 return i === array.length - 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1918 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1919 even: function(elem, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1920 return i % 2 === 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1921 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1922 odd: function(elem, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1923 return i % 2 === 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1924 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1925 lt: function(elem, i, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1926 return i < match[3] - 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1927 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1928 gt: function(elem, i, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1929 return i > match[3] - 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1930 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1931 nth: function(elem, i, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1932 return match[3] - 0 == i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1933 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1934 eq: function(elem, i, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1935 return match[3] - 0 == i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1936 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1937 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1938 filter: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1939 PSEUDO: function(elem, match, i, array){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1940 var name = match[1], filter = Expr.filters[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1941 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1942 if ( filter ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1943 return filter( elem, i, match, array ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1944 } else if ( name === "contains" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1945 return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1946 } else if ( name === "not" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1947 var not = match[3]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1948 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1949 for ( var i = 0, l = not.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1950 if ( not[i] === elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1951 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1952 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1953 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1954 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1955 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1956 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1957 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1958 CHILD: function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1959 var type = match[1], node = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1960 switch (type) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1961 case 'only': |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1962 case 'first': |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1963 while (node = node.previousSibling) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1964 if ( node.nodeType === 1 ) return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1965 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1966 if ( type == 'first') return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1967 node = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1968 case 'last': |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1969 while (node = node.nextSibling) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1970 if ( node.nodeType === 1 ) return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1971 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1972 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1973 case 'nth': |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1974 var first = match[2], last = match[3]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1975 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1976 if ( first == 1 && last == 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1977 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1978 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1979 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1980 var doneName = match[0], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1981 parent = elem.parentNode; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1982 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1983 if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1984 var count = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1985 for ( node = parent.firstChild; node; node = node.nextSibling ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1986 if ( node.nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1987 node.nodeIndex = ++count; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1988 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1989 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1990 parent.sizcache = doneName; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1991 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1992 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1993 var diff = elem.nodeIndex - last; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1994 if ( first == 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1995 return diff == 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1996 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1997 return ( diff % first == 0 && diff / first >= 0 ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1998 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1999 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2000 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2001 ID: function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2002 return elem.nodeType === 1 && elem.getAttribute("id") === match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2003 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2004 TAG: function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2005 return (match === "*" && elem.nodeType === 1) || elem.nodeName === match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2006 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2007 CLASS: function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2008 return (" " + (elem.className || elem.getAttribute("class")) + " ") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2009 .indexOf( match ) > -1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2010 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2011 ATTR: function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2012 var name = match[1], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2013 result = Expr.attrHandle[ name ] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2014 Expr.attrHandle[ name ]( elem ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2015 elem[ name ] != null ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2016 elem[ name ] : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2017 elem.getAttribute( name ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2018 value = result + "", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2019 type = match[2], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2020 check = match[4]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2021 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2022 return result == null ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2023 type === "!=" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2024 type === "=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2025 value === check : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2026 type === "*=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2027 value.indexOf(check) >= 0 : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2028 type === "~=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2029 (" " + value + " ").indexOf(check) >= 0 : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2030 !check ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2031 value && result !== false : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2032 type === "!=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2033 value != check : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2034 type === "^=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2035 value.indexOf(check) === 0 : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2036 type === "$=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2037 value.substr(value.length - check.length) === check : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2038 type === "|=" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2039 value === check || value.substr(0, check.length + 1) === check + "-" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2040 false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2041 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2042 POS: function(elem, match, i, array){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2043 var name = match[2], filter = Expr.setFilters[ name ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2044 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2045 if ( filter ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2046 return filter( elem, i, match, array ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2047 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2048 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2049 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2050 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2051 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2052 var origPOS = Expr.match.POS; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2053 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2054 for ( var type in Expr.match ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2055 Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2056 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2057 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2058 var makeArray = function(array, results) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2059 array = Array.prototype.slice.call( array ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2060 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2061 if ( results ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2062 results.push.apply( results, array ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2063 return results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2064 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2065 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2066 return array; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2067 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2068 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2069 // Perform a simple check to determine if the browser is capable of |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2070 // converting a NodeList to an array using builtin methods. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2071 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2072 Array.prototype.slice.call( document.documentElement.childNodes ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2073 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2074 // Provide a fallback method if it does not work |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2075 } catch(e){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2076 makeArray = function(array, results) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2077 var ret = results || []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2078 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2079 if ( toString.call(array) === "[object Array]" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2080 Array.prototype.push.apply( ret, array ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2081 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2082 if ( typeof array.length === "number" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2083 for ( var i = 0, l = array.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2084 ret.push( array[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2085 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2086 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2087 for ( var i = 0; array[i]; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2088 ret.push( array[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2089 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2090 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2091 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2092 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2093 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2094 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2095 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2096 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2097 var sortOrder; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2098 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2099 if ( document.documentElement.compareDocumentPosition ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2100 sortOrder = function( a, b ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2101 var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2102 if ( ret === 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2103 hasDuplicate = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2104 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2105 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2106 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2107 } else if ( "sourceIndex" in document.documentElement ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2108 sortOrder = function( a, b ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2109 var ret = a.sourceIndex - b.sourceIndex; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2110 if ( ret === 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2111 hasDuplicate = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2112 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2113 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2114 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2115 } else if ( document.createRange ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2116 sortOrder = function( a, b ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2117 var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2118 aRange.selectNode(a); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2119 aRange.collapse(true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2120 bRange.selectNode(b); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2121 bRange.collapse(true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2122 var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2123 if ( ret === 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2124 hasDuplicate = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2125 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2126 return ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2127 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2128 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2129 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2130 // Check to see if the browser returns elements by name when |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2131 // querying by getElementById (and provide a workaround) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2132 (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2133 // We're going to inject a fake input element with a specified name |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2134 var form = document.createElement("form"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2135 id = "script" + (new Date).getTime(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2136 form.innerHTML = "<input name='" + id + "'/>"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2137 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2138 // Inject it into the root element, check its status, and remove it quickly |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2139 var root = document.documentElement; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2140 root.insertBefore( form, root.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2141 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2142 // The workaround has to do additional checks after a getElementById |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2143 // Which slows things down for other browsers (hence the branching) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2144 if ( !!document.getElementById( id ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2145 Expr.find.ID = function(match, context, isXML){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2146 if ( typeof context.getElementById !== "undefined" && !isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2147 var m = context.getElementById(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2148 return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2149 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2150 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2151 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2152 Expr.filter.ID = function(elem, match){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2153 var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2154 return elem.nodeType === 1 && node && node.nodeValue === match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2155 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2156 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2157 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2158 root.removeChild( form ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2159 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2160 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2161 (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2162 // Check to see if the browser returns only elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2163 // when doing getElementsByTagName("*") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2164 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2165 // Create a fake element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2166 var div = document.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2167 div.appendChild( document.createComment("") ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2168 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2169 // Make sure no comments are found |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2170 if ( div.getElementsByTagName("*").length > 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2171 Expr.find.TAG = function(match, context){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2172 var results = context.getElementsByTagName(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2173 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2174 // Filter out possible comments |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2175 if ( match[1] === "*" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2176 var tmp = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2177 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2178 for ( var i = 0; results[i]; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2179 if ( results[i].nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2180 tmp.push( results[i] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2181 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2182 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2183 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2184 results = tmp; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2185 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2186 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2187 return results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2188 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2189 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2190 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2191 // Check to see if an attribute returns normalized href attributes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2192 div.innerHTML = "<a href='#'></a>"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2193 if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2194 div.firstChild.getAttribute("href") !== "#" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2195 Expr.attrHandle.href = function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2196 return elem.getAttribute("href", 2); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2197 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2198 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2199 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2200 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2201 if ( document.querySelectorAll ) (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2202 var oldSizzle = Sizzle, div = document.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2203 div.innerHTML = "<p class='TEST'></p>"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2204 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2205 // Safari can't handle uppercase or unicode characters when |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2206 // in quirks mode. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2207 if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2208 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2209 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2210 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2211 Sizzle = function(query, context, extra, seed){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2212 context = context || document; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2213 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2214 // Only use querySelectorAll on non-XML documents |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2215 // (ID selectors don't work in non-HTML documents) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2216 if ( !seed && context.nodeType === 9 && !isXML(context) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2217 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2218 return makeArray( context.querySelectorAll(query), extra ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2219 } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2220 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2221 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2222 return oldSizzle(query, context, extra, seed); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2223 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2224 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2225 Sizzle.find = oldSizzle.find; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2226 Sizzle.filter = oldSizzle.filter; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2227 Sizzle.selectors = oldSizzle.selectors; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2228 Sizzle.matches = oldSizzle.matches; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2229 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2230 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2231 if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2232 var div = document.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2233 div.innerHTML = "<div class='test e'></div><div class='test'></div>"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2234 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2235 // Opera can't find a second classname (in 9.6) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2236 if ( div.getElementsByClassName("e").length === 0 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2237 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2238 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2239 // Safari caches class attributes, doesn't catch changes (in 3.2) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2240 div.lastChild.className = "e"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2241 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2242 if ( div.getElementsByClassName("e").length === 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2243 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2244 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2245 Expr.order.splice(1, 0, "CLASS"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2246 Expr.find.CLASS = function(match, context, isXML) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2247 if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2248 return context.getElementsByClassName(match[1]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2249 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2250 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2251 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2252 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2253 function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2254 var sibDir = dir == "previousSibling" && !isXML; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2255 for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2256 var elem = checkSet[i]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2257 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2258 if ( sibDir && elem.nodeType === 1 ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2259 elem.sizcache = doneName; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2260 elem.sizset = i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2261 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2262 elem = elem[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2263 var match = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2264 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2265 while ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2266 if ( elem.sizcache === doneName ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2267 match = checkSet[elem.sizset]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2268 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2269 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2270 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2271 if ( elem.nodeType === 1 && !isXML ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2272 elem.sizcache = doneName; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2273 elem.sizset = i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2274 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2275 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2276 if ( elem.nodeName === cur ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2277 match = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2278 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2279 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2280 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2281 elem = elem[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2282 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2283 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2284 checkSet[i] = match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2285 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2286 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2287 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2288 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2289 function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2290 var sibDir = dir == "previousSibling" && !isXML; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2291 for ( var i = 0, l = checkSet.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2292 var elem = checkSet[i]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2293 if ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2294 if ( sibDir && elem.nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2295 elem.sizcache = doneName; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2296 elem.sizset = i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2297 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2298 elem = elem[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2299 var match = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2300 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2301 while ( elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2302 if ( elem.sizcache === doneName ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2303 match = checkSet[elem.sizset]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2304 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2305 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2306 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2307 if ( elem.nodeType === 1 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2308 if ( !isXML ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2309 elem.sizcache = doneName; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2310 elem.sizset = i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2311 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2312 if ( typeof cur !== "string" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2313 if ( elem === cur ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2314 match = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2315 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2316 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2317 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2318 } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2319 match = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2320 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2321 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2322 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2323 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2324 elem = elem[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2325 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2326 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2327 checkSet[i] = match; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2328 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2329 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2330 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2331 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2332 var contains = document.compareDocumentPosition ? function(a, b){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2333 return a.compareDocumentPosition(b) & 16; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2334 } : function(a, b){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2335 return a !== b && (a.contains ? a.contains(b) : true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2336 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2337 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2338 var isXML = function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2339 return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2340 !!elem.ownerDocument && isXML( elem.ownerDocument ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2341 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2342 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2343 var posProcess = function(selector, context){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2344 var tmpSet = [], later = "", match, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2345 root = context.nodeType ? [context] : context; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2346 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2347 // Position selectors must be done after the filter |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2348 // And so must :not(positional) so we move all PSEUDOs to the end |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2349 while ( (match = Expr.match.PSEUDO.exec( selector )) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2350 later += match[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2351 selector = selector.replace( Expr.match.PSEUDO, "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2352 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2353 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2354 selector = Expr.relative[selector] ? selector + "*" : selector; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2355 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2356 for ( var i = 0, l = root.length; i < l; i++ ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2357 Sizzle( selector, root[i], tmpSet ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2358 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2359 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2360 return Sizzle.filter( later, tmpSet ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2361 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2362 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2363 // EXPOSE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2364 jQuery.find = Sizzle; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2365 jQuery.filter = Sizzle.filter; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2366 jQuery.expr = Sizzle.selectors; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2367 jQuery.expr[":"] = jQuery.expr.filters; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2368 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2369 Sizzle.selectors.filters.hidden = function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2370 return elem.offsetWidth === 0 || elem.offsetHeight === 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2371 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2372 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2373 Sizzle.selectors.filters.visible = function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2374 return elem.offsetWidth > 0 || elem.offsetHeight > 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2375 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2376 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2377 Sizzle.selectors.filters.animated = function(elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2378 return jQuery.grep(jQuery.timers, function(fn){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2379 return elem === fn.elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2380 }).length; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2381 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2382 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2383 jQuery.multiFilter = function( expr, elems, not ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2384 if ( not ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2385 expr = ":not(" + expr + ")"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2386 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2387 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2388 return Sizzle.matches(expr, elems); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2389 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2390 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2391 jQuery.dir = function( elem, dir ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2392 var matched = [], cur = elem[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2393 while ( cur && cur != document ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2394 if ( cur.nodeType == 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2395 matched.push( cur ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2396 cur = cur[dir]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2397 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2398 return matched; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2399 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2400 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2401 jQuery.nth = function(cur, result, dir, elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2402 result = result || 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2403 var num = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2404 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2405 for ( ; cur; cur = cur[dir] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2406 if ( cur.nodeType == 1 && ++num == result ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2407 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2408 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2409 return cur; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2410 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2411 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2412 jQuery.sibling = function(n, elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2413 var r = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2414 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2415 for ( ; n; n = n.nextSibling ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2416 if ( n.nodeType == 1 && n != elem ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2417 r.push( n ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2418 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2419 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2420 return r; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2421 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2422 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2423 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2424 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2425 window.Sizzle = Sizzle; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2426 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2427 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2428 /* |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2429 * A number of helper functions used for managing events. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2430 * Many of the ideas behind this code originated from |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2431 * Dean Edwards' addEvent library. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2432 */ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2433 jQuery.event = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2434 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2435 // Bind an event to an element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2436 // Original by Dean Edwards |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2437 add: function(elem, types, handler, data) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2438 if ( elem.nodeType == 3 || elem.nodeType == 8 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2439 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2440 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2441 // For whatever reason, IE has trouble passing the window object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2442 // around, causing it to be cloned in the process |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2443 if ( elem.setInterval && elem != window ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2444 elem = window; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2445 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2446 // Make sure that the function being executed has a unique ID |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2447 if ( !handler.guid ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2448 handler.guid = this.guid++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2449 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2450 // if data is passed, bind to handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2451 if ( data !== undefined ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2452 // Create temporary function pointer to original handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2453 var fn = handler; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2454 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2455 // Create unique handler function, wrapped around original handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2456 handler = this.proxy( fn ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2457 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2458 // Store data in unique handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2459 handler.data = data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2460 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2461 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2462 // Init the element's event structure |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2463 var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2464 handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2465 // Handle the second event of a trigger and when |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2466 // an event is called after a page has unloaded |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2467 return typeof jQuery !== "undefined" && !jQuery.event.triggered ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2468 jQuery.event.handle.apply(arguments.callee.elem, arguments) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2469 undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2470 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2471 // Add elem as a property of the handle function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2472 // This is to prevent a memory leak with non-native |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2473 // event in IE. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2474 handle.elem = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2475 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2476 // Handle multiple events separated by a space |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2477 // jQuery(...).bind("mouseover mouseout", fn); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2478 jQuery.each(types.split(/\s+/), function(index, type) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2479 // Namespaced event handlers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2480 var namespaces = type.split("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2481 type = namespaces.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2482 handler.type = namespaces.slice().sort().join("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2483 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2484 // Get the current list of functions bound to this event |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2485 var handlers = events[type]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2486 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2487 if ( jQuery.event.specialAll[type] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2488 jQuery.event.specialAll[type].setup.call(elem, data, namespaces); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2489 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2490 // Init the event handler queue |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2491 if (!handlers) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2492 handlers = events[type] = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2493 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2494 // Check for a special event handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2495 // Only use addEventListener/attachEvent if the special |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2496 // events handler returns false |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2497 if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2498 // Bind the global event handler to the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2499 if (elem.addEventListener) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2500 elem.addEventListener(type, handle, false); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2501 else if (elem.attachEvent) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2502 elem.attachEvent("on" + type, handle); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2503 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2504 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2505 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2506 // Add the function to the element's handler list |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2507 handlers[handler.guid] = handler; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2508 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2509 // Keep track of which events have been used, for global triggering |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2510 jQuery.event.global[type] = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2511 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2512 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2513 // Nullify elem to prevent memory leaks in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2514 elem = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2515 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2516 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2517 guid: 1, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2518 global: {}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2519 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2520 // Detach an event or set of events from an element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2521 remove: function(elem, types, handler) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2522 // don't do events on text and comment nodes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2523 if ( elem.nodeType == 3 || elem.nodeType == 8 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2524 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2525 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2526 var events = jQuery.data(elem, "events"), ret, index; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2527 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2528 if ( events ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2529 // Unbind all events for the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2530 if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2531 for ( var type in events ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2532 this.remove( elem, type + (types || "") ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2533 else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2534 // types is actually an event object here |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2535 if ( types.type ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2536 handler = types.handler; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2537 types = types.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2538 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2539 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2540 // Handle multiple events seperated by a space |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2541 // jQuery(...).unbind("mouseover mouseout", fn); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2542 jQuery.each(types.split(/\s+/), function(index, type){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2543 // Namespaced event handlers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2544 var namespaces = type.split("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2545 type = namespaces.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2546 var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2547 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2548 if ( events[type] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2549 // remove the given handler for the given type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2550 if ( handler ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2551 delete events[type][handler.guid]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2552 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2553 // remove all handlers for the given type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2554 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2555 for ( var handle in events[type] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2556 // Handle the removal of namespaced events |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2557 if ( namespace.test(events[type][handle].type) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2558 delete events[type][handle]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2559 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2560 if ( jQuery.event.specialAll[type] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2561 jQuery.event.specialAll[type].teardown.call(elem, namespaces); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2562 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2563 // remove generic event handler if no more handlers exist |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2564 for ( ret in events[type] ) break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2565 if ( !ret ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2566 if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2567 if (elem.removeEventListener) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2568 elem.removeEventListener(type, jQuery.data(elem, "handle"), false); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2569 else if (elem.detachEvent) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2570 elem.detachEvent("on" + type, jQuery.data(elem, "handle")); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2571 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2572 ret = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2573 delete events[type]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2574 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2575 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2576 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2577 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2578 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2579 // Remove the expando if it's no longer used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2580 for ( ret in events ) break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2581 if ( !ret ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2582 var handle = jQuery.data( elem, "handle" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2583 if ( handle ) handle.elem = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2584 jQuery.removeData( elem, "events" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2585 jQuery.removeData( elem, "handle" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2586 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2587 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2588 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2589 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2590 // bubbling is internal |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2591 trigger: function( event, data, elem, bubbling ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2592 // Event object or event type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2593 var type = event.type || event; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2594 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2595 if( !bubbling ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2596 event = typeof event === "object" ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2597 // jQuery.Event object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2598 event[expando] ? event : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2599 // Object literal |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2600 jQuery.extend( jQuery.Event(type), event ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2601 // Just the event type (string) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2602 jQuery.Event(type); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2603 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2604 if ( type.indexOf("!") >= 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2605 event.type = type = type.slice(0, -1); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2606 event.exclusive = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2607 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2608 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2609 // Handle a global trigger |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2610 if ( !elem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2611 // Don't bubble custom events when global (to avoid too much overhead) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2612 event.stopPropagation(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2613 // Only trigger if we've ever bound an event for it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2614 if ( this.global[type] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2615 jQuery.each( jQuery.cache, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2616 if ( this.events && this.events[type] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2617 jQuery.event.trigger( event, data, this.handle.elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2618 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2619 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2620 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2621 // Handle triggering a single element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2622 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2623 // don't do events on text and comment nodes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2624 if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2625 return undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2626 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2627 // Clean up in case it is reused |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2628 event.result = undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2629 event.target = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2630 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2631 // Clone the incoming data, if any |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2632 data = jQuery.makeArray(data); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2633 data.unshift( event ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2634 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2635 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2636 event.currentTarget = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2637 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2638 // Trigger the event, it is assumed that "handle" is a function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2639 var handle = jQuery.data(elem, "handle"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2640 if ( handle ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2641 handle.apply( elem, data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2642 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2643 // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2644 if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2645 event.result = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2646 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2647 // Trigger the native events (except for clicks on links) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2648 if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2649 this.triggered = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2650 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2651 elem[ type ](); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2652 // prevent IE from throwing an error for some hidden elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2653 } catch (e) {} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2654 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2655 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2656 this.triggered = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2657 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2658 if ( !event.isPropagationStopped() ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2659 var parent = elem.parentNode || elem.ownerDocument; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2660 if ( parent ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2661 jQuery.event.trigger(event, data, parent, true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2662 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2663 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2664 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2665 handle: function(event) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2666 // returned undefined or false |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2667 var all, handlers; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2668 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2669 event = arguments[0] = jQuery.event.fix( event || window.event ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2670 event.currentTarget = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2671 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2672 // Namespaced event handlers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2673 var namespaces = event.type.split("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2674 event.type = namespaces.shift(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2675 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2676 // Cache this now, all = true means, any handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2677 all = !namespaces.length && !event.exclusive; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2678 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2679 var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2680 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2681 handlers = ( jQuery.data(this, "events") || {} )[event.type]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2682 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2683 for ( var j in handlers ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2684 var handler = handlers[j]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2685 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2686 // Filter the functions by class |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2687 if ( all || namespace.test(handler.type) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2688 // Pass in a reference to the handler function itself |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2689 // So that we can later remove it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2690 event.handler = handler; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2691 event.data = handler.data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2692 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2693 var ret = handler.apply(this, arguments); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2694 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2695 if( ret !== undefined ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2696 event.result = ret; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2697 if ( ret === false ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2698 event.preventDefault(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2699 event.stopPropagation(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2700 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2701 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2702 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2703 if( event.isImmediatePropagationStopped() ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2704 break; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2705 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2706 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2707 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2708 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2709 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2710 props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2711 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2712 fix: function(event) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2713 if ( event[expando] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2714 return event; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2715 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2716 // store a copy of the original event object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2717 // and "clone" to set read-only properties |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2718 var originalEvent = event; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2719 event = jQuery.Event( originalEvent ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2720 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2721 for ( var i = this.props.length, prop; i; ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2722 prop = this.props[ --i ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2723 event[ prop ] = originalEvent[ prop ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2724 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2725 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2726 // Fix target property, if necessary |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2727 if ( !event.target ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2728 event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2729 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2730 // check if target is a textnode (safari) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2731 if ( event.target.nodeType == 3 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2732 event.target = event.target.parentNode; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2733 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2734 // Add relatedTarget, if necessary |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2735 if ( !event.relatedTarget && event.fromElement ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2736 event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2737 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2738 // Calculate pageX/Y if missing and clientX/Y available |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2739 if ( event.pageX == null && event.clientX != null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2740 var doc = document.documentElement, body = document.body; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2741 event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2742 event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2743 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2744 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2745 // Add which for key events |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2746 if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2747 event.which = event.charCode || event.keyCode; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2748 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2749 // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2750 if ( !event.metaKey && event.ctrlKey ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2751 event.metaKey = event.ctrlKey; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2752 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2753 // Add which for click: 1 == left; 2 == middle; 3 == right |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2754 // Note: button is not normalized, so don't use it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2755 if ( !event.which && event.button ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2756 event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2757 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2758 return event; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2759 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2760 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2761 proxy: function( fn, proxy ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2762 proxy = proxy || function(){ return fn.apply(this, arguments); }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2763 // Set the guid of unique handler to the same of original handler, so it can be removed |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2764 proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2765 // So proxy can be declared as an argument |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2766 return proxy; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2767 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2768 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2769 special: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2770 ready: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2771 // Make sure the ready event is setup |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2772 setup: bindReady, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2773 teardown: function() {} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2774 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2775 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2776 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2777 specialAll: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2778 live: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2779 setup: function( selector, namespaces ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2780 jQuery.event.add( this, namespaces[0], liveHandler ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2781 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2782 teardown: function( namespaces ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2783 if ( namespaces.length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2784 var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2785 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2786 jQuery.each( (jQuery.data(this, "events").live || {}), function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2787 if ( name.test(this.type) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2788 remove++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2789 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2790 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2791 if ( remove < 1 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2792 jQuery.event.remove( this, namespaces[0], liveHandler ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2793 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2794 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2795 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2796 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2797 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2798 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2799 jQuery.Event = function( src ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2800 // Allow instantiation without the 'new' keyword |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2801 if( !this.preventDefault ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2802 return new jQuery.Event(src); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2803 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2804 // Event object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2805 if( src && src.type ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2806 this.originalEvent = src; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2807 this.type = src.type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2808 // Event type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2809 }else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2810 this.type = src; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2811 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2812 // timeStamp is buggy for some events on Firefox(#3843) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2813 // So we won't rely on the native value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2814 this.timeStamp = now(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2815 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2816 // Mark it as fixed |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2817 this[expando] = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2818 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2819 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2820 function returnFalse(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2821 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2822 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2823 function returnTrue(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2824 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2825 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2826 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2827 // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2828 // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2829 jQuery.Event.prototype = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2830 preventDefault: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2831 this.isDefaultPrevented = returnTrue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2832 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2833 var e = this.originalEvent; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2834 if( !e ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2835 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2836 // if preventDefault exists run it on the original event |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2837 if (e.preventDefault) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2838 e.preventDefault(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2839 // otherwise set the returnValue property of the original event to false (IE) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2840 e.returnValue = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2841 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2842 stopPropagation: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2843 this.isPropagationStopped = returnTrue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2844 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2845 var e = this.originalEvent; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2846 if( !e ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2847 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2848 // if stopPropagation exists run it on the original event |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2849 if (e.stopPropagation) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2850 e.stopPropagation(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2851 // otherwise set the cancelBubble property of the original event to true (IE) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2852 e.cancelBubble = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2853 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2854 stopImmediatePropagation:function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2855 this.isImmediatePropagationStopped = returnTrue; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2856 this.stopPropagation(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2857 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2858 isDefaultPrevented: returnFalse, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2859 isPropagationStopped: returnFalse, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2860 isImmediatePropagationStopped: returnFalse |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2861 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2862 // Checks if an event happened on an element within another element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2863 // Used in jQuery.event.special.mouseenter and mouseleave handlers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2864 var withinElement = function(event) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2865 // Check if mouse(over|out) are still within the same parent element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2866 var parent = event.relatedTarget; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2867 // Traverse up the tree |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2868 while ( parent && parent != this ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2869 try { parent = parent.parentNode; } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2870 catch(e) { parent = this; } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2871 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2872 if( parent != this ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2873 // set the correct event type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2874 event.type = event.data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2875 // handle event if we actually just moused on to a non sub-element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2876 jQuery.event.handle.apply( this, arguments ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2877 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2878 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2879 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2880 jQuery.each({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2881 mouseover: 'mouseenter', |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2882 mouseout: 'mouseleave' |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2883 }, function( orig, fix ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2884 jQuery.event.special[ fix ] = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2885 setup: function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2886 jQuery.event.add( this, orig, withinElement, fix ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2887 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2888 teardown: function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2889 jQuery.event.remove( this, orig, withinElement ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2890 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2891 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2892 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2893 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2894 jQuery.fn.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2895 bind: function( type, data, fn ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2896 return type == "unload" ? this.one(type, data, fn) : this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2897 jQuery.event.add( this, type, fn || data, fn && data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2898 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2899 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2900 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2901 one: function( type, data, fn ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2902 var one = jQuery.event.proxy( fn || data, function(event) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2903 jQuery(this).unbind(event, one); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2904 return (fn || data).apply( this, arguments ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2905 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2906 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2907 jQuery.event.add( this, type, one, fn && data); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2908 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2909 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2910 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2911 unbind: function( type, fn ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2912 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2913 jQuery.event.remove( this, type, fn ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2914 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2915 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2916 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2917 trigger: function( type, data ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2918 return this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2919 jQuery.event.trigger( type, data, this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2920 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2921 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2922 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2923 triggerHandler: function( type, data ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2924 if( this[0] ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2925 var event = jQuery.Event(type); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2926 event.preventDefault(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2927 event.stopPropagation(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2928 jQuery.event.trigger( event, data, this[0] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2929 return event.result; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2930 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2931 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2932 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2933 toggle: function( fn ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2934 // Save reference to arguments for access in closure |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2935 var args = arguments, i = 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2936 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2937 // link all the functions, so any of them can unbind this click handler |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2938 while( i < args.length ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2939 jQuery.event.proxy( fn, args[i++] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2940 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2941 return this.click( jQuery.event.proxy( fn, function(event) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2942 // Figure out which function to execute |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2943 this.lastToggle = ( this.lastToggle || 0 ) % i; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2944 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2945 // Make sure that clicks stop |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2946 event.preventDefault(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2947 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2948 // and execute the function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2949 return args[ this.lastToggle++ ].apply( this, arguments ) || false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2950 })); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2951 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2952 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2953 hover: function(fnOver, fnOut) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2954 return this.mouseenter(fnOver).mouseleave(fnOut); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2955 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2956 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2957 ready: function(fn) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2958 // Attach the listeners |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2959 bindReady(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2960 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2961 // If the DOM is already ready |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2962 if ( jQuery.isReady ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2963 // Execute the function immediately |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2964 fn.call( document, jQuery ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2965 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2966 // Otherwise, remember the function for later |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2967 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2968 // Add the function to the wait list |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2969 jQuery.readyList.push( fn ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2970 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2971 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2972 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2973 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2974 live: function( type, fn ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2975 var proxy = jQuery.event.proxy( fn ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2976 proxy.guid += this.selector + type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2977 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2978 jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2979 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2980 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2981 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2982 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2983 die: function( type, fn ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2984 jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2985 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2986 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2987 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2988 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2989 function liveHandler( event ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2990 var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2991 stop = true, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2992 elems = []; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2993 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2994 jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2995 if ( check.test(fn.type) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2996 var elem = jQuery(event.target).closest(fn.data)[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2997 if ( elem ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2998 elems.push({ elem: elem, fn: fn }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2999 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3000 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3001 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3002 elems.sort(function(a,b) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3003 return jQuery.data(a.elem, "closest") - jQuery.data(b.elem, "closest"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3004 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3005 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3006 jQuery.each(elems, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3007 if ( this.fn.call(this.elem, event, this.fn.data) === false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3008 return (stop = false); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3009 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3010 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3011 return stop; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3012 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3013 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3014 function liveConvert(type, selector){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3015 return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join("."); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3016 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3017 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3018 jQuery.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3019 isReady: false, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3020 readyList: [], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3021 // Handle when the DOM is ready |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3022 ready: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3023 // Make sure that the DOM is not already loaded |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3024 if ( !jQuery.isReady ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3025 // Remember that the DOM is ready |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3026 jQuery.isReady = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3027 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3028 // If there are functions bound, to execute |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3029 if ( jQuery.readyList ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3030 // Execute all of them |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3031 jQuery.each( jQuery.readyList, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3032 this.call( document, jQuery ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3033 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3034 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3035 // Reset the list of functions |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3036 jQuery.readyList = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3037 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3038 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3039 // Trigger any bound ready events |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3040 jQuery(document).triggerHandler("ready"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3041 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3042 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3043 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3044 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3045 var readyBound = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3046 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3047 function bindReady(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3048 if ( readyBound ) return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3049 readyBound = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3050 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3051 // Mozilla, Opera and webkit nightlies currently support this event |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3052 if ( document.addEventListener ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3053 // Use the handy event callback |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3054 document.addEventListener( "DOMContentLoaded", function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3055 document.removeEventListener( "DOMContentLoaded", arguments.callee, false ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3056 jQuery.ready(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3057 }, false ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3058 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3059 // If IE event model is used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3060 } else if ( document.attachEvent ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3061 // ensure firing before onload, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3062 // maybe late but safe also for iframes |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3063 document.attachEvent("onreadystatechange", function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3064 if ( document.readyState === "complete" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3065 document.detachEvent( "onreadystatechange", arguments.callee ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3066 jQuery.ready(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3067 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3068 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3069 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3070 // If IE and not an iframe |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3071 // continually check to see if the document is ready |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3072 if ( document.documentElement.doScroll && window == window.top ) (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3073 if ( jQuery.isReady ) return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3074 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3075 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3076 // If IE is used, use the trick by Diego Perini |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3077 // http://javascript.nwbox.com/IEContentLoaded/ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3078 document.documentElement.doScroll("left"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3079 } catch( error ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3080 setTimeout( arguments.callee, 0 ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3081 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3082 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3083 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3084 // and execute any waiting functions |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3085 jQuery.ready(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3086 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3087 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3088 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3089 // A fallback to window.onload, that will always work |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3090 jQuery.event.add( window, "load", jQuery.ready ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3091 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3092 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3093 jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," + |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3094 "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," + |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3095 "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3096 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3097 // Handle event binding |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3098 jQuery.fn[name] = function(fn){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3099 return fn ? this.bind(name, fn) : this.trigger(name); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3100 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3101 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3102 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3103 // Prevent memory leaks in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3104 // And prevent errors on refresh with events like mouseover in other browsers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3105 // Window isn't included so as not to unbind existing unload events |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3106 jQuery( window ).bind( 'unload', function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3107 for ( var id in jQuery.cache ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3108 // Skip the window |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3109 if ( id != 1 && jQuery.cache[ id ].handle ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3110 jQuery.event.remove( jQuery.cache[ id ].handle.elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3111 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3112 (function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3113 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3114 jQuery.support = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3115 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3116 var root = document.documentElement, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3117 script = document.createElement("script"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3118 div = document.createElement("div"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3119 id = "script" + (new Date).getTime(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3120 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3121 div.style.display = "none"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3122 div.innerHTML = ' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>'; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3123 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3124 var all = div.getElementsByTagName("*"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3125 a = div.getElementsByTagName("a")[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3126 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3127 // Can't get basic test support |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3128 if ( !all || !all.length || !a ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3129 return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3130 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3131 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3132 jQuery.support = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3133 // IE strips leading whitespace when .innerHTML is used |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3134 leadingWhitespace: div.firstChild.nodeType == 3, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3135 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3136 // Make sure that tbody elements aren't automatically inserted |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3137 // IE will insert them into empty tables |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3138 tbody: !div.getElementsByTagName("tbody").length, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3139 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3140 // Make sure that you can get all elements in an <object> element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3141 // IE 7 always returns no results |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3142 objectAll: !!div.getElementsByTagName("object")[0] |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3143 .getElementsByTagName("*").length, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3144 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3145 // Make sure that link elements get serialized correctly by innerHTML |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3146 // This requires a wrapper element in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3147 htmlSerialize: !!div.getElementsByTagName("link").length, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3148 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3149 // Get the style information from getAttribute |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3150 // (IE uses .cssText insted) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3151 style: /red/.test( a.getAttribute("style") ), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3152 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3153 // Make sure that URLs aren't manipulated |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3154 // (IE normalizes it by default) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3155 hrefNormalized: a.getAttribute("href") === "/a", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3156 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3157 // Make sure that element opacity exists |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3158 // (IE uses filter instead) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3159 opacity: a.style.opacity === "0.5", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3160 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3161 // Verify style float existence |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3162 // (IE uses styleFloat instead of cssFloat) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3163 cssFloat: !!a.style.cssFloat, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3164 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3165 // Will be defined later |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3166 scriptEval: false, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3167 noCloneEvent: true, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3168 boxModel: null |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3169 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3170 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3171 script.type = "text/javascript"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3172 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3173 script.appendChild( document.createTextNode( "window." + id + "=1;" ) ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3174 } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3175 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3176 root.insertBefore( script, root.firstChild ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3177 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3178 // Make sure that the execution of code works by injecting a script |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3179 // tag with appendChild/createTextNode |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3180 // (IE doesn't support this, fails, and uses .text instead) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3181 if ( window[ id ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3182 jQuery.support.scriptEval = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3183 delete window[ id ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3184 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3185 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3186 root.removeChild( script ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3187 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3188 if ( div.attachEvent && div.fireEvent ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3189 div.attachEvent("onclick", function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3190 // Cloning a node shouldn't copy over any |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3191 // bound event handlers (IE does this) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3192 jQuery.support.noCloneEvent = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3193 div.detachEvent("onclick", arguments.callee); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3194 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3195 div.cloneNode(true).fireEvent("onclick"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3196 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3197 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3198 // Figure out if the W3C box model works as expected |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3199 // document.body must exist before we can do this |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3200 jQuery(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3201 var div = document.createElement("div"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3202 div.style.width = div.style.paddingLeft = "1px"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3203 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3204 document.body.appendChild( div ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3205 jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3206 document.body.removeChild( div ).style.display = 'none'; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3207 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3208 })(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3209 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3210 var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3211 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3212 jQuery.props = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3213 "for": "htmlFor", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3214 "class": "className", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3215 "float": styleFloat, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3216 cssFloat: styleFloat, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3217 styleFloat: styleFloat, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3218 readonly: "readOnly", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3219 maxlength: "maxLength", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3220 cellspacing: "cellSpacing", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3221 rowspan: "rowSpan", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3222 tabindex: "tabIndex" |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3223 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3224 jQuery.fn.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3225 // Keep a copy of the old load |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3226 _load: jQuery.fn.load, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3227 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3228 load: function( url, params, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3229 if ( typeof url !== "string" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3230 return this._load( url ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3231 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3232 var off = url.indexOf(" "); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3233 if ( off >= 0 ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3234 var selector = url.slice(off, url.length); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3235 url = url.slice(0, off); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3236 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3237 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3238 // Default to a GET request |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3239 var type = "GET"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3240 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3241 // If the second parameter was provided |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3242 if ( params ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3243 // If it's a function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3244 if ( jQuery.isFunction( params ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3245 // We assume that it's the callback |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3246 callback = params; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3247 params = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3248 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3249 // Otherwise, build a param string |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3250 } else if( typeof params === "object" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3251 params = jQuery.param( params ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3252 type = "POST"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3253 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3254 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3255 var self = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3256 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3257 // Request the remote document |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3258 jQuery.ajax({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3259 url: url, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3260 type: type, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3261 dataType: "html", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3262 data: params, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3263 complete: function(res, status){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3264 // If successful, inject the HTML into all the matched elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3265 if ( status == "success" || status == "notmodified" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3266 // See if a selector was specified |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3267 self.html( selector ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3268 // Create a dummy div to hold the results |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3269 jQuery("<div/>") |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3270 // inject the contents of the document in, removing the scripts |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3271 // to avoid any 'Permission Denied' errors in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3272 .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3273 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3274 // Locate the specified elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3275 .find(selector) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3276 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3277 // If not, just inject the full result |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3278 res.responseText ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3279 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3280 if( callback ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3281 self.each( callback, [res.responseText, status, res] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3282 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3283 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3284 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3285 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3286 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3287 serialize: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3288 return jQuery.param(this.serializeArray()); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3289 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3290 serializeArray: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3291 return this.map(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3292 return this.elements ? jQuery.makeArray(this.elements) : this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3293 }) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3294 .filter(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3295 return this.name && !this.disabled && |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3296 (this.checked || /select|textarea/i.test(this.nodeName) || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3297 /text|hidden|password|search/i.test(this.type)); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3298 }) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3299 .map(function(i, elem){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3300 var val = jQuery(this).val(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3301 return val == null ? null : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3302 jQuery.isArray(val) ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3303 jQuery.map( val, function(val, i){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3304 return {name: elem.name, value: val}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3305 }) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3306 {name: elem.name, value: val}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3307 }).get(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3308 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3309 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3310 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3311 // Attach a bunch of functions for handling common AJAX events |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3312 jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3313 jQuery.fn[o] = function(f){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3314 return this.bind(o, f); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3315 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3316 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3317 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3318 var jsc = now(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3319 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3320 jQuery.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3321 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3322 get: function( url, data, callback, type ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3323 // shift arguments if data argument was ommited |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3324 if ( jQuery.isFunction( data ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3325 callback = data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3326 data = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3327 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3328 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3329 return jQuery.ajax({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3330 type: "GET", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3331 url: url, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3332 data: data, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3333 success: callback, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3334 dataType: type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3335 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3336 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3337 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3338 getScript: function( url, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3339 return jQuery.get(url, null, callback, "script"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3340 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3341 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3342 getJSON: function( url, data, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3343 return jQuery.get(url, data, callback, "json"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3344 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3345 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3346 post: function( url, data, callback, type ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3347 if ( jQuery.isFunction( data ) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3348 callback = data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3349 data = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3350 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3351 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3352 return jQuery.ajax({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3353 type: "POST", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3354 url: url, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3355 data: data, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3356 success: callback, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3357 dataType: type |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3358 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3359 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3360 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3361 ajaxSetup: function( settings ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3362 jQuery.extend( jQuery.ajaxSettings, settings ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3363 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3364 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3365 ajaxSettings: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3366 url: location.href, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3367 global: true, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3368 type: "GET", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3369 contentType: "application/x-www-form-urlencoded", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3370 processData: true, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3371 async: true, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3372 /* |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3373 timeout: 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3374 data: null, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3375 username: null, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3376 password: null, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3377 */ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3378 // Create the request object; Microsoft failed to properly |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3379 // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3380 // This function can be overriden by calling jQuery.ajaxSetup |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3381 xhr:function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3382 return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3383 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3384 accepts: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3385 xml: "application/xml, text/xml", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3386 html: "text/html", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3387 script: "text/javascript, application/javascript", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3388 json: "application/json, text/javascript", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3389 text: "text/plain", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3390 _default: "*/*" |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3391 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3392 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3393 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3394 // Last-Modified header cache for next request |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3395 lastModified: {}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3396 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3397 ajax: function( s ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3398 // Extend the settings, but re-extend 's' so that it can be |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3399 // checked again later (in the test suite, specifically) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3400 s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3401 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3402 var jsonp, jsre = /=\?(&|$)/g, status, data, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3403 type = s.type.toUpperCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3404 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3405 // convert data if not already a string |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3406 if ( s.data && s.processData && typeof s.data !== "string" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3407 s.data = jQuery.param(s.data); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3408 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3409 // Handle JSONP Parameter Callbacks |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3410 if ( s.dataType == "jsonp" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3411 if ( type == "GET" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3412 if ( !s.url.match(jsre) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3413 s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3414 } else if ( !s.data || !s.data.match(jsre) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3415 s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3416 s.dataType = "json"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3417 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3418 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3419 // Build temporary JSONP function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3420 if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3421 jsonp = "jsonp" + jsc++; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3422 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3423 // Replace the =? sequence both in the query string and the data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3424 if ( s.data ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3425 s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3426 s.url = s.url.replace(jsre, "=" + jsonp + "$1"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3427 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3428 // We need to make sure |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3429 // that a JSONP style response is executed properly |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3430 s.dataType = "script"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3431 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3432 // Handle JSONP-style loading |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3433 window[ jsonp ] = function(tmp){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3434 data = tmp; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3435 success(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3436 complete(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3437 // Garbage collect |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3438 window[ jsonp ] = undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3439 try{ delete window[ jsonp ]; } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3440 if ( head ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3441 head.removeChild( script ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3442 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3443 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3444 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3445 if ( s.dataType == "script" && s.cache == null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3446 s.cache = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3447 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3448 if ( s.cache === false && type == "GET" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3449 var ts = now(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3450 // try replacing _= if it is there |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3451 var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3452 // if nothing was replaced, add timestamp to the end |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3453 s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : ""); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3454 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3455 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3456 // If data is available, append data to url for get requests |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3457 if ( s.data && type == "GET" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3458 s.url += (s.url.match(/\?/) ? "&" : "?") + s.data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3459 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3460 // IE likes to send both get and post data, prevent this |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3461 s.data = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3462 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3463 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3464 // Watch for a new set of requests |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3465 if ( s.global && ! jQuery.active++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3466 jQuery.event.trigger( "ajaxStart" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3467 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3468 // Matches an absolute URL, and saves the domain |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3469 var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3470 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3471 // If we're requesting a remote document |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3472 // and trying to load JSON or Script with a GET |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3473 if ( s.dataType == "script" && type == "GET" && parts |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3474 && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3475 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3476 var head = document.getElementsByTagName("head")[0]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3477 var script = document.createElement("script"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3478 script.src = s.url; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3479 if (s.scriptCharset) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3480 script.charset = s.scriptCharset; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3481 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3482 // Handle Script loading |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3483 if ( !jsonp ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3484 var done = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3485 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3486 // Attach handlers for all browsers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3487 script.onload = script.onreadystatechange = function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3488 if ( !done && (!this.readyState || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3489 this.readyState == "loaded" || this.readyState == "complete") ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3490 done = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3491 success(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3492 complete(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3493 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3494 // Handle memory leak in IE |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3495 script.onload = script.onreadystatechange = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3496 head.removeChild( script ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3497 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3498 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3499 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3500 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3501 head.appendChild(script); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3502 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3503 // We handle everything using the script element injection |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3504 return undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3505 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3506 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3507 var requestDone = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3508 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3509 // Create the request object |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3510 var xhr = s.xhr(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3511 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3512 // Open the socket |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3513 // Passing null username, generates a login popup on Opera (#2865) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3514 if( s.username ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3515 xhr.open(type, s.url, s.async, s.username, s.password); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3516 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3517 xhr.open(type, s.url, s.async); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3518 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3519 // Need an extra try/catch for cross domain requests in Firefox 3 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3520 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3521 // Set the correct header, if data is being sent |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3522 if ( s.data ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3523 xhr.setRequestHeader("Content-Type", s.contentType); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3524 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3525 // Set the If-Modified-Since header, if ifModified mode. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3526 if ( s.ifModified ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3527 xhr.setRequestHeader("If-Modified-Since", |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3528 jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3529 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3530 // Set header so the called script knows that it's an XMLHttpRequest |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3531 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3532 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3533 // Set the Accepts header for the server, depending on the dataType |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3534 xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3535 s.accepts[ s.dataType ] + ", */*" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3536 s.accepts._default ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3537 } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3538 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3539 // Allow custom headers/mimetypes and early abort |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3540 if ( s.beforeSend && s.beforeSend(xhr, s) === false ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3541 // Handle the global AJAX counter |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3542 if ( s.global && ! --jQuery.active ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3543 jQuery.event.trigger( "ajaxStop" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3544 // close opended socket |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3545 xhr.abort(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3546 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3547 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3548 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3549 if ( s.global ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3550 jQuery.event.trigger("ajaxSend", [xhr, s]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3551 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3552 // Wait for a response to come back |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3553 var onreadystatechange = function(isTimeout){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3554 // The request was aborted, clear the interval and decrement jQuery.active |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3555 if (xhr.readyState == 0) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3556 if (ival) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3557 // clear poll interval |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3558 clearInterval(ival); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3559 ival = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3560 // Handle the global AJAX counter |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3561 if ( s.global && ! --jQuery.active ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3562 jQuery.event.trigger( "ajaxStop" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3563 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3564 // The transfer is complete and the data is available, or the request timed out |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3565 } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3566 requestDone = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3567 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3568 // clear poll interval |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3569 if (ival) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3570 clearInterval(ival); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3571 ival = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3572 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3573 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3574 status = isTimeout == "timeout" ? "timeout" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3575 !jQuery.httpSuccess( xhr ) ? "error" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3576 s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3577 "success"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3578 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3579 if ( status == "success" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3580 // Watch for, and catch, XML document parse errors |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3581 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3582 // process the data (runs the xml through httpData regardless of callback) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3583 data = jQuery.httpData( xhr, s.dataType, s ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3584 } catch(e) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3585 status = "parsererror"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3586 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3587 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3588 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3589 // Make sure that the request was successful or notmodified |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3590 if ( status == "success" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3591 // Cache Last-Modified header, if ifModified mode. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3592 var modRes; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3593 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3594 modRes = xhr.getResponseHeader("Last-Modified"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3595 } catch(e) {} // swallow exception thrown by FF if header is not available |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3596 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3597 if ( s.ifModified && modRes ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3598 jQuery.lastModified[s.url] = modRes; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3599 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3600 // JSONP handles its own success callback |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3601 if ( !jsonp ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3602 success(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3603 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3604 jQuery.handleError(s, xhr, status); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3605 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3606 // Fire the complete handlers |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3607 complete(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3608 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3609 if ( isTimeout ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3610 xhr.abort(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3611 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3612 // Stop memory leaks |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3613 if ( s.async ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3614 xhr = null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3615 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3616 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3617 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3618 if ( s.async ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3619 // don't attach the handler to the request, just poll it instead |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3620 var ival = setInterval(onreadystatechange, 13); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3621 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3622 // Timeout checker |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3623 if ( s.timeout > 0 ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3624 setTimeout(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3625 // Check to see if the request is still happening |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3626 if ( xhr && !requestDone ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3627 onreadystatechange( "timeout" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3628 }, s.timeout); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3629 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3630 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3631 // Send the data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3632 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3633 xhr.send(s.data); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3634 } catch(e) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3635 jQuery.handleError(s, xhr, null, e); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3636 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3637 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3638 // firefox 1.5 doesn't fire statechange for sync requests |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3639 if ( !s.async ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3640 onreadystatechange(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3641 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3642 function success(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3643 // If a local callback was specified, fire it and pass it the data |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3644 if ( s.success ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3645 s.success( data, status ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3646 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3647 // Fire the global callback |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3648 if ( s.global ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3649 jQuery.event.trigger( "ajaxSuccess", [xhr, s] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3650 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3651 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3652 function complete(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3653 // Process result |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3654 if ( s.complete ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3655 s.complete(xhr, status); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3656 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3657 // The request was completed |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3658 if ( s.global ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3659 jQuery.event.trigger( "ajaxComplete", [xhr, s] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3660 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3661 // Handle the global AJAX counter |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3662 if ( s.global && ! --jQuery.active ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3663 jQuery.event.trigger( "ajaxStop" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3664 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3665 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3666 // return XMLHttpRequest to allow aborting the request etc. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3667 return xhr; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3668 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3669 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3670 handleError: function( s, xhr, status, e ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3671 // If a local callback was specified, fire it |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3672 if ( s.error ) s.error( xhr, status, e ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3673 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3674 // Fire the global callback |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3675 if ( s.global ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3676 jQuery.event.trigger( "ajaxError", [xhr, s, e] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3677 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3678 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3679 // Counter for holding the number of active queries |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3680 active: 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3681 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3682 // Determines if an XMLHttpRequest was successful or not |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3683 httpSuccess: function( xhr ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3684 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3685 // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3686 return !xhr.status && location.protocol == "file:" || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3687 ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3688 } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3689 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3690 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3691 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3692 // Determines if an XMLHttpRequest returns NotModified |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3693 httpNotModified: function( xhr, url ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3694 try { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3695 var xhrRes = xhr.getResponseHeader("Last-Modified"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3696 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3697 // Firefox always returns 200. check Last-Modified date |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3698 return xhr.status == 304 || xhrRes == jQuery.lastModified[url]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3699 } catch(e){} |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3700 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3701 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3702 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3703 httpData: function( xhr, type, s ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3704 var ct = xhr.getResponseHeader("content-type"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3705 xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3706 data = xml ? xhr.responseXML : xhr.responseText; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3707 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3708 if ( xml && data.documentElement.tagName == "parsererror" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3709 throw "parsererror"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3710 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3711 // Allow a pre-filtering function to sanitize the response |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3712 // s != null is checked to keep backwards compatibility |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3713 if( s && s.dataFilter ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3714 data = s.dataFilter( data, type ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3715 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3716 // The filter can actually parse the response |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3717 if( typeof data === "string" ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3718 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3719 // If the type is "script", eval it in global context |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3720 if ( type == "script" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3721 jQuery.globalEval( data ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3722 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3723 // Get the JavaScript object, if JSON is used. |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3724 if ( type == "json" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3725 data = window["eval"]("(" + data + ")"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3726 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3727 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3728 return data; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3729 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3730 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3731 // Serialize an array of form elements or a set of |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3732 // key/values into a query string |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3733 param: function( a ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3734 var s = [ ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3735 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3736 function add( key, value ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3737 s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3738 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3739 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3740 // If an array was passed in, assume that it is an array |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3741 // of form elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3742 if ( jQuery.isArray(a) || a.jquery ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3743 // Serialize the form elements |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3744 jQuery.each( a, function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3745 add( this.name, this.value ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3746 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3747 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3748 // Otherwise, assume that it's an object of key/value pairs |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3749 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3750 // Serialize the key/values |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3751 for ( var j in a ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3752 // If the value is an array then the key names need to be repeated |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3753 if ( jQuery.isArray(a[j]) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3754 jQuery.each( a[j], function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3755 add( j, this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3756 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3757 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3758 add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3759 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3760 // Return the resulting serialization |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3761 return s.join("&").replace(/%20/g, "+"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3762 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3763 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3764 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3765 var elemdisplay = {}, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3766 timerId, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3767 fxAttrs = [ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3768 // height animations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3769 [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3770 // width animations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3771 [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3772 // opacity animations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3773 [ "opacity" ] |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3774 ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3775 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3776 function genFx( type, num ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3777 var obj = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3778 jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3779 obj[ this ] = type; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3780 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3781 return obj; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3782 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3783 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3784 jQuery.fn.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3785 show: function(speed,callback){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3786 if ( speed ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3787 return this.animate( genFx("show", 3), speed, callback); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3788 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3789 for ( var i = 0, l = this.length; i < l; i++ ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3790 var old = jQuery.data(this[i], "olddisplay"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3791 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3792 this[i].style.display = old || ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3793 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3794 if ( jQuery.css(this[i], "display") === "none" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3795 var tagName = this[i].tagName, display; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3796 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3797 if ( elemdisplay[ tagName ] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3798 display = elemdisplay[ tagName ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3799 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3800 var elem = jQuery("<" + tagName + " />").appendTo("body"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3801 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3802 display = elem.css("display"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3803 if ( display === "none" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3804 display = "block"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3805 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3806 elem.remove(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3807 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3808 elemdisplay[ tagName ] = display; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3809 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3810 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3811 jQuery.data(this[i], "olddisplay", display); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3812 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3813 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3814 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3815 // Set the display of the elements in a second loop |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3816 // to avoid the constant reflow |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3817 for ( var i = 0, l = this.length; i < l; i++ ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3818 this[i].style.display = jQuery.data(this[i], "olddisplay") || ""; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3819 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3820 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3821 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3822 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3823 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3824 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3825 hide: function(speed,callback){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3826 if ( speed ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3827 return this.animate( genFx("hide", 3), speed, callback); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3828 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3829 for ( var i = 0, l = this.length; i < l; i++ ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3830 var old = jQuery.data(this[i], "olddisplay"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3831 if ( !old && old !== "none" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3832 jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display")); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3833 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3834 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3835 // Set the display of the elements in a second loop |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3836 // to avoid the constant reflow |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3837 for ( var i = 0, l = this.length; i < l; i++ ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3838 this[i].style.display = "none"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3839 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3840 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3841 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3842 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3843 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3844 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3845 // Save the old toggle function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3846 _toggle: jQuery.fn.toggle, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3847 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3848 toggle: function( fn, fn2 ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3849 var bool = typeof fn === "boolean"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3850 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3851 return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3852 this._toggle.apply( this, arguments ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3853 fn == null || bool ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3854 this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3855 var state = bool ? fn : jQuery(this).is(":hidden"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3856 jQuery(this)[ state ? "show" : "hide" ](); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3857 }) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3858 this.animate(genFx("toggle", 3), fn, fn2); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3859 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3860 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3861 fadeTo: function(speed,to,callback){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3862 return this.animate({opacity: to}, speed, callback); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3863 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3864 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3865 animate: function( prop, speed, easing, callback ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3866 var optall = jQuery.speed(speed, easing, callback); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3867 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3868 return this[ optall.queue === false ? "each" : "queue" ](function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3869 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3870 var opt = jQuery.extend({}, optall), p, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3871 hidden = this.nodeType == 1 && jQuery(this).is(":hidden"), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3872 self = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3873 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3874 for ( p in prop ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3875 if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3876 return opt.complete.call(this); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3877 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3878 if ( ( p == "height" || p == "width" ) && this.style ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3879 // Store display property |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3880 opt.display = jQuery.css(this, "display"); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3881 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3882 // Make sure that nothing sneaks out |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3883 opt.overflow = this.style.overflow; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3884 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3885 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3886 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3887 if ( opt.overflow != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3888 this.style.overflow = "hidden"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3889 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3890 opt.curAnim = jQuery.extend({}, prop); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3891 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3892 jQuery.each( prop, function(name, val){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3893 var e = new jQuery.fx( self, opt, name ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3894 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3895 if ( /toggle|show|hide/.test(val) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3896 e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3897 else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3898 var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3899 start = e.cur(true) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3900 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3901 if ( parts ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3902 var end = parseFloat(parts[2]), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3903 unit = parts[3] || "px"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3904 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3905 // We need to compute starting value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3906 if ( unit != "px" ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3907 self.style[ name ] = (end || 1) + unit; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3908 start = ((end || 1) / e.cur(true)) * start; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3909 self.style[ name ] = start + unit; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3910 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3911 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3912 // If a +=/-= token was provided, we're doing a relative animation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3913 if ( parts[1] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3914 end = ((parts[1] == "-=" ? -1 : 1) * end) + start; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3915 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3916 e.custom( start, end, unit ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3917 } else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3918 e.custom( start, val, "" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3919 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3920 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3921 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3922 // For JS strict compliance |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3923 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3924 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3925 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3926 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3927 stop: function(clearQueue, gotoEnd){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3928 var timers = jQuery.timers; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3929 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3930 if (clearQueue) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3931 this.queue([]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3932 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3933 this.each(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3934 // go in reverse order so anything added to the queue during the loop is ignored |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3935 for ( var i = timers.length - 1; i >= 0; i-- ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3936 if ( timers[i].elem == this ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3937 if (gotoEnd) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3938 // force the next step to be the last |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3939 timers[i](true); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3940 timers.splice(i, 1); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3941 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3942 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3943 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3944 // start the next in the queue if the last step wasn't forced |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3945 if (!gotoEnd) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3946 this.dequeue(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3947 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3948 return this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3949 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3950 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3951 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3952 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3953 // Generate shortcuts for custom animations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3954 jQuery.each({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3955 slideDown: genFx("show", 1), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3956 slideUp: genFx("hide", 1), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3957 slideToggle: genFx("toggle", 1), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3958 fadeIn: { opacity: "show" }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3959 fadeOut: { opacity: "hide" } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3960 }, function( name, props ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3961 jQuery.fn[ name ] = function( speed, callback ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3962 return this.animate( props, speed, callback ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3963 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3964 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3965 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3966 jQuery.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3967 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3968 speed: function(speed, easing, fn) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3969 var opt = typeof speed === "object" ? speed : { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3970 complete: fn || !fn && easing || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3971 jQuery.isFunction( speed ) && speed, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3972 duration: speed, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3973 easing: fn && easing || easing && !jQuery.isFunction(easing) && easing |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3974 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3975 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3976 opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3977 jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3978 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3979 // Queueing |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3980 opt.old = opt.complete; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3981 opt.complete = function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3982 if ( opt.queue !== false ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3983 jQuery(this).dequeue(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3984 if ( jQuery.isFunction( opt.old ) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3985 opt.old.call( this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3986 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3987 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3988 return opt; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3989 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3990 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3991 easing: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3992 linear: function( p, n, firstNum, diff ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3993 return firstNum + diff * p; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3994 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3995 swing: function( p, n, firstNum, diff ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3996 return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3997 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3998 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3999 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4000 timers: [], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4001 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4002 fx: function( elem, options, prop ){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4003 this.options = options; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4004 this.elem = elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4005 this.prop = prop; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4006 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4007 if ( !options.orig ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4008 options.orig = {}; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4009 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4010 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4011 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4012 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4013 jQuery.fx.prototype = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4014 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4015 // Simple function for setting a style value |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4016 update: function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4017 if ( this.options.step ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4018 this.options.step.call( this.elem, this.now, this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4019 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4020 (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4021 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4022 // Set display property to block for height/width animations |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4023 if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4024 this.elem.style.display = "block"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4025 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4026 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4027 // Get the current size |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4028 cur: function(force){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4029 if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4030 return this.elem[ this.prop ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4031 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4032 var r = parseFloat(jQuery.css(this.elem, this.prop, force)); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4033 return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4034 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4035 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4036 // Start an animation from one number to another |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4037 custom: function(from, to, unit){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4038 this.startTime = now(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4039 this.start = from; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4040 this.end = to; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4041 this.unit = unit || this.unit || "px"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4042 this.now = this.start; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4043 this.pos = this.state = 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4044 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4045 var self = this; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4046 function t(gotoEnd){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4047 return self.step(gotoEnd); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4048 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4049 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4050 t.elem = this.elem; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4051 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4052 if ( t() && jQuery.timers.push(t) && !timerId ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4053 timerId = setInterval(function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4054 var timers = jQuery.timers; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4055 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4056 for ( var i = 0; i < timers.length; i++ ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4057 if ( !timers[i]() ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4058 timers.splice(i--, 1); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4059 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4060 if ( !timers.length ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4061 clearInterval( timerId ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4062 timerId = undefined; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4063 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4064 }, 13); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4065 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4066 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4067 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4068 // Simple 'show' function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4069 show: function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4070 // Remember where we started, so that we can go back to it later |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4071 this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4072 this.options.show = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4073 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4074 // Begin the animation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4075 // Make sure that we start at a small width/height to avoid any |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4076 // flash of content |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4077 this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur()); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4078 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4079 // Start by showing the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4080 jQuery(this.elem).show(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4081 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4082 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4083 // Simple 'hide' function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4084 hide: function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4085 // Remember where we started, so that we can go back to it later |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4086 this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4087 this.options.hide = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4088 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4089 // Begin the animation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4090 this.custom(this.cur(), 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4091 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4092 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4093 // Each step of an animation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4094 step: function(gotoEnd){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4095 var t = now(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4096 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4097 if ( gotoEnd || t >= this.options.duration + this.startTime ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4098 this.now = this.end; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4099 this.pos = this.state = 1; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4100 this.update(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4101 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4102 this.options.curAnim[ this.prop ] = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4103 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4104 var done = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4105 for ( var i in this.options.curAnim ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4106 if ( this.options.curAnim[i] !== true ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4107 done = false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4108 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4109 if ( done ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4110 if ( this.options.display != null ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4111 // Reset the overflow |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4112 this.elem.style.overflow = this.options.overflow; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4113 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4114 // Reset the display |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4115 this.elem.style.display = this.options.display; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4116 if ( jQuery.css(this.elem, "display") == "none" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4117 this.elem.style.display = "block"; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4118 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4119 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4120 // Hide the element if the "hide" operation was done |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4121 if ( this.options.hide ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4122 jQuery(this.elem).hide(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4123 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4124 // Reset the properties, if the item has been hidden or shown |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4125 if ( this.options.hide || this.options.show ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4126 for ( var p in this.options.curAnim ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4127 jQuery.attr(this.elem.style, p, this.options.orig[p]); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4128 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4129 // Execute the complete function |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4130 this.options.complete.call( this.elem ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4131 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4132 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4133 return false; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4134 } else { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4135 var n = t - this.startTime; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4136 this.state = n / this.options.duration; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4137 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4138 // Perform the easing function, defaults to swing |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4139 this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4140 this.now = this.start + ((this.end - this.start) * this.pos); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4141 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4142 // Perform the next step of the animation |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4143 this.update(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4144 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4145 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4146 return true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4147 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4148 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4149 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4150 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4151 jQuery.extend( jQuery.fx, { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4152 speeds:{ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4153 slow: 600, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4154 fast: 200, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4155 // Default speed |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4156 _default: 400 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4157 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4158 step: { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4159 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4160 opacity: function(fx){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4161 jQuery.attr(fx.elem.style, "opacity", fx.now); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4162 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4163 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4164 _default: function(fx){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4165 if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4166 fx.elem.style[ fx.prop ] = fx.now + fx.unit; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4167 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4168 fx.elem[ fx.prop ] = fx.now; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4169 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4170 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4171 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4172 if ( document.documentElement["getBoundingClientRect"] ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4173 jQuery.fn.offset = function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4174 if ( !this[0] ) return { top: 0, left: 0 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4175 if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4176 var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4177 clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4178 top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4179 left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4180 return { top: top, left: left }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4181 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4182 else |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4183 jQuery.fn.offset = function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4184 if ( !this[0] ) return { top: 0, left: 0 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4185 if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4186 jQuery.offset.initialized || jQuery.offset.initialize(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4187 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4188 var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4189 doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4190 body = doc.body, defaultView = doc.defaultView, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4191 prevComputedStyle = defaultView.getComputedStyle(elem, null), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4192 top = elem.offsetTop, left = elem.offsetLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4193 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4194 while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4195 computedStyle = defaultView.getComputedStyle(elem, null); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4196 top -= elem.scrollTop, left -= elem.scrollLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4197 if ( elem === offsetParent ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4198 top += elem.offsetTop, left += elem.offsetLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4199 if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4200 top += parseInt( computedStyle.borderTopWidth, 10) || 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4201 left += parseInt( computedStyle.borderLeftWidth, 10) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4202 prevOffsetParent = offsetParent, offsetParent = elem.offsetParent; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4203 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4204 if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4205 top += parseInt( computedStyle.borderTopWidth, 10) || 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4206 left += parseInt( computedStyle.borderLeftWidth, 10) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4207 prevComputedStyle = computedStyle; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4208 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4209 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4210 if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4211 top += body.offsetTop, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4212 left += body.offsetLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4213 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4214 if ( prevComputedStyle.position === "fixed" ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4215 top += Math.max(docElem.scrollTop, body.scrollTop), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4216 left += Math.max(docElem.scrollLeft, body.scrollLeft); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4217 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4218 return { top: top, left: left }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4219 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4220 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4221 jQuery.offset = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4222 initialize: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4223 if ( this.initialized ) return; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4224 var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4225 html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>'; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4226 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4227 rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4228 for ( prop in rules ) container.style[prop] = rules[prop]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4229 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4230 container.innerHTML = html; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4231 body.insertBefore(container, body.firstChild); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4232 innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4233 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4234 this.doesNotAddBorder = (checkDiv.offsetTop !== 5); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4235 this.doesAddBorderForTableAndCells = (td.offsetTop === 5); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4236 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4237 innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative'; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4238 this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4239 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4240 body.style.marginTop = '1px'; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4241 this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4242 body.style.marginTop = bodyMarginTop; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4243 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4244 body.removeChild(container); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4245 this.initialized = true; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4246 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4247 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4248 bodyOffset: function(body) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4249 jQuery.offset.initialized || jQuery.offset.initialize(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4250 var top = body.offsetTop, left = body.offsetLeft; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4251 if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4252 top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4253 left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4254 return { top: top, left: left }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4255 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4256 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4257 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4258 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4259 jQuery.fn.extend({ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4260 position: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4261 var left = 0, top = 0, results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4262 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4263 if ( this[0] ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4264 // Get *real* offsetParent |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4265 var offsetParent = this.offsetParent(), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4266 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4267 // Get correct offsets |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4268 offset = this.offset(), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4269 parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4270 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4271 // Subtract element margins |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4272 // note: when an element has margin: auto the offsetLeft and marginLeft |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4273 // are the same in Safari causing offset.left to incorrectly be 0 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4274 offset.top -= num( this, 'marginTop' ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4275 offset.left -= num( this, 'marginLeft' ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4276 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4277 // Add offsetParent borders |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4278 parentOffset.top += num( offsetParent, 'borderTopWidth' ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4279 parentOffset.left += num( offsetParent, 'borderLeftWidth' ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4280 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4281 // Subtract the two offsets |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4282 results = { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4283 top: offset.top - parentOffset.top, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4284 left: offset.left - parentOffset.left |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4285 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4286 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4287 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4288 return results; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4289 }, |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4290 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4291 offsetParent: function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4292 var offsetParent = this[0].offsetParent || document.body; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4293 while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') ) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4294 offsetParent = offsetParent.offsetParent; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4295 return jQuery(offsetParent); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4296 } |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4297 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4298 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4299 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4300 // Create scrollLeft and scrollTop methods |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4301 jQuery.each( ['Left', 'Top'], function(i, name) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4302 var method = 'scroll' + name; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4303 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4304 jQuery.fn[ method ] = function(val) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4305 if (!this[0]) return null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4306 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4307 return val !== undefined ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4308 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4309 // Set the scroll offset |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4310 this.each(function() { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4311 this == window || this == document ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4312 window.scrollTo( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4313 !i ? val : jQuery(window).scrollLeft(), |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4314 i ? val : jQuery(window).scrollTop() |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4315 ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4316 this[ method ] = val; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4317 }) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4318 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4319 // Return the scroll offset |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4320 this[0] == window || this[0] == document ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4321 self[ i ? 'pageYOffset' : 'pageXOffset' ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4322 jQuery.boxModel && document.documentElement[ method ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4323 document.body[ method ] : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4324 this[0][ method ]; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4325 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4326 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4327 // Create innerHeight, innerWidth, outerHeight and outerWidth methods |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4328 jQuery.each([ "Height", "Width" ], function(i, name){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4329 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4330 var tl = i ? "Left" : "Top", // top or left |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4331 br = i ? "Right" : "Bottom", // bottom or right |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4332 lower = name.toLowerCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4333 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4334 // innerHeight and innerWidth |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4335 jQuery.fn["inner" + name] = function(){ |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4336 return this[0] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4337 jQuery.css( this[0], lower, false, "padding" ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4338 null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4339 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4340 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4341 // outerHeight and outerWidth |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4342 jQuery.fn["outer" + name] = function(margin) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4343 return this[0] ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4344 jQuery.css( this[0], lower, false, margin ? "margin" : "border" ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4345 null; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4346 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4347 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4348 var type = name.toLowerCase(); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4349 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4350 jQuery.fn[ type ] = function( size ) { |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4351 // Get window width or height |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4352 return this[0] == window ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4353 // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4354 document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4355 document.body[ "client" + name ] : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4356 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4357 // Get document width or height |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4358 this[0] == document ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4359 // Either scroll[Width/Height] or offset[Width/Height], whichever is greater |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4360 Math.max( |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4361 document.documentElement["client" + name], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4362 document.body["scroll" + name], document.documentElement["scroll" + name], |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4363 document.body["offset" + name], document.documentElement["offset" + name] |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4364 ) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4365 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4366 // Get or set width or height on the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4367 size === undefined ? |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4368 // Get width or height on the element |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4369 (this.length ? jQuery.css( this[0], type ) : null) : |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4370 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4371 // Set the width or height on the element (default to pixels if value is unitless) |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4372 this.css( type, typeof size === "string" ? size : size + "px" ); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4373 }; |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4374 |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4375 }); |
bf1ce840d0f0
make this a genshi view (should be: tempita view)
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4376 })(); |