annotate jquery.js @ 27:7f12db104246

Added evaluate, new_array, and new_object functions to JsSandbox class.
author Atul Varma <varmaa@toolness.com>
date Tue, 08 Sep 2009 09:38:46 -0700
parents 05f467a83cb9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 /*!
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2 * jQuery JavaScript Library v1.3.1
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 * http://jquery.com/
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4 *
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5 * Copyright (c) 2009 John Resig
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6 * Dual licensed under the MIT and GPL licenses.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 * http://docs.jquery.com/License
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8 *
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9 * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 * Revision: 6158
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 */
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12 (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 var
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 // Will speed up references to window, and allows munging its name.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16 window = this,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17 // Will speed up references to undefined, and allows munging its name.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 undefined,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19 // Map over jQuery in case of overwrite
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 _jQuery = window.jQuery,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21 // Map over the $ in case of overwrite
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 _$ = window.$,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 jQuery = window.jQuery = window.$ = function( selector, context ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25 // The jQuery object is actually just the init constructor 'enhanced'
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 return new jQuery.fn.init( selector, context );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29 // A simple way to check for HTML strings or ID strings
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
30 // (both of which we optimize for)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
31 quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
32 // Is it a simple selector
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
33 isSimple = /^.[^:#\[\.,]*$/;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
34
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
35 jQuery.fn = jQuery.prototype = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
36 init: function( selector, context ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37 // Make sure that a selection was provided
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 selector = selector || document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
39
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
40 // Handle $(DOMElement)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
41 if ( selector.nodeType ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
42 this[0] = selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
43 this.length = 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
44 this.context = selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
45 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
46 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
47 // Handle HTML strings
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
48 if ( typeof selector === "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
49 // Are we dealing with HTML string or an ID?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
50 var match = quickExpr.exec( selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
51
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
52 // Verify a match, and that no context was specified for #id
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53 if ( match && (match[1] || !context) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 // HANDLE: $(html) -> $(array)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 if ( match[1] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 selector = jQuery.clean( [ match[1] ], context );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 // HANDLE: $("#id")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 var elem = document.getElementById( match[3] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63 // Handle the case where IE and Opera return items
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
64 // by name instead of ID
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
65 if ( elem && elem.id != match[3] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
66 return jQuery().find( selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
67
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 // Otherwise, we inject the element directly into the jQuery object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
69 var ret = jQuery( elem || [] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
70 ret.context = document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
71 ret.selector = selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
72 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
73 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
74
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
75 // HANDLE: $(expr, [context])
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
76 // (which is just equivalent to: $(content).find(expr)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
77 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
78 return jQuery( context ).find( selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
79
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
80 // HANDLE: $(function)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
81 // Shortcut for document ready
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
82 } else if ( jQuery.isFunction( selector ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
83 return jQuery( document ).ready( selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
84
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
85 // Make sure that old selector state is passed along
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
86 if ( selector.selector && selector.context ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
87 this.selector = selector.selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
88 this.context = selector.context;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
89 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
90
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
91 return this.setArray(jQuery.makeArray(selector));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
92 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
93
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
94 // Start with an empty selector
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
95 selector: "",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
96
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
97 // The current version of jQuery being used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
98 jquery: "1.3.1",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
99
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
100 // The number of elements contained in the matched element set
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
101 size: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
102 return this.length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
103 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
104
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
105 // Get the Nth element in the matched element set OR
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
106 // Get the whole matched element set as a clean array
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
107 get: function( num ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
108 return num === undefined ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
109
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
110 // Return a 'clean' array
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
111 jQuery.makeArray( this ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
112
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
113 // Return just the object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
114 this[ num ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
115 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
116
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
117 // Take an array of elements and push it onto the stack
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
118 // (returning the new matched element set)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
119 pushStack: function( elems, name, selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
120 // Build a new jQuery matched element set
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
121 var ret = jQuery( elems );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
122
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
123 // Add the old object onto the stack (as a reference)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
124 ret.prevObject = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
125
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
126 ret.context = this.context;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
127
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
128 if ( name === "find" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
129 ret.selector = this.selector + (this.selector ? " " : "") + selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
130 else if ( name )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
131 ret.selector = this.selector + "." + name + "(" + selector + ")";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
132
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
133 // Return the newly-formed element set
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
134 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
135 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
136
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
137 // Force the current matched set of elements to become
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
138 // the specified array of elements (destroying the stack in the process)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
139 // You should use pushStack() in order to do this, but maintain the stack
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
140 setArray: function( elems ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
141 // Resetting the length to 0, then using the native Array push
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
142 // is a super-fast way to populate an object with array-like properties
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
143 this.length = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
144 Array.prototype.push.apply( this, elems );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
145
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
146 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
147 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
148
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
149 // Execute a callback for every element in the matched set.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
150 // (You can seed the arguments with an array of args, but this is
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
151 // only used internally.)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
152 each: function( callback, args ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
153 return jQuery.each( this, callback, args );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
154 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
155
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
156 // Determine the position of an element within
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
157 // the matched set of elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
158 index: function( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
159 // Locate the position of the desired element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
160 return jQuery.inArray(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
161 // If it receives a jQuery object, the first element is used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
162 elem && elem.jquery ? elem[0] : elem
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
163 , this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
164 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
165
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
166 attr: function( name, value, type ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
167 var options = name;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
168
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
169 // Look for the case where we're accessing a style value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
170 if ( typeof name === "string" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
171 if ( value === undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
172 return this[0] && jQuery[ type || "attr" ]( this[0], name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
173
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
174 else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
175 options = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
176 options[ name ] = value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
177 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
178
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
179 // Check to see if we're setting style values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
180 return this.each(function(i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
181 // Set all the styles
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
182 for ( name in options )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
183 jQuery.attr(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
184 type ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
185 this.style :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
186 this,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
187 name, jQuery.prop( this, options[ name ], type, i, name )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
188 );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
189 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
190 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
191
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
192 css: function( key, value ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
193 // ignore negative width and height values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
194 if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
195 value = undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
196 return this.attr( key, value, "curCSS" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
197 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
198
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
199 text: function( text ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
200 if ( typeof text !== "object" && text != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
201 return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
202
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
203 var ret = "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
204
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
205 jQuery.each( text || this, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
206 jQuery.each( this.childNodes, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
207 if ( this.nodeType != 8 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
208 ret += this.nodeType != 1 ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
209 this.nodeValue :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
210 jQuery.fn.text( [ this ] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
211 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
212 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
213
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
214 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
215 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
216
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
217 wrapAll: function( html ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
218 if ( this[0] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
219 // The elements to wrap the target around
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
220 var wrap = jQuery( html, this[0].ownerDocument ).clone();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
221
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
222 if ( this[0].parentNode )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
223 wrap.insertBefore( this[0] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
224
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
225 wrap.map(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
226 var elem = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
227
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
228 while ( elem.firstChild )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
229 elem = elem.firstChild;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
230
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
231 return elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
232 }).append(this);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
233 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
234
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
235 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
236 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
237
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
238 wrapInner: function( html ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
239 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
240 jQuery( this ).contents().wrapAll( html );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
241 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
242 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
243
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
244 wrap: function( html ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
245 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
246 jQuery( this ).wrapAll( html );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
247 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
248 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
249
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
250 append: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
251 return this.domManip(arguments, true, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
252 if (this.nodeType == 1)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
253 this.appendChild( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
254 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
255 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
256
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
257 prepend: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
258 return this.domManip(arguments, true, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
259 if (this.nodeType == 1)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
260 this.insertBefore( elem, this.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
261 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
262 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
263
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
264 before: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
265 return this.domManip(arguments, false, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
266 this.parentNode.insertBefore( elem, this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
267 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
268 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
269
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
270 after: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
271 return this.domManip(arguments, false, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
272 this.parentNode.insertBefore( elem, this.nextSibling );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
273 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
274 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
275
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
276 end: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
277 return this.prevObject || jQuery( [] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
278 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
279
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
280 // For internal use only.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
281 // Behaves like an Array's .push method, not like a jQuery method.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
282 push: [].push,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
283
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
284 find: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
285 if ( this.length === 1 && !/,/.test(selector) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
286 var ret = this.pushStack( [], "find", selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
287 ret.length = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
288 jQuery.find( selector, this[0], ret );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
289 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
290 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
291 var elems = jQuery.map(this, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
292 return jQuery.find( selector, elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
293 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
294
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
295 return this.pushStack( /[^+>] [^+>]/.test( selector ) ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
296 jQuery.unique( elems ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
297 elems, "find", selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
298 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
299 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
300
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
301 clone: function( events ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
302 // Do the clone
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
303 var ret = this.map(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
304 if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
305 // IE copies events bound via attachEvent when
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
306 // using cloneNode. Calling detachEvent on the
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
307 // clone will also remove the events from the orignal
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
308 // In order to get around this, we use innerHTML.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
309 // Unfortunately, this means some modifications to
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
310 // attributes in IE that are actually only stored
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
311 // as properties will not be copied (such as the
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
312 // the name attribute on an input).
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
313 var clone = this.cloneNode(true),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
314 container = document.createElement("div");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
315 container.appendChild(clone);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
316 return jQuery.clean([container.innerHTML])[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
317 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
318 return this.cloneNode(true);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
319 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
320
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
321 // Need to set the expando to null on the cloned set if it exists
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
322 // removeData doesn't work here, IE removes it from the original as well
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
323 // this is primarily for IE but the data expando shouldn't be copied over in any browser
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
324 var clone = ret.find("*").andSelf().each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
325 if ( this[ expando ] !== undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
326 this[ expando ] = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
327 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
328
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
329 // Copy the events from the original to the clone
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
330 if ( events === true )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
331 this.find("*").andSelf().each(function(i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
332 if (this.nodeType == 3)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
333 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
334 var events = jQuery.data( this, "events" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
335
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
336 for ( var type in events )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
337 for ( var handler in events[ type ] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
338 jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
339 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
340
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
341 // Return the cloned set
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
342 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
343 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
344
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
345 filter: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
346 return this.pushStack(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
347 jQuery.isFunction( selector ) &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
348 jQuery.grep(this, function(elem, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
349 return selector.call( elem, i );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
350 }) ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
351
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
352 jQuery.multiFilter( selector, jQuery.grep(this, function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
353 return elem.nodeType === 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
354 }) ), "filter", selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
355 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
356
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
357 closest: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
358 var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
359
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
360 return this.map(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
361 var cur = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
362 while ( cur && cur.ownerDocument ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
363 if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
364 return cur;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
365 cur = cur.parentNode;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
366 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
367 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
368 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
369
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
370 not: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
371 if ( typeof selector === "string" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
372 // test special case where just one selector is passed in
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
373 if ( isSimple.test( selector ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
374 return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
375 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
376 selector = jQuery.multiFilter( selector, this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
377
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
378 var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
379 return this.filter(function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
380 return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
381 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
382 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
383
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
384 add: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
385 return this.pushStack( jQuery.unique( jQuery.merge(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
386 this.get(),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
387 typeof selector === "string" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
388 jQuery( selector ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
389 jQuery.makeArray( selector )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
390 )));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
391 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
392
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
393 is: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
394 return !!selector && jQuery.multiFilter( selector, this ).length > 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
395 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
396
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
397 hasClass: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
398 return !!selector && this.is( "." + selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
399 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
400
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
401 val: function( value ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
402 if ( value === undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
403 var elem = this[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
404
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
405 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
406 if( jQuery.nodeName( elem, 'option' ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
407 return (elem.attributes.value || {}).specified ? elem.value : elem.text;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
408
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
409 // We need to handle select boxes special
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
410 if ( jQuery.nodeName( elem, "select" ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
411 var index = elem.selectedIndex,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
412 values = [],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
413 options = elem.options,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
414 one = elem.type == "select-one";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
415
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
416 // Nothing was selected
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
417 if ( index < 0 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
418 return null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
419
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
420 // Loop through all the selected options
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
421 for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
422 var option = options[ i ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
423
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
424 if ( option.selected ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
425 // Get the specifc value for the option
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
426 value = jQuery(option).val();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
427
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
428 // We don't need an array for one selects
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
429 if ( one )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
430 return value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
431
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
432 // Multi-Selects return an array
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
433 values.push( value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
434 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
435 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
436
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
437 return values;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
438 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
439
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
440 // Everything else, we just grab the value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
441 return (elem.value || "").replace(/\r/g, "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
442
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
443 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
444
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
445 return undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
446 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
447
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
448 if ( typeof value === "number" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
449 value += '';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
450
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
451 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
452 if ( this.nodeType != 1 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
453 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
454
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
455 if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
456 this.checked = (jQuery.inArray(this.value, value) >= 0 ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
457 jQuery.inArray(this.name, value) >= 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
458
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
459 else if ( jQuery.nodeName( this, "select" ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
460 var values = jQuery.makeArray(value);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
461
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
462 jQuery( "option", this ).each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
463 this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
464 jQuery.inArray( this.text, values ) >= 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
465 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
466
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
467 if ( !values.length )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
468 this.selectedIndex = -1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
469
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
470 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
471 this.value = value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
472 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
473 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
474
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
475 html: function( value ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
476 return value === undefined ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
477 (this[0] ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
478 this[0].innerHTML :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
479 null) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
480 this.empty().append( value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
481 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
482
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
483 replaceWith: function( value ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
484 return this.after( value ).remove();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
485 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
486
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
487 eq: function( i ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
488 return this.slice( i, +i + 1 );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
489 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
490
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
491 slice: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
492 return this.pushStack( Array.prototype.slice.apply( this, arguments ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
493 "slice", Array.prototype.slice.call(arguments).join(",") );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
494 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
495
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
496 map: function( callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
497 return this.pushStack( jQuery.map(this, function(elem, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
498 return callback.call( elem, i, elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
499 }));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
500 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
501
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
502 andSelf: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
503 return this.add( this.prevObject );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
504 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
505
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
506 domManip: function( args, table, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
507 if ( this[0] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
508 var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
509 scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
510 first = fragment.firstChild,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
511 extra = this.length > 1 ? fragment.cloneNode(true) : fragment;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
512
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
513 if ( first )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
514 for ( var i = 0, l = this.length; i < l; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
515 callback.call( root(this[i], first), i > 0 ? extra.cloneNode(true) : fragment );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
516
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
517 if ( scripts )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
518 jQuery.each( scripts, evalScript );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
519 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
520
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
521 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
522
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
523 function root( elem, cur ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
524 return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
525 (elem.getElementsByTagName("tbody")[0] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
526 elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
527 elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
528 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
529 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
530 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
531
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
532 // Give the init function the jQuery prototype for later instantiation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
533 jQuery.fn.init.prototype = jQuery.fn;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
534
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
535 function evalScript( i, elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
536 if ( elem.src )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
537 jQuery.ajax({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
538 url: elem.src,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
539 async: false,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
540 dataType: "script"
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
541 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
542
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
543 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
544 jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
545
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
546 if ( elem.parentNode )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
547 elem.parentNode.removeChild( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
548 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
549
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
550 function now(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
551 return +new Date;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
552 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
553
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
554 jQuery.extend = jQuery.fn.extend = function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
555 // copy reference to target object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
556 var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
557
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
558 // Handle a deep copy situation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
559 if ( typeof target === "boolean" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
560 deep = target;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
561 target = arguments[1] || {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
562 // skip the boolean and the target
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
563 i = 2;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
564 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
565
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
566 // Handle case when target is a string or something (possible in deep copy)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
567 if ( typeof target !== "object" && !jQuery.isFunction(target) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
568 target = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
569
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
570 // extend jQuery itself if only one argument is passed
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
571 if ( length == i ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
572 target = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
573 --i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
574 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
575
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
576 for ( ; i < length; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
577 // Only deal with non-null/undefined values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
578 if ( (options = arguments[ i ]) != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
579 // Extend the base object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
580 for ( var name in options ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
581 var src = target[ name ], copy = options[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
582
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
583 // Prevent never-ending loop
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
584 if ( target === copy )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
585 continue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
586
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
587 // Recurse if we're merging object values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
588 if ( deep && copy && typeof copy === "object" && !copy.nodeType )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
589 target[ name ] = jQuery.extend( deep,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
590 // Never move original objects, clone them
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
591 src || ( copy.length != null ? [ ] : { } )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
592 , copy );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
593
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
594 // Don't bring in undefined values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
595 else if ( copy !== undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
596 target[ name ] = copy;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
597
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
598 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
599
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
600 // Return the modified object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
601 return target;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
602 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
603
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
604 // exclude the following css properties to add px
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
605 var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
606 // cache defaultView
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
607 defaultView = document.defaultView || {},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
608 toString = Object.prototype.toString;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
609
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
610 jQuery.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
611 noConflict: function( deep ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
612 window.$ = _$;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
613
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
614 if ( deep )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
615 window.jQuery = _jQuery;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
616
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
617 return jQuery;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
618 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
619
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
620 // See test/unit/core.js for details concerning isFunction.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
621 // Since version 1.3, DOM methods and functions like alert
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
622 // aren't supported. They return false on IE (#2968).
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
623 isFunction: function( obj ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
624 return toString.call(obj) === "[object Function]";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
625 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
626
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
627 isArray: function( obj ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
628 return toString.call(obj) === "[object Array]";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
629 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
630
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
631 // check if an element is in a (or is an) XML document
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
632 isXMLDoc: function( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
633 return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
634 !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
635 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
636
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
637 // Evalulates a script in a global context
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
638 globalEval: function( data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
639 data = jQuery.trim( data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
640
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
641 if ( data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
642 // Inspired by code by Andrea Giammarchi
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
643 // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
644 var head = document.getElementsByTagName("head")[0] || document.documentElement,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
645 script = document.createElement("script");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
646
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
647 script.type = "text/javascript";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
648 if ( jQuery.support.scriptEval )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
649 script.appendChild( document.createTextNode( data ) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
650 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
651 script.text = data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
652
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
653 // Use insertBefore instead of appendChild to circumvent an IE6 bug.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
654 // This arises when a base node is used (#2709).
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
655 head.insertBefore( script, head.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
656 head.removeChild( script );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
657 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
658 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
659
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
660 nodeName: function( elem, name ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
661 return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
662 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
663
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
664 // args is for internal usage only
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
665 each: function( object, callback, args ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
666 var name, i = 0, length = object.length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
667
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
668 if ( args ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
669 if ( length === undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
670 for ( name in object )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
671 if ( callback.apply( object[ name ], args ) === false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
672 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
673 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
674 for ( ; i < length; )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
675 if ( callback.apply( object[ i++ ], args ) === false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
676 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
677
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
678 // A special, fast, case for the most common use of each
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
679 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
680 if ( length === undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
681 for ( name in object )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
682 if ( callback.call( object[ name ], name, object[ name ] ) === false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
683 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
684 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
685 for ( var value = object[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
686 i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
687 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
688
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
689 return object;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
690 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
691
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
692 prop: function( elem, value, type, i, name ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
693 // Handle executable functions
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
694 if ( jQuery.isFunction( value ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
695 value = value.call( elem, i );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
696
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
697 // Handle passing in a number to a CSS property
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
698 return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
699 value + "px" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
700 value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
701 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
702
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
703 className: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
704 // internal only, use addClass("class")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
705 add: function( elem, classNames ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
706 jQuery.each((classNames || "").split(/\s+/), function(i, className){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
707 if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
708 elem.className += (elem.className ? " " : "") + className;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
709 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
710 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
711
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
712 // internal only, use removeClass("class")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
713 remove: function( elem, classNames ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
714 if (elem.nodeType == 1)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
715 elem.className = classNames !== undefined ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
716 jQuery.grep(elem.className.split(/\s+/), function(className){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
717 return !jQuery.className.has( classNames, className );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
718 }).join(" ") :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
719 "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
720 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
721
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
722 // internal only, use hasClass("class")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
723 has: function( elem, className ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
724 return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
725 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
726 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
727
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
728 // A method for quickly swapping in/out CSS properties to get correct calculations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
729 swap: function( elem, options, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
730 var old = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
731 // Remember the old values, and insert the new ones
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
732 for ( var name in options ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
733 old[ name ] = elem.style[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
734 elem.style[ name ] = options[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
735 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
736
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
737 callback.call( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
738
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
739 // Revert the old values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
740 for ( var name in options )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
741 elem.style[ name ] = old[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
742 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
743
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
744 css: function( elem, name, force ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
745 if ( name == "width" || name == "height" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
746 var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
747
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
748 function getWH() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
749 val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
750 var padding = 0, border = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
751 jQuery.each( which, function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
752 padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
753 border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
754 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
755 val -= Math.round(padding + border);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
756 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
757
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
758 if ( jQuery(elem).is(":visible") )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
759 getWH();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
760 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
761 jQuery.swap( elem, props, getWH );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
762
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
763 return Math.max(0, val);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
764 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
765
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
766 return jQuery.curCSS( elem, name, force );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
767 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
768
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
769 curCSS: function( elem, name, force ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
770 var ret, style = elem.style;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
771
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
772 // We need to handle opacity special in IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
773 if ( name == "opacity" && !jQuery.support.opacity ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
774 ret = jQuery.attr( style, "opacity" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
775
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
776 return ret == "" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
777 "1" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
778 ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
779 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
780
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
781 // Make sure we're using the right name for getting the float value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
782 if ( name.match( /float/i ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
783 name = styleFloat;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
784
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
785 if ( !force && style && style[ name ] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
786 ret = style[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
787
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
788 else if ( defaultView.getComputedStyle ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
789
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
790 // Only "float" is needed here
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
791 if ( name.match( /float/i ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
792 name = "float";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
793
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
794 name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
795
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
796 var computedStyle = defaultView.getComputedStyle( elem, null );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
797
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
798 if ( computedStyle )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
799 ret = computedStyle.getPropertyValue( name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
800
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
801 // We should always get a number back from opacity
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
802 if ( name == "opacity" && ret == "" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
803 ret = "1";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
804
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
805 } else if ( elem.currentStyle ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
806 var camelCase = name.replace(/\-(\w)/g, function(all, letter){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
807 return letter.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
808 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
809
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
810 ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
811
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
812 // From the awesome hack by Dean Edwards
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
813 // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
814
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
815 // If we're not dealing with a regular pixel number
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
816 // but a number that has a weird ending, we need to convert it to pixels
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
817 if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
818 // Remember the original values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
819 var left = style.left, rsLeft = elem.runtimeStyle.left;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
820
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
821 // Put in the new values to get a computed value out
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
822 elem.runtimeStyle.left = elem.currentStyle.left;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
823 style.left = ret || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
824 ret = style.pixelLeft + "px";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
825
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
826 // Revert the changed values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
827 style.left = left;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
828 elem.runtimeStyle.left = rsLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
829 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
830 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
831
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
832 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
833 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
834
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
835 clean: function( elems, context, fragment ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
836 context = context || document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
837
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
838 // !context.createElement fails in IE with an error but returns typeof 'object'
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
839 if ( typeof context.createElement === "undefined" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
840 context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
841
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
842 // If a single string is passed in and it's a single tag
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
843 // just do a createElement and skip the rest
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
844 if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
845 var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
846 if ( match )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
847 return [ context.createElement( match[1] ) ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
848 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
849
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
850 var ret = [], scripts = [], div = context.createElement("div");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
851
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
852 jQuery.each(elems, function(i, elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
853 if ( typeof elem === "number" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
854 elem += '';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
855
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
856 if ( !elem )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
857 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
858
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
859 // Convert html string into DOM nodes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
860 if ( typeof elem === "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
861 // Fix "XHTML"-style tags in all browsers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
862 elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
863 return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
864 all :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
865 front + "></" + tag + ">";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
866 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
867
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
868 // Trim whitespace, otherwise indexOf won't work as expected
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
869 var tags = jQuery.trim( elem ).toLowerCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
870
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
871 var wrap =
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
872 // option or optgroup
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
873 !tags.indexOf("<opt") &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
874 [ 1, "<select multiple='multiple'>", "</select>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
875
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
876 !tags.indexOf("<leg") &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
877 [ 1, "<fieldset>", "</fieldset>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
878
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
879 tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
880 [ 1, "<table>", "</table>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
881
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
882 !tags.indexOf("<tr") &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
883 [ 2, "<table><tbody>", "</tbody></table>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
884
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
885 // <thead> matched above
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
886 (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
887 [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
888
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
889 !tags.indexOf("<col") &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
890 [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
891
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
892 // IE can't serialize <link> and <script> tags normally
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
893 !jQuery.support.htmlSerialize &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
894 [ 1, "div<div>", "</div>" ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
895
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
896 [ 0, "", "" ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
897
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
898 // Go to html and back, then peel off extra wrappers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
899 div.innerHTML = wrap[1] + elem + wrap[2];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
900
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
901 // Move to the right depth
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
902 while ( wrap[0]-- )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
903 div = div.lastChild;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
904
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
905 // Remove IE's autoinserted <tbody> from table fragments
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
906 if ( !jQuery.support.tbody ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
907
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
908 // String was a <table>, *may* have spurious <tbody>
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
909 var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
910 div.firstChild && div.firstChild.childNodes :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
911
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
912 // String was a bare <thead> or <tfoot>
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
913 wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
914 div.childNodes :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
915 [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
916
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
917 for ( var j = tbody.length - 1; j >= 0 ; --j )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
918 if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
919 tbody[ j ].parentNode.removeChild( tbody[ j ] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
920
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
921 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
922
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
923 // IE completely kills leading whitespace when innerHTML is used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
924 if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
925 div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
926
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
927 elem = jQuery.makeArray( div.childNodes );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
928 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
929
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
930 if ( elem.nodeType )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
931 ret.push( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
932 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
933 ret = jQuery.merge( ret, elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
934
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
935 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
936
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
937 if ( fragment ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
938 for ( var i = 0; ret[i]; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
939 if ( jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
940 scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
941 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
942 if ( ret[i].nodeType === 1 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
943 ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
944 fragment.appendChild( ret[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
945 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
946 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
947
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
948 return scripts;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
949 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
950
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
951 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
952 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
953
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
954 attr: function( elem, name, value ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
955 // don't set attributes on text and comment nodes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
956 if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
957 return undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
958
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
959 var notxml = !jQuery.isXMLDoc( elem ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
960 // Whether we are setting (or getting)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
961 set = value !== undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
962
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
963 // Try to normalize/fix the name
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
964 name = notxml && jQuery.props[ name ] || name;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
965
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
966 // Only do all the following if this is a node (faster for style)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
967 // IE elem.getAttribute passes even for style
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
968 if ( elem.tagName ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
969
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
970 // These attributes require special treatment
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
971 var special = /href|src|style/.test( name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
972
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
973 // Safari mis-reports the default selected property of a hidden option
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
974 // Accessing the parent's selectedIndex property fixes it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
975 if ( name == "selected" && elem.parentNode )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
976 elem.parentNode.selectedIndex;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
977
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
978 // If applicable, access the attribute via the DOM 0 way
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
979 if ( name in elem && notxml && !special ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
980 if ( set ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
981 // We can't allow the type property to be changed (since it causes problems in IE)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
982 if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
983 throw "type property can't be changed";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
984
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
985 elem[ name ] = value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
986 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
987
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
988 // browsers index elements by id/name on forms, give priority to attributes.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
989 if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
990 return elem.getAttributeNode( name ).nodeValue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
991
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
992 // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
993 // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
994 if ( name == "tabIndex" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
995 var attributeNode = elem.getAttributeNode( "tabIndex" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
996 return attributeNode && attributeNode.specified
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
997 ? attributeNode.value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
998 : elem.nodeName.match(/(button|input|object|select|textarea)/i)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
999 ? 0
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1000 : elem.nodeName.match(/^(a|area)$/i) && elem.href
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1001 ? 0
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1002 : undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1003 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1004
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1005 return elem[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1006 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1007
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1008 if ( !jQuery.support.style && notxml && name == "style" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1009 return jQuery.attr( elem.style, "cssText", value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1010
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1011 if ( set )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1012 // convert the value to a string (all browsers do this but IE) see #1070
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1013 elem.setAttribute( name, "" + value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1014
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1015 var attr = !jQuery.support.hrefNormalized && notxml && special
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1016 // Some attributes require a special call on IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1017 ? elem.getAttribute( name, 2 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1018 : elem.getAttribute( name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1019
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1020 // Non-existent attributes return null, we normalize to undefined
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1021 return attr === null ? undefined : attr;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1022 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1023
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1024 // elem is actually elem.style ... set the style
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1025
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1026 // IE uses filters for opacity
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1027 if ( !jQuery.support.opacity && name == "opacity" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1028 if ( set ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1029 // IE has trouble with opacity if it does not have layout
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1030 // Force it by setting the zoom level
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1031 elem.zoom = 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1032
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1033 // Set the alpha filter to set the opacity
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1034 elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1035 (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1036 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1037
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1038 return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1039 (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1040 "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1041 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1042
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1043 name = name.replace(/-([a-z])/ig, function(all, letter){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1044 return letter.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1045 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1046
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1047 if ( set )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1048 elem[ name ] = value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1049
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1050 return elem[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1051 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1052
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1053 trim: function( text ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1054 return (text || "").replace( /^\s+|\s+$/g, "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1055 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1056
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1057 makeArray: function( array ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1058 var ret = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1059
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1060 if( array != null ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1061 var i = array.length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1062 // The window, strings (and functions) also have 'length'
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1063 if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1064 ret[0] = array;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1065 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1066 while( i )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1067 ret[--i] = array[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1068 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1069
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1070 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1071 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1072
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1073 inArray: function( elem, array ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1074 for ( var i = 0, length = array.length; i < length; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1075 // Use === because on IE, window == document
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1076 if ( array[ i ] === elem )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1077 return i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1078
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1079 return -1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1080 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1081
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1082 merge: function( first, second ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1083 // We have to loop this way because IE & Opera overwrite the length
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1084 // expando of getElementsByTagName
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1085 var i = 0, elem, pos = first.length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1086 // Also, we need to make sure that the correct elements are being returned
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1087 // (IE returns comment nodes in a '*' query)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1088 if ( !jQuery.support.getAll ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1089 while ( (elem = second[ i++ ]) != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1090 if ( elem.nodeType != 8 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1091 first[ pos++ ] = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1092
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1093 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1094 while ( (elem = second[ i++ ]) != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1095 first[ pos++ ] = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1096
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1097 return first;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1098 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1099
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1100 unique: function( array ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1101 var ret = [], done = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1102
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1103 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1104
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1105 for ( var i = 0, length = array.length; i < length; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1106 var id = jQuery.data( array[ i ] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1107
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1108 if ( !done[ id ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1109 done[ id ] = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1110 ret.push( array[ i ] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1111 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1112 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1113
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1114 } catch( e ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1115 ret = array;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1116 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1117
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1118 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1119 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1120
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1121 grep: function( elems, callback, inv ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1122 var ret = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1123
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1124 // Go through the array, only saving the items
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1125 // that pass the validator function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1126 for ( var i = 0, length = elems.length; i < length; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1127 if ( !inv != !callback( elems[ i ], i ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1128 ret.push( elems[ i ] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1129
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1130 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1131 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1132
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1133 map: function( elems, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1134 var ret = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1135
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1136 // Go through the array, translating each of the items to their
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1137 // new value (or values).
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1138 for ( var i = 0, length = elems.length; i < length; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1139 var value = callback( elems[ i ], i );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1140
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1141 if ( value != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1142 ret[ ret.length ] = value;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1143 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1144
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1145 return ret.concat.apply( [], ret );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1146 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1147 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1148
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1149 // Use of jQuery.browser is deprecated.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1150 // It's included for backwards compatibility and plugins,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1151 // although they should work to migrate away.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1152
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1153 var userAgent = navigator.userAgent.toLowerCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1154
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1155 // Figure out what browser is being used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1156 jQuery.browser = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1157 version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1158 safari: /webkit/.test( userAgent ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1159 opera: /opera/.test( userAgent ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1160 msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1161 mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1162 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1163
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1164 jQuery.each({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1165 parent: function(elem){return elem.parentNode;},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1166 parents: function(elem){return jQuery.dir(elem,"parentNode");},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1167 next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1168 prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1169 nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1170 prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1171 siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1172 children: function(elem){return jQuery.sibling(elem.firstChild);},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1173 contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1174 }, function(name, fn){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1175 jQuery.fn[ name ] = function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1176 var ret = jQuery.map( this, fn );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1177
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1178 if ( selector && typeof selector == "string" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1179 ret = jQuery.multiFilter( selector, ret );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1180
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1181 return this.pushStack( jQuery.unique( ret ), name, selector );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1182 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1183 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1184
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1185 jQuery.each({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1186 appendTo: "append",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1187 prependTo: "prepend",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1188 insertBefore: "before",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1189 insertAfter: "after",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1190 replaceAll: "replaceWith"
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1191 }, function(name, original){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1192 jQuery.fn[ name ] = function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1193 var args = arguments;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1194
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1195 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1196 for ( var i = 0, length = args.length; i < length; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1197 jQuery( args[ i ] )[ original ]( this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1198 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1199 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1200 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1201
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1202 jQuery.each({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1203 removeAttr: function( name ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1204 jQuery.attr( this, name, "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1205 if (this.nodeType == 1)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1206 this.removeAttribute( name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1207 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1208
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1209 addClass: function( classNames ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1210 jQuery.className.add( this, classNames );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1211 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1212
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1213 removeClass: function( classNames ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1214 jQuery.className.remove( this, classNames );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1215 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1216
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1217 toggleClass: function( classNames, state ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1218 if( typeof state !== "boolean" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1219 state = !jQuery.className.has( this, classNames );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1220 jQuery.className[ state ? "add" : "remove" ]( this, classNames );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1221 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1222
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1223 remove: function( selector ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1224 if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1225 // Prevent memory leaks
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1226 jQuery( "*", this ).add([this]).each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1227 jQuery.event.remove(this);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1228 jQuery.removeData(this);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1229 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1230 if (this.parentNode)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1231 this.parentNode.removeChild( this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1232 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1233 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1234
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1235 empty: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1236 // Remove element nodes and prevent memory leaks
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1237 jQuery( ">*", this ).remove();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1238
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1239 // Remove any remaining nodes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1240 while ( this.firstChild )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1241 this.removeChild( this.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1242 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1243 }, function(name, fn){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1244 jQuery.fn[ name ] = function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1245 return this.each( fn, arguments );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1246 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1247 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1248
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1249 // Helper function used by the dimensions and offset modules
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1250 function num(elem, prop) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1251 return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1252 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1253 var expando = "jQuery" + now(), uuid = 0, windowData = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1254
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1255 jQuery.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1256 cache: {},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1257
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1258 data: function( elem, name, data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1259 elem = elem == window ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1260 windowData :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1261 elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1262
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1263 var id = elem[ expando ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1264
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1265 // Compute a unique ID for the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1266 if ( !id )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1267 id = elem[ expando ] = ++uuid;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1268
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1269 // Only generate the data cache if we're
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1270 // trying to access or manipulate it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1271 if ( name && !jQuery.cache[ id ] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1272 jQuery.cache[ id ] = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1273
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1274 // Prevent overriding the named cache with undefined values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1275 if ( data !== undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1276 jQuery.cache[ id ][ name ] = data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1277
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1278 // Return the named cache data, or the ID for the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1279 return name ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1280 jQuery.cache[ id ][ name ] :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1281 id;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1282 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1283
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1284 removeData: function( elem, name ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1285 elem = elem == window ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1286 windowData :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1287 elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1288
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1289 var id = elem[ expando ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1290
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1291 // If we want to remove a specific section of the element's data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1292 if ( name ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1293 if ( jQuery.cache[ id ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1294 // Remove the section of cache data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1295 delete jQuery.cache[ id ][ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1296
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1297 // If we've removed all the data, remove the element's cache
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1298 name = "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1299
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1300 for ( name in jQuery.cache[ id ] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1301 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1302
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1303 if ( !name )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1304 jQuery.removeData( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1305 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1306
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1307 // Otherwise, we want to remove all of the element's data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1308 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1309 // Clean up the element expando
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1310 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1311 delete elem[ expando ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1312 } catch(e){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1313 // IE has trouble directly removing the expando
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1314 // but it's ok with using removeAttribute
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1315 if ( elem.removeAttribute )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1316 elem.removeAttribute( expando );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1317 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1318
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1319 // Completely remove the data cache
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1320 delete jQuery.cache[ id ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1321 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1322 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1323 queue: function( elem, type, data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1324 if ( elem ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1325
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1326 type = (type || "fx") + "queue";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1327
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1328 var q = jQuery.data( elem, type );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1329
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1330 if ( !q || jQuery.isArray(data) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1331 q = jQuery.data( elem, type, jQuery.makeArray(data) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1332 else if( data )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1333 q.push( data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1334
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1335 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1336 return q;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1337 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1338
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1339 dequeue: function( elem, type ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1340 var queue = jQuery.queue( elem, type ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1341 fn = queue.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1342
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1343 if( !type || type === "fx" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1344 fn = queue[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1345
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1346 if( fn !== undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1347 fn.call(elem);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1348 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1349 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1350
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1351 jQuery.fn.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1352 data: function( key, value ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1353 var parts = key.split(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1354 parts[1] = parts[1] ? "." + parts[1] : "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1355
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1356 if ( value === undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1357 var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1358
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1359 if ( data === undefined && this.length )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1360 data = jQuery.data( this[0], key );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1361
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1362 return data === undefined && parts[1] ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1363 this.data( parts[0] ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1364 data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1365 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1366 return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1367 jQuery.data( this, key, value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1368 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1369 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1370
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1371 removeData: function( key ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1372 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1373 jQuery.removeData( this, key );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1374 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1375 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1376 queue: function(type, data){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1377 if ( typeof type !== "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1378 data = type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1379 type = "fx";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1380 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1381
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1382 if ( data === undefined )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1383 return jQuery.queue( this[0], type );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1384
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1385 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1386 var queue = jQuery.queue( this, type, data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1387
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1388 if( type == "fx" && queue.length == 1 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1389 queue[0].call(this);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1390 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1391 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1392 dequeue: function(type){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1393 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1394 jQuery.dequeue( this, type );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1395 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1396 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1397 });/*!
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1398 * Sizzle CSS Selector Engine - v0.9.3
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1399 * Copyright 2009, The Dojo Foundation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1400 * Released under the MIT, BSD, and GPL Licenses.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1401 * More information: http://sizzlejs.com/
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1402 */
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1403 (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1404
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1405 var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1406 done = 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1407 toString = Object.prototype.toString;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1408
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1409 var Sizzle = function(selector, context, results, seed) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1410 results = results || [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1411 context = context || document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1412
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1413 if ( context.nodeType !== 1 && context.nodeType !== 9 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1414 return [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1415
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1416 if ( !selector || typeof selector !== "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1417 return results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1418 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1419
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1420 var parts = [], m, set, checkSet, check, mode, extra, prune = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1421
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1422 // Reset the position of the chunker regexp (start from head)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1423 chunker.lastIndex = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1424
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1425 while ( (m = chunker.exec(selector)) !== null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1426 parts.push( m[1] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1427
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1428 if ( m[2] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1429 extra = RegExp.rightContext;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1430 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1431 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1432 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1433
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1434 if ( parts.length > 1 && origPOS.exec( selector ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1435 if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1436 set = posProcess( parts[0] + parts[1], context );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1437 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1438 set = Expr.relative[ parts[0] ] ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1439 [ context ] :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1440 Sizzle( parts.shift(), context );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1441
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1442 while ( parts.length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1443 selector = parts.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1444
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1445 if ( Expr.relative[ selector ] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1446 selector += parts.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1447
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1448 set = posProcess( selector, set );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1449 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1450 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1451 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1452 var ret = seed ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1453 { expr: parts.pop(), set: makeArray(seed) } :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1454 Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1455 set = Sizzle.filter( ret.expr, ret.set );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1456
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1457 if ( parts.length > 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1458 checkSet = makeArray(set);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1459 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1460 prune = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1461 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1462
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1463 while ( parts.length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1464 var cur = parts.pop(), pop = cur;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1465
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1466 if ( !Expr.relative[ cur ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1467 cur = "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1468 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1469 pop = parts.pop();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1470 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1471
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1472 if ( pop == null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1473 pop = context;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1474 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1475
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1476 Expr.relative[ cur ]( checkSet, pop, isXML(context) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1477 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1478 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1479
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1480 if ( !checkSet ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1481 checkSet = set;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1482 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1483
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1484 if ( !checkSet ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1485 throw "Syntax error, unrecognized expression: " + (cur || selector);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1486 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1487
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1488 if ( toString.call(checkSet) === "[object Array]" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1489 if ( !prune ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1490 results.push.apply( results, checkSet );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1491 } else if ( context.nodeType === 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1492 for ( var i = 0; checkSet[i] != null; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1493 if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1494 results.push( set[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1495 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1496 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1497 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1498 for ( var i = 0; checkSet[i] != null; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1499 if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1500 results.push( set[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1501 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1502 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1503 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1504 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1505 makeArray( checkSet, results );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1506 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1507
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1508 if ( extra ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1509 Sizzle( extra, context, results, seed );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1510 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1511
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1512 return results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1513 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1514
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1515 Sizzle.matches = function(expr, set){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1516 return Sizzle(expr, null, null, set);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1517 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1518
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1519 Sizzle.find = function(expr, context, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1520 var set, match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1521
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1522 if ( !expr ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1523 return [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1524 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1525
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1526 for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1527 var type = Expr.order[i], match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1528
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1529 if ( (match = Expr.match[ type ].exec( expr )) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1530 var left = RegExp.leftContext;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1531
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1532 if ( left.substr( left.length - 1 ) !== "\\" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1533 match[1] = (match[1] || "").replace(/\\/g, "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1534 set = Expr.find[ type ]( match, context, isXML );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1535 if ( set != null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1536 expr = expr.replace( Expr.match[ type ], "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1537 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1538 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1539 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1540 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1541 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1542
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1543 if ( !set ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1544 set = context.getElementsByTagName("*");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1545 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1546
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1547 return {set: set, expr: expr};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1548 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1549
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1550 Sizzle.filter = function(expr, set, inplace, not){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1551 var old = expr, result = [], curLoop = set, match, anyFound;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1552
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1553 while ( expr && set.length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1554 for ( var type in Expr.filter ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1555 if ( (match = Expr.match[ type ].exec( expr )) != null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1556 var filter = Expr.filter[ type ], found, item;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1557 anyFound = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1558
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1559 if ( curLoop == result ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1560 result = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1561 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1562
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1563 if ( Expr.preFilter[ type ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1564 match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1565
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1566 if ( !match ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1567 anyFound = found = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1568 } else if ( match === true ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1569 continue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1570 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1571 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1572
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1573 if ( match ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1574 for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1575 if ( item ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1576 found = filter( item, match, i, curLoop );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1577 var pass = not ^ !!found;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1578
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1579 if ( inplace && found != null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1580 if ( pass ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1581 anyFound = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1582 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1583 curLoop[i] = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1584 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1585 } else if ( pass ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1586 result.push( item );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1587 anyFound = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1588 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1589 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1590 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1591 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1592
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1593 if ( found !== undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1594 if ( !inplace ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1595 curLoop = result;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1596 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1597
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1598 expr = expr.replace( Expr.match[ type ], "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1599
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1600 if ( !anyFound ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1601 return [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1602 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1603
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1604 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1605 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1606 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1607 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1608
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1609 expr = expr.replace(/\s*,\s*/, "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1610
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1611 // Improper expression
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1612 if ( expr == old ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1613 if ( anyFound == null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1614 throw "Syntax error, unrecognized expression: " + expr;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1615 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1616 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1617 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1618 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1619
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1620 old = expr;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1621 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1622
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1623 return curLoop;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1624 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1625
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1626 var Expr = Sizzle.selectors = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1627 order: [ "ID", "NAME", "TAG" ],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1628 match: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1629 ID: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1630 CLASS: /\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1631 NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1632 ATTR: /\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1633 TAG: /^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1634 CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1635 POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1636 PSEUDO: /:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1637 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1638 attrMap: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1639 "class": "className",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1640 "for": "htmlFor"
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1641 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1642 attrHandle: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1643 href: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1644 return elem.getAttribute("href");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1645 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1646 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1647 relative: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1648 "+": function(checkSet, part){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1649 for ( var i = 0, l = checkSet.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1650 var elem = checkSet[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1651 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1652 var cur = elem.previousSibling;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1653 while ( cur && cur.nodeType !== 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1654 cur = cur.previousSibling;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1655 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1656 checkSet[i] = typeof part === "string" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1657 cur || false :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1658 cur === part;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1659 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1660 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1661
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1662 if ( typeof part === "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1663 Sizzle.filter( part, checkSet, true );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1664 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1665 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1666 ">": function(checkSet, part, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1667 if ( typeof part === "string" && !/\W/.test(part) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1668 part = isXML ? part : part.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1669
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1670 for ( var i = 0, l = checkSet.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1671 var elem = checkSet[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1672 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1673 var parent = elem.parentNode;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1674 checkSet[i] = parent.nodeName === part ? parent : false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1675 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1676 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1677 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1678 for ( var i = 0, l = checkSet.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1679 var elem = checkSet[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1680 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1681 checkSet[i] = typeof part === "string" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1682 elem.parentNode :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1683 elem.parentNode === part;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1684 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1685 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1686
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1687 if ( typeof part === "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1688 Sizzle.filter( part, checkSet, true );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1689 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1690 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1691 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1692 "": function(checkSet, part, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1693 var doneName = "done" + (done++), checkFn = dirCheck;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1694
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1695 if ( !part.match(/\W/) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1696 var nodeCheck = part = isXML ? part : part.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1697 checkFn = dirNodeCheck;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1698 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1699
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1700 checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1701 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1702 "~": function(checkSet, part, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1703 var doneName = "done" + (done++), checkFn = dirCheck;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1704
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1705 if ( typeof part === "string" && !part.match(/\W/) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1706 var nodeCheck = part = isXML ? part : part.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1707 checkFn = dirNodeCheck;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1708 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1709
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1710 checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1711 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1712 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1713 find: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1714 ID: function(match, context, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1715 if ( typeof context.getElementById !== "undefined" && !isXML ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1716 var m = context.getElementById(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1717 return m ? [m] : [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1718 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1719 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1720 NAME: function(match, context, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1721 if ( typeof context.getElementsByName !== "undefined" && !isXML ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1722 return context.getElementsByName(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1723 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1724 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1725 TAG: function(match, context){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1726 return context.getElementsByTagName(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1727 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1728 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1729 preFilter: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1730 CLASS: function(match, curLoop, inplace, result, not){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1731 match = " " + match[1].replace(/\\/g, "") + " ";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1732
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1733 var elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1734 for ( var i = 0; (elem = curLoop[i]) != null; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1735 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1736 if ( not ^ (" " + elem.className + " ").indexOf(match) >= 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1737 if ( !inplace )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1738 result.push( elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1739 } else if ( inplace ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1740 curLoop[i] = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1741 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1742 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1743 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1744
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1745 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1746 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1747 ID: function(match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1748 return match[1].replace(/\\/g, "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1749 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1750 TAG: function(match, curLoop){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1751 for ( var i = 0; curLoop[i] === false; i++ ){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1752 return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1753 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1754 CHILD: function(match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1755 if ( match[1] == "nth" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1756 // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1757 var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1758 match[2] == "even" && "2n" || match[2] == "odd" && "2n+1" ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1759 !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1760
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1761 // calculate the numbers (first)n+(last) including if they are negative
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1762 match[2] = (test[1] + (test[2] || 1)) - 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1763 match[3] = test[3] - 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1764 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1765
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1766 // TODO: Move to normal caching system
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1767 match[0] = "done" + (done++);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1768
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1769 return match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1770 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1771 ATTR: function(match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1772 var name = match[1].replace(/\\/g, "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1773
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1774 if ( Expr.attrMap[name] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1775 match[1] = Expr.attrMap[name];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1776 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1777
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1778 if ( match[2] === "~=" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1779 match[4] = " " + match[4] + " ";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1780 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1781
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1782 return match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1783 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1784 PSEUDO: function(match, curLoop, inplace, result, not){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1785 if ( match[1] === "not" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1786 // If we're dealing with a complex expression, or a simple one
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1787 if ( match[3].match(chunker).length > 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1788 match[3] = Sizzle(match[3], null, null, curLoop);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1789 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1790 var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1791 if ( !inplace ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1792 result.push.apply( result, ret );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1793 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1794 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1795 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1796 } else if ( Expr.match.POS.test( match[0] ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1797 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1798 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1799
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1800 return match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1801 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1802 POS: function(match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1803 match.unshift( true );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1804 return match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1805 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1806 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1807 filters: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1808 enabled: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1809 return elem.disabled === false && elem.type !== "hidden";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1810 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1811 disabled: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1812 return elem.disabled === true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1813 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1814 checked: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1815 return elem.checked === true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1816 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1817 selected: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1818 // Accessing this property makes selected-by-default
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1819 // options in Safari work properly
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1820 elem.parentNode.selectedIndex;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1821 return elem.selected === true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1822 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1823 parent: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1824 return !!elem.firstChild;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1825 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1826 empty: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1827 return !elem.firstChild;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1828 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1829 has: function(elem, i, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1830 return !!Sizzle( match[3], elem ).length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1831 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1832 header: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1833 return /h\d/i.test( elem.nodeName );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1834 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1835 text: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1836 return "text" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1837 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1838 radio: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1839 return "radio" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1840 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1841 checkbox: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1842 return "checkbox" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1843 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1844 file: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1845 return "file" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1846 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1847 password: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1848 return "password" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1849 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1850 submit: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1851 return "submit" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1852 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1853 image: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1854 return "image" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1855 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1856 reset: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1857 return "reset" === elem.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1858 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1859 button: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1860 return "button" === elem.type || elem.nodeName.toUpperCase() === "BUTTON";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1861 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1862 input: function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1863 return /input|select|textarea|button/i.test(elem.nodeName);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1864 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1865 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1866 setFilters: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1867 first: function(elem, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1868 return i === 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1869 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1870 last: function(elem, i, match, array){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1871 return i === array.length - 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1872 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1873 even: function(elem, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1874 return i % 2 === 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1875 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1876 odd: function(elem, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1877 return i % 2 === 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1878 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1879 lt: function(elem, i, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1880 return i < match[3] - 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1881 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1882 gt: function(elem, i, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1883 return i > match[3] - 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1884 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1885 nth: function(elem, i, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1886 return match[3] - 0 == i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1887 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1888 eq: function(elem, i, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1889 return match[3] - 0 == i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1890 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1891 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1892 filter: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1893 CHILD: function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1894 var type = match[1], parent = elem.parentNode;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1895
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1896 var doneName = match[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1897
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1898 if ( parent && (!parent[ doneName ] || !elem.nodeIndex) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1899 var count = 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1900
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1901 for ( var node = parent.firstChild; node; node = node.nextSibling ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1902 if ( node.nodeType == 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1903 node.nodeIndex = count++;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1904 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1905 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1906
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1907 parent[ doneName ] = count - 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1908 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1909
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1910 if ( type == "first" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1911 return elem.nodeIndex == 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1912 } else if ( type == "last" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1913 return elem.nodeIndex == parent[ doneName ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1914 } else if ( type == "only" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1915 return parent[ doneName ] == 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1916 } else if ( type == "nth" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1917 var add = false, first = match[2], last = match[3];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1918
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1919 if ( first == 1 && last == 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1920 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1921 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1922
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1923 if ( first == 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1924 if ( elem.nodeIndex == last ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1925 add = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1926 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1927 } else if ( (elem.nodeIndex - last) % first == 0 && (elem.nodeIndex - last) / first >= 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1928 add = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1929 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1930
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1931 return add;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1932 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1933 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1934 PSEUDO: function(elem, match, i, array){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1935 var name = match[1], filter = Expr.filters[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1936
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1937 if ( filter ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1938 return filter( elem, i, match, array );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1939 } else if ( name === "contains" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1940 return (elem.textContent || elem.innerText || "").indexOf(match[3]) >= 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1941 } else if ( name === "not" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1942 var not = match[3];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1943
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1944 for ( var i = 0, l = not.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1945 if ( not[i] === elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1946 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1947 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1948 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1949
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1950 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1951 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1952 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1953 ID: function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1954 return elem.nodeType === 1 && elem.getAttribute("id") === match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1955 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1956 TAG: function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1957 return (match === "*" && elem.nodeType === 1) || elem.nodeName === match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1958 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1959 CLASS: function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1960 return match.test( elem.className );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1961 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1962 ATTR: function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1963 var result = Expr.attrHandle[ match[1] ] ? Expr.attrHandle[ match[1] ]( elem ) : elem[ match[1] ] || elem.getAttribute( match[1] ), value = result + "", type = match[2], check = match[4];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1964 return result == null ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1965 type === "!=" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1966 type === "=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1967 value === check :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1968 type === "*=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1969 value.indexOf(check) >= 0 :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1970 type === "~=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1971 (" " + value + " ").indexOf(check) >= 0 :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1972 !match[4] ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1973 result :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1974 type === "!=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1975 value != check :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1976 type === "^=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1977 value.indexOf(check) === 0 :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1978 type === "$=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1979 value.substr(value.length - check.length) === check :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1980 type === "|=" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1981 value === check || value.substr(0, check.length + 1) === check + "-" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1982 false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1983 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1984 POS: function(elem, match, i, array){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1985 var name = match[2], filter = Expr.setFilters[ name ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1986
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1987 if ( filter ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1988 return filter( elem, i, match, array );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1989 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1990 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1991 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1992 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1993
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1994 var origPOS = Expr.match.POS;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1995
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1996 for ( var type in Expr.match ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1997 Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1998 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1999
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2000 var makeArray = function(array, results) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2001 array = Array.prototype.slice.call( array );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2002
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2003 if ( results ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2004 results.push.apply( results, array );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2005 return results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2006 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2007
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2008 return array;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2009 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2010
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2011 // Perform a simple check to determine if the browser is capable of
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2012 // converting a NodeList to an array using builtin methods.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2013 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2014 Array.prototype.slice.call( document.documentElement.childNodes );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2015
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2016 // Provide a fallback method if it does not work
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2017 } catch(e){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2018 makeArray = function(array, results) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2019 var ret = results || [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2020
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2021 if ( toString.call(array) === "[object Array]" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2022 Array.prototype.push.apply( ret, array );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2023 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2024 if ( typeof array.length === "number" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2025 for ( var i = 0, l = array.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2026 ret.push( array[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2027 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2028 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2029 for ( var i = 0; array[i]; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2030 ret.push( array[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2031 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2032 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2033 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2034
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2035 return ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2036 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2037 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2038
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2039 // Check to see if the browser returns elements by name when
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2040 // querying by getElementById (and provide a workaround)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2041 (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2042 // We're going to inject a fake input element with a specified name
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2043 var form = document.createElement("form"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2044 id = "script" + (new Date).getTime();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2045 form.innerHTML = "<input name='" + id + "'/>";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2046
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2047 // Inject it into the root element, check its status, and remove it quickly
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2048 var root = document.documentElement;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2049 root.insertBefore( form, root.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2050
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2051 // The workaround has to do additional checks after a getElementById
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2052 // Which slows things down for other browsers (hence the branching)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2053 if ( !!document.getElementById( id ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2054 Expr.find.ID = function(match, context, isXML){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2055 if ( typeof context.getElementById !== "undefined" && !isXML ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2056 var m = context.getElementById(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2057 return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2058 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2059 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2060
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2061 Expr.filter.ID = function(elem, match){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2062 var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2063 return elem.nodeType === 1 && node && node.nodeValue === match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2064 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2065 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2066
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2067 root.removeChild( form );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2068 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2069
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2070 (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2071 // Check to see if the browser returns only elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2072 // when doing getElementsByTagName("*")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2073
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2074 // Create a fake element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2075 var div = document.createElement("div");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2076 div.appendChild( document.createComment("") );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2077
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2078 // Make sure no comments are found
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2079 if ( div.getElementsByTagName("*").length > 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2080 Expr.find.TAG = function(match, context){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2081 var results = context.getElementsByTagName(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2082
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2083 // Filter out possible comments
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2084 if ( match[1] === "*" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2085 var tmp = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2086
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2087 for ( var i = 0; results[i]; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2088 if ( results[i].nodeType === 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2089 tmp.push( results[i] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2090 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2091 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2092
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2093 results = tmp;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2094 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2095
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2096 return results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2097 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2098 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2099
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2100 // Check to see if an attribute returns normalized href attributes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2101 div.innerHTML = "<a href='#'></a>";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2102 if ( div.firstChild && div.firstChild.getAttribute("href") !== "#" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2103 Expr.attrHandle.href = function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2104 return elem.getAttribute("href", 2);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2105 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2106 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2107 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2108
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2109 if ( document.querySelectorAll ) (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2110 var oldSizzle = Sizzle, div = document.createElement("div");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2111 div.innerHTML = "<p class='TEST'></p>";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2112
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2113 // Safari can't handle uppercase or unicode characters when
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2114 // in quirks mode.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2115 if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2116 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2117 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2118
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2119 Sizzle = function(query, context, extra, seed){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2120 context = context || document;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2121
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2122 // Only use querySelectorAll on non-XML documents
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2123 // (ID selectors don't work in non-HTML documents)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2124 if ( !seed && context.nodeType === 9 && !isXML(context) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2125 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2126 return makeArray( context.querySelectorAll(query), extra );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2127 } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2128 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2129
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2130 return oldSizzle(query, context, extra, seed);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2131 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2132
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2133 Sizzle.find = oldSizzle.find;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2134 Sizzle.filter = oldSizzle.filter;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2135 Sizzle.selectors = oldSizzle.selectors;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2136 Sizzle.matches = oldSizzle.matches;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2137 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2138
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2139 if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2140 Expr.order.splice(1, 0, "CLASS");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2141 Expr.find.CLASS = function(match, context) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2142 return context.getElementsByClassName(match[1]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2143 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2144 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2145
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2146 function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2147 for ( var i = 0, l = checkSet.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2148 var elem = checkSet[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2149 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2150 elem = elem[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2151 var match = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2152
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2153 while ( elem && elem.nodeType ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2154 var done = elem[doneName];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2155 if ( done ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2156 match = checkSet[ done ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2157 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2158 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2159
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2160 if ( elem.nodeType === 1 && !isXML )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2161 elem[doneName] = i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2162
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2163 if ( elem.nodeName === cur ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2164 match = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2165 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2166 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2167
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2168 elem = elem[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2169 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2170
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2171 checkSet[i] = match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2172 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2173 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2174 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2175
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2176 function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2177 for ( var i = 0, l = checkSet.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2178 var elem = checkSet[i];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2179 if ( elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2180 elem = elem[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2181 var match = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2182
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2183 while ( elem && elem.nodeType ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2184 if ( elem[doneName] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2185 match = checkSet[ elem[doneName] ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2186 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2187 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2188
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2189 if ( elem.nodeType === 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2190 if ( !isXML )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2191 elem[doneName] = i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2192
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2193 if ( typeof cur !== "string" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2194 if ( elem === cur ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2195 match = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2196 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2197 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2198
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2199 } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2200 match = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2201 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2202 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2203 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2204
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2205 elem = elem[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2206 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2207
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2208 checkSet[i] = match;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2209 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2210 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2211 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2212
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2213 var contains = document.compareDocumentPosition ? function(a, b){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2214 return a.compareDocumentPosition(b) & 16;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2215 } : function(a, b){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2216 return a !== b && (a.contains ? a.contains(b) : true);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2217 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2218
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2219 var isXML = function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2220 return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2221 !!elem.ownerDocument && isXML( elem.ownerDocument );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2222 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2223
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2224 var posProcess = function(selector, context){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2225 var tmpSet = [], later = "", match,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2226 root = context.nodeType ? [context] : context;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2227
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2228 // Position selectors must be done after the filter
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2229 // And so must :not(positional) so we move all PSEUDOs to the end
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2230 while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2231 later += match[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2232 selector = selector.replace( Expr.match.PSEUDO, "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2233 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2234
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2235 selector = Expr.relative[selector] ? selector + "*" : selector;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2236
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2237 for ( var i = 0, l = root.length; i < l; i++ ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2238 Sizzle( selector, root[i], tmpSet );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2239 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2240
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2241 return Sizzle.filter( later, tmpSet );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2242 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2243
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2244 // EXPOSE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2245 jQuery.find = Sizzle;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2246 jQuery.filter = Sizzle.filter;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2247 jQuery.expr = Sizzle.selectors;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2248 jQuery.expr[":"] = jQuery.expr.filters;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2249
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2250 Sizzle.selectors.filters.hidden = function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2251 return "hidden" === elem.type ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2252 jQuery.css(elem, "display") === "none" ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2253 jQuery.css(elem, "visibility") === "hidden";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2254 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2255
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2256 Sizzle.selectors.filters.visible = function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2257 return "hidden" !== elem.type &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2258 jQuery.css(elem, "display") !== "none" &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2259 jQuery.css(elem, "visibility") !== "hidden";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2260 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2261
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2262 Sizzle.selectors.filters.animated = function(elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2263 return jQuery.grep(jQuery.timers, function(fn){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2264 return elem === fn.elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2265 }).length;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2266 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2267
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2268 jQuery.multiFilter = function( expr, elems, not ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2269 if ( not ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2270 expr = ":not(" + expr + ")";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2271 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2272
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2273 return Sizzle.matches(expr, elems);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2274 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2275
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2276 jQuery.dir = function( elem, dir ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2277 var matched = [], cur = elem[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2278 while ( cur && cur != document ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2279 if ( cur.nodeType == 1 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2280 matched.push( cur );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2281 cur = cur[dir];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2282 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2283 return matched;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2284 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2285
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2286 jQuery.nth = function(cur, result, dir, elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2287 result = result || 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2288 var num = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2289
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2290 for ( ; cur; cur = cur[dir] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2291 if ( cur.nodeType == 1 && ++num == result )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2292 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2293
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2294 return cur;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2295 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2296
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2297 jQuery.sibling = function(n, elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2298 var r = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2299
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2300 for ( ; n; n = n.nextSibling ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2301 if ( n.nodeType == 1 && n != elem )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2302 r.push( n );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2303 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2304
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2305 return r;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2306 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2307
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2308 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2309
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2310 window.Sizzle = Sizzle;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2311
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2312 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2313 /*
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2314 * A number of helper functions used for managing events.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2315 * Many of the ideas behind this code originated from
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2316 * Dean Edwards' addEvent library.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2317 */
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2318 jQuery.event = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2319
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2320 // Bind an event to an element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2321 // Original by Dean Edwards
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2322 add: function(elem, types, handler, data) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2323 if ( elem.nodeType == 3 || elem.nodeType == 8 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2324 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2325
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2326 // For whatever reason, IE has trouble passing the window object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2327 // around, causing it to be cloned in the process
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2328 if ( elem.setInterval && elem != window )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2329 elem = window;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2330
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2331 // Make sure that the function being executed has a unique ID
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2332 if ( !handler.guid )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2333 handler.guid = this.guid++;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2334
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2335 // if data is passed, bind to handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2336 if ( data !== undefined ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2337 // Create temporary function pointer to original handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2338 var fn = handler;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2339
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2340 // Create unique handler function, wrapped around original handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2341 handler = this.proxy( fn );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2342
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2343 // Store data in unique handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2344 handler.data = data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2345 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2346
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2347 // Init the element's event structure
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2348 var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2349 handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2350 // Handle the second event of a trigger and when
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2351 // an event is called after a page has unloaded
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2352 return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2353 jQuery.event.handle.apply(arguments.callee.elem, arguments) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2354 undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2355 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2356 // Add elem as a property of the handle function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2357 // This is to prevent a memory leak with non-native
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2358 // event in IE.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2359 handle.elem = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2360
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2361 // Handle multiple events separated by a space
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2362 // jQuery(...).bind("mouseover mouseout", fn);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2363 jQuery.each(types.split(/\s+/), function(index, type) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2364 // Namespaced event handlers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2365 var namespaces = type.split(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2366 type = namespaces.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2367 handler.type = namespaces.slice().sort().join(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2368
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2369 // Get the current list of functions bound to this event
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2370 var handlers = events[type];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2371
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2372 if ( jQuery.event.specialAll[type] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2373 jQuery.event.specialAll[type].setup.call(elem, data, namespaces);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2374
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2375 // Init the event handler queue
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2376 if (!handlers) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2377 handlers = events[type] = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2378
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2379 // Check for a special event handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2380 // Only use addEventListener/attachEvent if the special
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2381 // events handler returns false
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2382 if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem, data, namespaces) === false ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2383 // Bind the global event handler to the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2384 if (elem.addEventListener)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2385 elem.addEventListener(type, handle, false);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2386 else if (elem.attachEvent)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2387 elem.attachEvent("on" + type, handle);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2388 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2389 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2390
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2391 // Add the function to the element's handler list
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2392 handlers[handler.guid] = handler;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2393
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2394 // Keep track of which events have been used, for global triggering
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2395 jQuery.event.global[type] = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2396 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2397
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2398 // Nullify elem to prevent memory leaks in IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2399 elem = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2400 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2401
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2402 guid: 1,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2403 global: {},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2404
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2405 // Detach an event or set of events from an element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2406 remove: function(elem, types, handler) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2407 // don't do events on text and comment nodes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2408 if ( elem.nodeType == 3 || elem.nodeType == 8 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2409 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2410
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2411 var events = jQuery.data(elem, "events"), ret, index;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2412
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2413 if ( events ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2414 // Unbind all events for the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2415 if ( types === undefined || (typeof types === "string" && types.charAt(0) == ".") )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2416 for ( var type in events )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2417 this.remove( elem, type + (types || "") );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2418 else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2419 // types is actually an event object here
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2420 if ( types.type ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2421 handler = types.handler;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2422 types = types.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2423 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2424
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2425 // Handle multiple events seperated by a space
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2426 // jQuery(...).unbind("mouseover mouseout", fn);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2427 jQuery.each(types.split(/\s+/), function(index, type){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2428 // Namespaced event handlers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2429 var namespaces = type.split(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2430 type = namespaces.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2431 var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2432
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2433 if ( events[type] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2434 // remove the given handler for the given type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2435 if ( handler )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2436 delete events[type][handler.guid];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2437
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2438 // remove all handlers for the given type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2439 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2440 for ( var handle in events[type] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2441 // Handle the removal of namespaced events
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2442 if ( namespace.test(events[type][handle].type) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2443 delete events[type][handle];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2444
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2445 if ( jQuery.event.specialAll[type] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2446 jQuery.event.specialAll[type].teardown.call(elem, namespaces);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2447
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2448 // remove generic event handler if no more handlers exist
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2449 for ( ret in events[type] ) break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2450 if ( !ret ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2451 if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem, namespaces) === false ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2452 if (elem.removeEventListener)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2453 elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2454 else if (elem.detachEvent)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2455 elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2456 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2457 ret = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2458 delete events[type];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2459 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2460 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2461 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2462 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2463
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2464 // Remove the expando if it's no longer used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2465 for ( ret in events ) break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2466 if ( !ret ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2467 var handle = jQuery.data( elem, "handle" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2468 if ( handle ) handle.elem = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2469 jQuery.removeData( elem, "events" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2470 jQuery.removeData( elem, "handle" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2471 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2472 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2473 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2474
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2475 // bubbling is internal
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2476 trigger: function( event, data, elem, bubbling ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2477 // Event object or event type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2478 var type = event.type || event;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2479
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2480 if( !bubbling ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2481 event = typeof event === "object" ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2482 // jQuery.Event object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2483 event[expando] ? event :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2484 // Object literal
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2485 jQuery.extend( jQuery.Event(type), event ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2486 // Just the event type (string)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2487 jQuery.Event(type);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2488
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2489 if ( type.indexOf("!") >= 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2490 event.type = type = type.slice(0, -1);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2491 event.exclusive = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2492 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2493
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2494 // Handle a global trigger
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2495 if ( !elem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2496 // Don't bubble custom events when global (to avoid too much overhead)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2497 event.stopPropagation();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2498 // Only trigger if we've ever bound an event for it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2499 if ( this.global[type] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2500 jQuery.each( jQuery.cache, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2501 if ( this.events && this.events[type] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2502 jQuery.event.trigger( event, data, this.handle.elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2503 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2504 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2505
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2506 // Handle triggering a single element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2507
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2508 // don't do events on text and comment nodes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2509 if ( !elem || elem.nodeType == 3 || elem.nodeType == 8 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2510 return undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2511
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2512 // Clean up in case it is reused
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2513 event.result = undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2514 event.target = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2515
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2516 // Clone the incoming data, if any
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2517 data = jQuery.makeArray(data);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2518 data.unshift( event );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2519 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2520
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2521 event.currentTarget = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2522
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2523 // Trigger the event, it is assumed that "handle" is a function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2524 var handle = jQuery.data(elem, "handle");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2525 if ( handle )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2526 handle.apply( elem, data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2527
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2528 // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2529 if ( (!elem[type] || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2530 event.result = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2531
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2532 // Trigger the native events (except for clicks on links)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2533 if ( !bubbling && elem[type] && !event.isDefaultPrevented() && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2534 this.triggered = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2535 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2536 elem[ type ]();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2537 // prevent IE from throwing an error for some hidden elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2538 } catch (e) {}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2539 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2540
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2541 this.triggered = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2542
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2543 if ( !event.isPropagationStopped() ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2544 var parent = elem.parentNode || elem.ownerDocument;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2545 if ( parent )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2546 jQuery.event.trigger(event, data, parent, true);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2547 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2548 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2549
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2550 handle: function(event) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2551 // returned undefined or false
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2552 var all, handlers;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2553
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2554 event = arguments[0] = jQuery.event.fix( event || window.event );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2555
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2556 // Namespaced event handlers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2557 var namespaces = event.type.split(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2558 event.type = namespaces.shift();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2559
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2560 // Cache this now, all = true means, any handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2561 all = !namespaces.length && !event.exclusive;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2562
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2563 var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2564
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2565 handlers = ( jQuery.data(this, "events") || {} )[event.type];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2566
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2567 for ( var j in handlers ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2568 var handler = handlers[j];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2569
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2570 // Filter the functions by class
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2571 if ( all || namespace.test(handler.type) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2572 // Pass in a reference to the handler function itself
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2573 // So that we can later remove it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2574 event.handler = handler;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2575 event.data = handler.data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2576
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2577 var ret = handler.apply(this, arguments);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2578
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2579 if( ret !== undefined ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2580 event.result = ret;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2581 if ( ret === false ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2582 event.preventDefault();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2583 event.stopPropagation();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2584 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2585 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2586
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2587 if( event.isImmediatePropagationStopped() )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2588 break;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2589
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2590 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2591 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2592 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2593
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2594 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(" "),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2595
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2596 fix: function(event) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2597 if ( event[expando] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2598 return event;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2599
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2600 // store a copy of the original event object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2601 // and "clone" to set read-only properties
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2602 var originalEvent = event;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2603 event = jQuery.Event( originalEvent );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2604
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2605 for ( var i = this.props.length, prop; i; ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2606 prop = this.props[ --i ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2607 event[ prop ] = originalEvent[ prop ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2608 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2609
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2610 // Fix target property, if necessary
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2611 if ( !event.target )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2612 event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2613
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2614 // check if target is a textnode (safari)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2615 if ( event.target.nodeType == 3 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2616 event.target = event.target.parentNode;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2617
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2618 // Add relatedTarget, if necessary
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2619 if ( !event.relatedTarget && event.fromElement )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2620 event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2621
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2622 // Calculate pageX/Y if missing and clientX/Y available
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2623 if ( event.pageX == null && event.clientX != null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2624 var doc = document.documentElement, body = document.body;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2625 event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2626 event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2627 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2628
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2629 // Add which for key events
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2630 if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2631 event.which = event.charCode || event.keyCode;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2632
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2633 // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2634 if ( !event.metaKey && event.ctrlKey )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2635 event.metaKey = event.ctrlKey;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2636
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2637 // Add which for click: 1 == left; 2 == middle; 3 == right
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2638 // Note: button is not normalized, so don't use it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2639 if ( !event.which && event.button )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2640 event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2641
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2642 return event;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2643 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2644
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2645 proxy: function( fn, proxy ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2646 proxy = proxy || function(){ return fn.apply(this, arguments); };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2647 // Set the guid of unique handler to the same of original handler, so it can be removed
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2648 proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2649 // So proxy can be declared as an argument
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2650 return proxy;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2651 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2652
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2653 special: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2654 ready: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2655 // Make sure the ready event is setup
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2656 setup: bindReady,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2657 teardown: function() {}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2658 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2659 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2660
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2661 specialAll: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2662 live: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2663 setup: function( selector, namespaces ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2664 jQuery.event.add( this, namespaces[0], liveHandler );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2665 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2666 teardown: function( namespaces ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2667 if ( namespaces.length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2668 var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2669
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2670 jQuery.each( (jQuery.data(this, "events").live || {}), function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2671 if ( name.test(this.type) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2672 remove++;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2673 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2674
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2675 if ( remove < 1 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2676 jQuery.event.remove( this, namespaces[0], liveHandler );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2677 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2678 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2679 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2680 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2681 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2682
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2683 jQuery.Event = function( src ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2684 // Allow instantiation without the 'new' keyword
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2685 if( !this.preventDefault )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2686 return new jQuery.Event(src);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2687
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2688 // Event object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2689 if( src && src.type ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2690 this.originalEvent = src;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2691 this.type = src.type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2692 // Event type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2693 }else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2694 this.type = src;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2695
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2696 // timeStamp is buggy for some events on Firefox(#3843)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2697 // So we won't rely on the native value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2698 this.timeStamp = now();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2699
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2700 // Mark it as fixed
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2701 this[expando] = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2702 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2703
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2704 function returnFalse(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2705 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2706 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2707 function returnTrue(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2708 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2709 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2710
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2711 // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2712 // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2713 jQuery.Event.prototype = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2714 preventDefault: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2715 this.isDefaultPrevented = returnTrue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2716
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2717 var e = this.originalEvent;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2718 if( !e )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2719 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2720 // if preventDefault exists run it on the original event
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2721 if (e.preventDefault)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2722 e.preventDefault();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2723 // otherwise set the returnValue property of the original event to false (IE)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2724 e.returnValue = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2725 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2726 stopPropagation: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2727 this.isPropagationStopped = returnTrue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2728
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2729 var e = this.originalEvent;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2730 if( !e )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2731 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2732 // if stopPropagation exists run it on the original event
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2733 if (e.stopPropagation)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2734 e.stopPropagation();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2735 // otherwise set the cancelBubble property of the original event to true (IE)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2736 e.cancelBubble = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2737 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2738 stopImmediatePropagation:function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2739 this.isImmediatePropagationStopped = returnTrue;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2740 this.stopPropagation();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2741 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2742 isDefaultPrevented: returnFalse,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2743 isPropagationStopped: returnFalse,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2744 isImmediatePropagationStopped: returnFalse
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2745 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2746 // Checks if an event happened on an element within another element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2747 // Used in jQuery.event.special.mouseenter and mouseleave handlers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2748 var withinElement = function(event) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2749 // Check if mouse(over|out) are still within the same parent element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2750 var parent = event.relatedTarget;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2751 // Traverse up the tree
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2752 while ( parent && parent != this )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2753 try { parent = parent.parentNode; }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2754 catch(e) { parent = this; }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2755
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2756 if( parent != this ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2757 // set the correct event type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2758 event.type = event.data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2759 // handle event if we actually just moused on to a non sub-element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2760 jQuery.event.handle.apply( this, arguments );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2761 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2762 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2763
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2764 jQuery.each({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2765 mouseover: 'mouseenter',
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2766 mouseout: 'mouseleave'
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2767 }, function( orig, fix ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2768 jQuery.event.special[ fix ] = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2769 setup: function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2770 jQuery.event.add( this, orig, withinElement, fix );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2771 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2772 teardown: function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2773 jQuery.event.remove( this, orig, withinElement );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2774 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2775 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2776 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2777
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2778 jQuery.fn.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2779 bind: function( type, data, fn ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2780 return type == "unload" ? this.one(type, data, fn) : this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2781 jQuery.event.add( this, type, fn || data, fn && data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2782 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2783 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2784
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2785 one: function( type, data, fn ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2786 var one = jQuery.event.proxy( fn || data, function(event) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2787 jQuery(this).unbind(event, one);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2788 return (fn || data).apply( this, arguments );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2789 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2790 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2791 jQuery.event.add( this, type, one, fn && data);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2792 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2793 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2794
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2795 unbind: function( type, fn ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2796 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2797 jQuery.event.remove( this, type, fn );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2798 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2799 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2800
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2801 trigger: function( type, data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2802 return this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2803 jQuery.event.trigger( type, data, this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2804 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2805 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2806
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2807 triggerHandler: function( type, data ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2808 if( this[0] ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2809 var event = jQuery.Event(type);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2810 event.preventDefault();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2811 event.stopPropagation();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2812 jQuery.event.trigger( event, data, this[0] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2813 return event.result;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2814 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2815 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2816
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2817 toggle: function( fn ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2818 // Save reference to arguments for access in closure
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2819 var args = arguments, i = 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2820
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2821 // link all the functions, so any of them can unbind this click handler
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2822 while( i < args.length )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2823 jQuery.event.proxy( fn, args[i++] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2824
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2825 return this.click( jQuery.event.proxy( fn, function(event) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2826 // Figure out which function to execute
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2827 this.lastToggle = ( this.lastToggle || 0 ) % i;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2828
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2829 // Make sure that clicks stop
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2830 event.preventDefault();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2831
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2832 // and execute the function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2833 return args[ this.lastToggle++ ].apply( this, arguments ) || false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2834 }));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2835 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2836
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2837 hover: function(fnOver, fnOut) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2838 return this.mouseenter(fnOver).mouseleave(fnOut);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2839 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2840
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2841 ready: function(fn) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2842 // Attach the listeners
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2843 bindReady();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2844
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2845 // If the DOM is already ready
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2846 if ( jQuery.isReady )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2847 // Execute the function immediately
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2848 fn.call( document, jQuery );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2849
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2850 // Otherwise, remember the function for later
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2851 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2852 // Add the function to the wait list
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2853 jQuery.readyList.push( fn );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2854
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2855 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2856 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2857
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2858 live: function( type, fn ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2859 var proxy = jQuery.event.proxy( fn );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2860 proxy.guid += this.selector + type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2861
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2862 jQuery(document).bind( liveConvert(type, this.selector), this.selector, proxy );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2863
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2864 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2865 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2866
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2867 die: function( type, fn ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2868 jQuery(document).unbind( liveConvert(type, this.selector), fn ? { guid: fn.guid + this.selector + type } : null );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2869 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2870 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2871 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2872
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2873 function liveHandler( event ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2874 var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2875 stop = true,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2876 elems = [];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2877
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2878 jQuery.each(jQuery.data(this, "events").live || [], function(i, fn){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2879 if ( check.test(fn.type) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2880 var elem = jQuery(event.target).closest(fn.data)[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2881 if ( elem )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2882 elems.push({ elem: elem, fn: fn });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2883 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2884 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2885
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2886 jQuery.each(elems, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2887 if ( this.fn.call(this.elem, event, this.fn.data) === false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2888 stop = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2889 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2890
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2891 return stop;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2892 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2893
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2894 function liveConvert(type, selector){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2895 return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "|")].join(".");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2896 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2897
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2898 jQuery.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2899 isReady: false,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2900 readyList: [],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2901 // Handle when the DOM is ready
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2902 ready: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2903 // Make sure that the DOM is not already loaded
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2904 if ( !jQuery.isReady ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2905 // Remember that the DOM is ready
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2906 jQuery.isReady = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2907
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2908 // If there are functions bound, to execute
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2909 if ( jQuery.readyList ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2910 // Execute all of them
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2911 jQuery.each( jQuery.readyList, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2912 this.call( document, jQuery );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2913 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2914
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2915 // Reset the list of functions
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2916 jQuery.readyList = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2917 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2918
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2919 // Trigger any bound ready events
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2920 jQuery(document).triggerHandler("ready");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2921 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2922 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2923 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2924
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2925 var readyBound = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2926
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2927 function bindReady(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2928 if ( readyBound ) return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2929 readyBound = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2930
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2931 // Mozilla, Opera and webkit nightlies currently support this event
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2932 if ( document.addEventListener ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2933 // Use the handy event callback
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2934 document.addEventListener( "DOMContentLoaded", function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2935 document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2936 jQuery.ready();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2937 }, false );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2938
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2939 // If IE event model is used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2940 } else if ( document.attachEvent ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2941 // ensure firing before onload,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2942 // maybe late but safe also for iframes
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2943 document.attachEvent("onreadystatechange", function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2944 if ( document.readyState === "complete" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2945 document.detachEvent( "onreadystatechange", arguments.callee );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2946 jQuery.ready();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2947 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2948 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2949
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2950 // If IE and not an iframe
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2951 // continually check to see if the document is ready
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2952 if ( document.documentElement.doScroll && typeof window.frameElement === "undefined" ) (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2953 if ( jQuery.isReady ) return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2954
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2955 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2956 // If IE is used, use the trick by Diego Perini
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2957 // http://javascript.nwbox.com/IEContentLoaded/
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2958 document.documentElement.doScroll("left");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2959 } catch( error ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2960 setTimeout( arguments.callee, 0 );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2961 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2962 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2963
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2964 // and execute any waiting functions
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2965 jQuery.ready();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2966 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2967 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2968
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2969 // A fallback to window.onload, that will always work
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2970 jQuery.event.add( window, "load", jQuery.ready );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2971 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2972
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2973 jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2974 "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2975 "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2976
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2977 // Handle event binding
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2978 jQuery.fn[name] = function(fn){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2979 return fn ? this.bind(name, fn) : this.trigger(name);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2980 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2981 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2982
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2983 // Prevent memory leaks in IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2984 // And prevent errors on refresh with events like mouseover in other browsers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2985 // Window isn't included so as not to unbind existing unload events
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2986 jQuery( window ).bind( 'unload', function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2987 for ( var id in jQuery.cache )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2988 // Skip the window
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2989 if ( id != 1 && jQuery.cache[ id ].handle )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2990 jQuery.event.remove( jQuery.cache[ id ].handle.elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2991 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2992 (function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2993
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2994 jQuery.support = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2995
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2996 var root = document.documentElement,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2997 script = document.createElement("script"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2998 div = document.createElement("div"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2999 id = "script" + (new Date).getTime();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3000
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3001 div.style.display = "none";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3002 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>';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3003
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3004 var all = div.getElementsByTagName("*"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3005 a = div.getElementsByTagName("a")[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3006
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3007 // Can't get basic test support
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3008 if ( !all || !all.length || !a ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3009 return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3010 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3011
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3012 jQuery.support = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3013 // IE strips leading whitespace when .innerHTML is used
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3014 leadingWhitespace: div.firstChild.nodeType == 3,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3015
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3016 // Make sure that tbody elements aren't automatically inserted
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3017 // IE will insert them into empty tables
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3018 tbody: !div.getElementsByTagName("tbody").length,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3019
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3020 // Make sure that you can get all elements in an <object> element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3021 // IE 7 always returns no results
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3022 objectAll: !!div.getElementsByTagName("object")[0]
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3023 .getElementsByTagName("*").length,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3024
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3025 // Make sure that link elements get serialized correctly by innerHTML
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3026 // This requires a wrapper element in IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3027 htmlSerialize: !!div.getElementsByTagName("link").length,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3028
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3029 // Get the style information from getAttribute
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3030 // (IE uses .cssText insted)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3031 style: /red/.test( a.getAttribute("style") ),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3032
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3033 // Make sure that URLs aren't manipulated
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3034 // (IE normalizes it by default)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3035 hrefNormalized: a.getAttribute("href") === "/a",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3036
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3037 // Make sure that element opacity exists
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3038 // (IE uses filter instead)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3039 opacity: a.style.opacity === "0.5",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3040
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3041 // Verify style float existence
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3042 // (IE uses styleFloat instead of cssFloat)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3043 cssFloat: !!a.style.cssFloat,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3044
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3045 // Will be defined later
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3046 scriptEval: false,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3047 noCloneEvent: true,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3048 boxModel: null
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3049 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3050
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3051 script.type = "text/javascript";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3052 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3053 script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3054 } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3055
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3056 root.insertBefore( script, root.firstChild );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3057
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3058 // Make sure that the execution of code works by injecting a script
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3059 // tag with appendChild/createTextNode
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3060 // (IE doesn't support this, fails, and uses .text instead)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3061 if ( window[ id ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3062 jQuery.support.scriptEval = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3063 delete window[ id ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3064 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3065
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3066 root.removeChild( script );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3067
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3068 if ( div.attachEvent && div.fireEvent ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3069 div.attachEvent("onclick", function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3070 // Cloning a node shouldn't copy over any
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3071 // bound event handlers (IE does this)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3072 jQuery.support.noCloneEvent = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3073 div.detachEvent("onclick", arguments.callee);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3074 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3075 div.cloneNode(true).fireEvent("onclick");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3076 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3077
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3078 // Figure out if the W3C box model works as expected
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3079 // document.body must exist before we can do this
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3080 jQuery(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3081 var div = document.createElement("div");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3082 div.style.width = "1px";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3083 div.style.paddingLeft = "1px";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3084
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3085 document.body.appendChild( div );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3086 jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3087 document.body.removeChild( div );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3088 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3089 })();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3090
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3091 var styleFloat = jQuery.support.cssFloat ? "cssFloat" : "styleFloat";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3092
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3093 jQuery.props = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3094 "for": "htmlFor",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3095 "class": "className",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3096 "float": styleFloat,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3097 cssFloat: styleFloat,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3098 styleFloat: styleFloat,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3099 readonly: "readOnly",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3100 maxlength: "maxLength",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3101 cellspacing: "cellSpacing",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3102 rowspan: "rowSpan",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3103 tabindex: "tabIndex"
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3104 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3105 jQuery.fn.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3106 // Keep a copy of the old load
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3107 _load: jQuery.fn.load,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3108
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3109 load: function( url, params, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3110 if ( typeof url !== "string" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3111 return this._load( url );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3112
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3113 var off = url.indexOf(" ");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3114 if ( off >= 0 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3115 var selector = url.slice(off, url.length);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3116 url = url.slice(0, off);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3117 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3118
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3119 // Default to a GET request
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3120 var type = "GET";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3121
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3122 // If the second parameter was provided
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3123 if ( params )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3124 // If it's a function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3125 if ( jQuery.isFunction( params ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3126 // We assume that it's the callback
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3127 callback = params;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3128 params = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3129
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3130 // Otherwise, build a param string
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3131 } else if( typeof params === "object" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3132 params = jQuery.param( params );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3133 type = "POST";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3134 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3135
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3136 var self = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3137
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3138 // Request the remote document
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3139 jQuery.ajax({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3140 url: url,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3141 type: type,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3142 dataType: "html",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3143 data: params,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3144 complete: function(res, status){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3145 // If successful, inject the HTML into all the matched elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3146 if ( status == "success" || status == "notmodified" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3147 // See if a selector was specified
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3148 self.html( selector ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3149 // Create a dummy div to hold the results
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3150 jQuery("<div/>")
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3151 // inject the contents of the document in, removing the scripts
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3152 // to avoid any 'Permission Denied' errors in IE
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3153 .append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3154
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3155 // Locate the specified elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3156 .find(selector) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3157
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3158 // If not, just inject the full result
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3159 res.responseText );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3160
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3161 if( callback )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3162 self.each( callback, [res.responseText, status, res] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3163 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3164 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3165 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3166 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3167
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3168 serialize: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3169 return jQuery.param(this.serializeArray());
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3170 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3171 serializeArray: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3172 return this.map(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3173 return this.elements ? jQuery.makeArray(this.elements) : this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3174 })
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3175 .filter(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3176 return this.name && !this.disabled &&
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3177 (this.checked || /select|textarea/i.test(this.nodeName) ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3178 /text|hidden|password/i.test(this.type));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3179 })
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3180 .map(function(i, elem){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3181 var val = jQuery(this).val();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3182 return val == null ? null :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3183 jQuery.isArray(val) ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3184 jQuery.map( val, function(val, i){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3185 return {name: elem.name, value: val};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3186 }) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3187 {name: elem.name, value: val};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3188 }).get();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3189 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3190 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3191
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3192 // Attach a bunch of functions for handling common AJAX events
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3193 jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3194 jQuery.fn[o] = function(f){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3195 return this.bind(o, f);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3196 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3197 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3198
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3199 var jsc = now();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3200
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3201 jQuery.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3202
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3203 get: function( url, data, callback, type ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3204 // shift arguments if data argument was ommited
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3205 if ( jQuery.isFunction( data ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3206 callback = data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3207 data = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3208 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3209
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3210 return jQuery.ajax({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3211 type: "GET",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3212 url: url,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3213 data: data,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3214 success: callback,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3215 dataType: type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3216 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3217 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3218
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3219 getScript: function( url, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3220 return jQuery.get(url, null, callback, "script");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3221 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3222
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3223 getJSON: function( url, data, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3224 return jQuery.get(url, data, callback, "json");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3225 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3226
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3227 post: function( url, data, callback, type ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3228 if ( jQuery.isFunction( data ) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3229 callback = data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3230 data = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3231 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3232
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3233 return jQuery.ajax({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3234 type: "POST",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3235 url: url,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3236 data: data,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3237 success: callback,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3238 dataType: type
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3239 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3240 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3241
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3242 ajaxSetup: function( settings ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3243 jQuery.extend( jQuery.ajaxSettings, settings );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3244 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3245
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3246 ajaxSettings: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3247 url: location.href,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3248 global: true,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3249 type: "GET",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3250 contentType: "application/x-www-form-urlencoded",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3251 processData: true,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3252 async: true,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3253 /*
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3254 timeout: 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3255 data: null,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3256 username: null,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3257 password: null,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3258 */
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3259 // Create the request object; Microsoft failed to properly
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3260 // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3261 // This function can be overriden by calling jQuery.ajaxSetup
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3262 xhr:function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3263 return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3264 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3265 accepts: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3266 xml: "application/xml, text/xml",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3267 html: "text/html",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3268 script: "text/javascript, application/javascript",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3269 json: "application/json, text/javascript",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3270 text: "text/plain",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3271 _default: "*/*"
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3272 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3273 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3274
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3275 // Last-Modified header cache for next request
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3276 lastModified: {},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3277
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3278 ajax: function( s ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3279 // Extend the settings, but re-extend 's' so that it can be
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3280 // checked again later (in the test suite, specifically)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3281 s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3282
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3283 var jsonp, jsre = /=\?(&|$)/g, status, data,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3284 type = s.type.toUpperCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3285
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3286 // convert data if not already a string
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3287 if ( s.data && s.processData && typeof s.data !== "string" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3288 s.data = jQuery.param(s.data);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3289
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3290 // Handle JSONP Parameter Callbacks
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3291 if ( s.dataType == "jsonp" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3292 if ( type == "GET" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3293 if ( !s.url.match(jsre) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3294 s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3295 } else if ( !s.data || !s.data.match(jsre) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3296 s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3297 s.dataType = "json";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3298 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3299
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3300 // Build temporary JSONP function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3301 if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3302 jsonp = "jsonp" + jsc++;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3303
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3304 // Replace the =? sequence both in the query string and the data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3305 if ( s.data )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3306 s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3307 s.url = s.url.replace(jsre, "=" + jsonp + "$1");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3308
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3309 // We need to make sure
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3310 // that a JSONP style response is executed properly
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3311 s.dataType = "script";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3312
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3313 // Handle JSONP-style loading
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3314 window[ jsonp ] = function(tmp){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3315 data = tmp;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3316 success();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3317 complete();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3318 // Garbage collect
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3319 window[ jsonp ] = undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3320 try{ delete window[ jsonp ]; } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3321 if ( head )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3322 head.removeChild( script );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3323 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3324 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3325
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3326 if ( s.dataType == "script" && s.cache == null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3327 s.cache = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3328
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3329 if ( s.cache === false && type == "GET" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3330 var ts = now();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3331 // try replacing _= if it is there
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3332 var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3333 // if nothing was replaced, add timestamp to the end
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3334 s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3335 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3336
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3337 // If data is available, append data to url for get requests
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3338 if ( s.data && type == "GET" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3339 s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3340
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3341 // IE likes to send both get and post data, prevent this
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3342 s.data = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3343 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3344
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3345 // Watch for a new set of requests
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3346 if ( s.global && ! jQuery.active++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3347 jQuery.event.trigger( "ajaxStart" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3348
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3349 // Matches an absolute URL, and saves the domain
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3350 var parts = /^(\w+:)?\/\/([^\/?#]+)/.exec( s.url );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3351
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3352 // If we're requesting a remote document
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3353 // and trying to load JSON or Script with a GET
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3354 if ( s.dataType == "script" && type == "GET" && parts
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3355 && ( parts[1] && parts[1] != location.protocol || parts[2] != location.host )){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3356
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3357 var head = document.getElementsByTagName("head")[0];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3358 var script = document.createElement("script");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3359 script.src = s.url;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3360 if (s.scriptCharset)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3361 script.charset = s.scriptCharset;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3362
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3363 // Handle Script loading
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3364 if ( !jsonp ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3365 var done = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3366
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3367 // Attach handlers for all browsers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3368 script.onload = script.onreadystatechange = function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3369 if ( !done && (!this.readyState ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3370 this.readyState == "loaded" || this.readyState == "complete") ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3371 done = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3372 success();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3373 complete();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3374 head.removeChild( script );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3375 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3376 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3377 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3378
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3379 head.appendChild(script);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3380
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3381 // We handle everything using the script element injection
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3382 return undefined;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3383 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3384
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3385 var requestDone = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3386
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3387 // Create the request object
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3388 var xhr = s.xhr();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3389
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3390 // Open the socket
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3391 // Passing null username, generates a login popup on Opera (#2865)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3392 if( s.username )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3393 xhr.open(type, s.url, s.async, s.username, s.password);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3394 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3395 xhr.open(type, s.url, s.async);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3396
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3397 // Need an extra try/catch for cross domain requests in Firefox 3
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3398 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3399 // Set the correct header, if data is being sent
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3400 if ( s.data )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3401 xhr.setRequestHeader("Content-Type", s.contentType);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3402
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3403 // Set the If-Modified-Since header, if ifModified mode.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3404 if ( s.ifModified )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3405 xhr.setRequestHeader("If-Modified-Since",
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3406 jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3407
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3408 // Set header so the called script knows that it's an XMLHttpRequest
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3409 xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3410
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3411 // Set the Accepts header for the server, depending on the dataType
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3412 xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3413 s.accepts[ s.dataType ] + ", */*" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3414 s.accepts._default );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3415 } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3416
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3417 // Allow custom headers/mimetypes and early abort
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3418 if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3419 // Handle the global AJAX counter
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3420 if ( s.global && ! --jQuery.active )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3421 jQuery.event.trigger( "ajaxStop" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3422 // close opended socket
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3423 xhr.abort();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3424 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3425 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3426
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3427 if ( s.global )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3428 jQuery.event.trigger("ajaxSend", [xhr, s]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3429
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3430 // Wait for a response to come back
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3431 var onreadystatechange = function(isTimeout){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3432 // The request was aborted, clear the interval and decrement jQuery.active
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3433 if (xhr.readyState == 0) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3434 if (ival) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3435 // clear poll interval
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3436 clearInterval(ival);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3437 ival = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3438 // Handle the global AJAX counter
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3439 if ( s.global && ! --jQuery.active )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3440 jQuery.event.trigger( "ajaxStop" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3441 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3442 // The transfer is complete and the data is available, or the request timed out
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3443 } else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3444 requestDone = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3445
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3446 // clear poll interval
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3447 if (ival) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3448 clearInterval(ival);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3449 ival = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3450 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3451
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3452 status = isTimeout == "timeout" ? "timeout" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3453 !jQuery.httpSuccess( xhr ) ? "error" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3454 s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3455 "success";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3456
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3457 if ( status == "success" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3458 // Watch for, and catch, XML document parse errors
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3459 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3460 // process the data (runs the xml through httpData regardless of callback)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3461 data = jQuery.httpData( xhr, s.dataType, s );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3462 } catch(e) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3463 status = "parsererror";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3464 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3465 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3466
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3467 // Make sure that the request was successful or notmodified
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3468 if ( status == "success" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3469 // Cache Last-Modified header, if ifModified mode.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3470 var modRes;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3471 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3472 modRes = xhr.getResponseHeader("Last-Modified");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3473 } catch(e) {} // swallow exception thrown by FF if header is not available
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3474
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3475 if ( s.ifModified && modRes )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3476 jQuery.lastModified[s.url] = modRes;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3477
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3478 // JSONP handles its own success callback
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3479 if ( !jsonp )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3480 success();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3481 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3482 jQuery.handleError(s, xhr, status);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3483
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3484 // Fire the complete handlers
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3485 complete();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3486
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3487 if ( isTimeout )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3488 xhr.abort();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3489
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3490 // Stop memory leaks
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3491 if ( s.async )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3492 xhr = null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3493 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3494 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3495
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3496 if ( s.async ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3497 // don't attach the handler to the request, just poll it instead
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3498 var ival = setInterval(onreadystatechange, 13);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3499
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3500 // Timeout checker
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3501 if ( s.timeout > 0 )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3502 setTimeout(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3503 // Check to see if the request is still happening
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3504 if ( xhr && !requestDone )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3505 onreadystatechange( "timeout" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3506 }, s.timeout);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3507 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3508
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3509 // Send the data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3510 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3511 xhr.send(s.data);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3512 } catch(e) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3513 jQuery.handleError(s, xhr, null, e);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3514 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3515
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3516 // firefox 1.5 doesn't fire statechange for sync requests
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3517 if ( !s.async )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3518 onreadystatechange();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3519
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3520 function success(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3521 // If a local callback was specified, fire it and pass it the data
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3522 if ( s.success )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3523 s.success( data, status );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3524
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3525 // Fire the global callback
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3526 if ( s.global )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3527 jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3528 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3529
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3530 function complete(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3531 // Process result
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3532 if ( s.complete )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3533 s.complete(xhr, status);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3534
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3535 // The request was completed
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3536 if ( s.global )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3537 jQuery.event.trigger( "ajaxComplete", [xhr, s] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3538
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3539 // Handle the global AJAX counter
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3540 if ( s.global && ! --jQuery.active )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3541 jQuery.event.trigger( "ajaxStop" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3542 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3543
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3544 // return XMLHttpRequest to allow aborting the request etc.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3545 return xhr;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3546 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3547
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3548 handleError: function( s, xhr, status, e ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3549 // If a local callback was specified, fire it
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3550 if ( s.error ) s.error( xhr, status, e );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3551
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3552 // Fire the global callback
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3553 if ( s.global )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3554 jQuery.event.trigger( "ajaxError", [xhr, s, e] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3555 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3556
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3557 // Counter for holding the number of active queries
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3558 active: 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3559
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3560 // Determines if an XMLHttpRequest was successful or not
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3561 httpSuccess: function( xhr ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3562 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3563 // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3564 return !xhr.status && location.protocol == "file:" ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3565 ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3566 } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3567 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3568 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3569
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3570 // Determines if an XMLHttpRequest returns NotModified
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3571 httpNotModified: function( xhr, url ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3572 try {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3573 var xhrRes = xhr.getResponseHeader("Last-Modified");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3574
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3575 // Firefox always returns 200. check Last-Modified date
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3576 return xhr.status == 304 || xhrRes == jQuery.lastModified[url];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3577 } catch(e){}
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3578 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3579 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3580
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3581 httpData: function( xhr, type, s ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3582 var ct = xhr.getResponseHeader("content-type"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3583 xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3584 data = xml ? xhr.responseXML : xhr.responseText;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3585
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3586 if ( xml && data.documentElement.tagName == "parsererror" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3587 throw "parsererror";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3588
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3589 // Allow a pre-filtering function to sanitize the response
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3590 // s != null is checked to keep backwards compatibility
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3591 if( s && s.dataFilter )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3592 data = s.dataFilter( data, type );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3593
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3594 // The filter can actually parse the response
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3595 if( typeof data === "string" ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3596
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3597 // If the type is "script", eval it in global context
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3598 if ( type == "script" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3599 jQuery.globalEval( data );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3600
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3601 // Get the JavaScript object, if JSON is used.
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3602 if ( type == "json" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3603 data = window["eval"]("(" + data + ")");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3604 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3605
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3606 return data;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3607 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3608
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3609 // Serialize an array of form elements or a set of
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3610 // key/values into a query string
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3611 param: function( a ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3612 var s = [ ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3613
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3614 function add( key, value ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3615 s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3616 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3617
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3618 // If an array was passed in, assume that it is an array
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3619 // of form elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3620 if ( jQuery.isArray(a) || a.jquery )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3621 // Serialize the form elements
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3622 jQuery.each( a, function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3623 add( this.name, this.value );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3624 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3625
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3626 // Otherwise, assume that it's an object of key/value pairs
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3627 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3628 // Serialize the key/values
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3629 for ( var j in a )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3630 // If the value is an array then the key names need to be repeated
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3631 if ( jQuery.isArray(a[j]) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3632 jQuery.each( a[j], function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3633 add( j, this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3634 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3635 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3636 add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3637
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3638 // Return the resulting serialization
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3639 return s.join("&").replace(/%20/g, "+");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3640 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3641
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3642 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3643 var elemdisplay = {},
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3644 timerId,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3645 fxAttrs = [
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3646 // height animations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3647 [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3648 // width animations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3649 [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3650 // opacity animations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3651 [ "opacity" ]
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3652 ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3653
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3654 function genFx( type, num ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3655 var obj = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3656 jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3657 obj[ this ] = type;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3658 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3659 return obj;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3660 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3661
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3662 jQuery.fn.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3663 show: function(speed,callback){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3664 if ( speed ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3665 return this.animate( genFx("show", 3), speed, callback);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3666 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3667 for ( var i = 0, l = this.length; i < l; i++ ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3668 var old = jQuery.data(this[i], "olddisplay");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3669
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3670 this[i].style.display = old || "";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3671
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3672 if ( jQuery.css(this[i], "display") === "none" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3673 var tagName = this[i].tagName, display;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3674
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3675 if ( elemdisplay[ tagName ] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3676 display = elemdisplay[ tagName ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3677 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3678 var elem = jQuery("<" + tagName + " />").appendTo("body");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3679
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3680 display = elem.css("display");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3681 if ( display === "none" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3682 display = "block";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3683
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3684 elem.remove();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3685
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3686 elemdisplay[ tagName ] = display;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3687 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3688
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3689 this[i].style.display = jQuery.data(this[i], "olddisplay", display);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3690 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3691 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3692
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3693 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3694 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3695 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3696
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3697 hide: function(speed,callback){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3698 if ( speed ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3699 return this.animate( genFx("hide", 3), speed, callback);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3700 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3701 for ( var i = 0, l = this.length; i < l; i++ ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3702 var old = jQuery.data(this[i], "olddisplay");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3703 if ( !old && old !== "none" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3704 jQuery.data(this[i], "olddisplay", jQuery.css(this[i], "display"));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3705 this[i].style.display = "none";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3706 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3707 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3708 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3709 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3710
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3711 // Save the old toggle function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3712 _toggle: jQuery.fn.toggle,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3713
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3714 toggle: function( fn, fn2 ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3715 var bool = typeof fn === "boolean";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3716
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3717 return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3718 this._toggle.apply( this, arguments ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3719 fn == null || bool ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3720 this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3721 var state = bool ? fn : jQuery(this).is(":hidden");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3722 jQuery(this)[ state ? "show" : "hide" ]();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3723 }) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3724 this.animate(genFx("toggle", 3), fn, fn2);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3725 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3726
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3727 fadeTo: function(speed,to,callback){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3728 return this.animate({opacity: to}, speed, callback);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3729 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3730
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3731 animate: function( prop, speed, easing, callback ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3732 var optall = jQuery.speed(speed, easing, callback);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3733
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3734 return this[ optall.queue === false ? "each" : "queue" ](function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3735
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3736 var opt = jQuery.extend({}, optall), p,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3737 hidden = this.nodeType == 1 && jQuery(this).is(":hidden"),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3738 self = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3739
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3740 for ( p in prop ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3741 if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3742 return opt.complete.call(this);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3743
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3744 if ( ( p == "height" || p == "width" ) && this.style ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3745 // Store display property
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3746 opt.display = jQuery.css(this, "display");
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3747
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3748 // Make sure that nothing sneaks out
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3749 opt.overflow = this.style.overflow;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3750 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3751 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3752
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3753 if ( opt.overflow != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3754 this.style.overflow = "hidden";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3755
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3756 opt.curAnim = jQuery.extend({}, prop);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3757
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3758 jQuery.each( prop, function(name, val){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3759 var e = new jQuery.fx( self, opt, name );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3760
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3761 if ( /toggle|show|hide/.test(val) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3762 e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3763 else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3764 var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3765 start = e.cur(true) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3766
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3767 if ( parts ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3768 var end = parseFloat(parts[2]),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3769 unit = parts[3] || "px";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3770
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3771 // We need to compute starting value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3772 if ( unit != "px" ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3773 self.style[ name ] = (end || 1) + unit;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3774 start = ((end || 1) / e.cur(true)) * start;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3775 self.style[ name ] = start + unit;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3776 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3777
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3778 // If a +=/-= token was provided, we're doing a relative animation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3779 if ( parts[1] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3780 end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3781
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3782 e.custom( start, end, unit );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3783 } else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3784 e.custom( start, val, "" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3785 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3786 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3787
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3788 // For JS strict compliance
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3789 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3790 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3791 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3792
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3793 stop: function(clearQueue, gotoEnd){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3794 var timers = jQuery.timers;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3795
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3796 if (clearQueue)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3797 this.queue([]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3798
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3799 this.each(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3800 // go in reverse order so anything added to the queue during the loop is ignored
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3801 for ( var i = timers.length - 1; i >= 0; i-- )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3802 if ( timers[i].elem == this ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3803 if (gotoEnd)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3804 // force the next step to be the last
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3805 timers[i](true);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3806 timers.splice(i, 1);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3807 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3808 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3809
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3810 // start the next in the queue if the last step wasn't forced
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3811 if (!gotoEnd)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3812 this.dequeue();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3813
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3814 return this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3815 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3816
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3817 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3818
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3819 // Generate shortcuts for custom animations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3820 jQuery.each({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3821 slideDown: genFx("show", 1),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3822 slideUp: genFx("hide", 1),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3823 slideToggle: genFx("toggle", 1),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3824 fadeIn: { opacity: "show" },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3825 fadeOut: { opacity: "hide" }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3826 }, function( name, props ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3827 jQuery.fn[ name ] = function( speed, callback ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3828 return this.animate( props, speed, callback );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3829 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3830 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3831
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3832 jQuery.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3833
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3834 speed: function(speed, easing, fn) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3835 var opt = typeof speed === "object" ? speed : {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3836 complete: fn || !fn && easing ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3837 jQuery.isFunction( speed ) && speed,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3838 duration: speed,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3839 easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3840 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3841
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3842 opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3843 jQuery.fx.speeds[opt.duration] || jQuery.fx.speeds._default;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3844
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3845 // Queueing
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3846 opt.old = opt.complete;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3847 opt.complete = function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3848 if ( opt.queue !== false )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3849 jQuery(this).dequeue();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3850 if ( jQuery.isFunction( opt.old ) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3851 opt.old.call( this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3852 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3853
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3854 return opt;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3855 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3856
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3857 easing: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3858 linear: function( p, n, firstNum, diff ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3859 return firstNum + diff * p;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3860 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3861 swing: function( p, n, firstNum, diff ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3862 return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3863 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3864 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3865
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3866 timers: [],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3867
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3868 fx: function( elem, options, prop ){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3869 this.options = options;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3870 this.elem = elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3871 this.prop = prop;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3872
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3873 if ( !options.orig )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3874 options.orig = {};
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3875 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3876
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3877 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3878
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3879 jQuery.fx.prototype = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3880
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3881 // Simple function for setting a style value
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3882 update: function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3883 if ( this.options.step )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3884 this.options.step.call( this.elem, this.now, this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3885
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3886 (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3887
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3888 // Set display property to block for height/width animations
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3889 if ( ( this.prop == "height" || this.prop == "width" ) && this.elem.style )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3890 this.elem.style.display = "block";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3891 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3892
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3893 // Get the current size
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3894 cur: function(force){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3895 if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3896 return this.elem[ this.prop ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3897
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3898 var r = parseFloat(jQuery.css(this.elem, this.prop, force));
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3899 return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3900 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3901
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3902 // Start an animation from one number to another
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3903 custom: function(from, to, unit){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3904 this.startTime = now();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3905 this.start = from;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3906 this.end = to;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3907 this.unit = unit || this.unit || "px";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3908 this.now = this.start;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3909 this.pos = this.state = 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3910
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3911 var self = this;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3912 function t(gotoEnd){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3913 return self.step(gotoEnd);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3914 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3915
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3916 t.elem = this.elem;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3917
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3918 if ( t() && jQuery.timers.push(t) == 1 ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3919 timerId = setInterval(function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3920 var timers = jQuery.timers;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3921
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3922 for ( var i = 0; i < timers.length; i++ )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3923 if ( !timers[i]() )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3924 timers.splice(i--, 1);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3925
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3926 if ( !timers.length ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3927 clearInterval( timerId );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3928 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3929 }, 13);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3930 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3931 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3932
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3933 // Simple 'show' function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3934 show: function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3935 // Remember where we started, so that we can go back to it later
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3936 this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3937 this.options.show = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3938
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3939 // Begin the animation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3940 // Make sure that we start at a small width/height to avoid any
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3941 // flash of content
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3942 this.custom(this.prop == "width" || this.prop == "height" ? 1 : 0, this.cur());
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3943
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3944 // Start by showing the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3945 jQuery(this.elem).show();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3946 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3947
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3948 // Simple 'hide' function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3949 hide: function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3950 // Remember where we started, so that we can go back to it later
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3951 this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3952 this.options.hide = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3953
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3954 // Begin the animation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3955 this.custom(this.cur(), 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3956 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3957
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3958 // Each step of an animation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3959 step: function(gotoEnd){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3960 var t = now();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3961
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3962 if ( gotoEnd || t >= this.options.duration + this.startTime ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3963 this.now = this.end;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3964 this.pos = this.state = 1;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3965 this.update();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3966
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3967 this.options.curAnim[ this.prop ] = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3968
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3969 var done = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3970 for ( var i in this.options.curAnim )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3971 if ( this.options.curAnim[i] !== true )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3972 done = false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3973
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3974 if ( done ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3975 if ( this.options.display != null ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3976 // Reset the overflow
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3977 this.elem.style.overflow = this.options.overflow;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3978
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3979 // Reset the display
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3980 this.elem.style.display = this.options.display;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3981 if ( jQuery.css(this.elem, "display") == "none" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3982 this.elem.style.display = "block";
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3983 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3984
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3985 // Hide the element if the "hide" operation was done
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3986 if ( this.options.hide )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3987 jQuery(this.elem).hide();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3988
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3989 // Reset the properties, if the item has been hidden or shown
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3990 if ( this.options.hide || this.options.show )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3991 for ( var p in this.options.curAnim )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3992 jQuery.attr(this.elem.style, p, this.options.orig[p]);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3993
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3994 // Execute the complete function
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3995 this.options.complete.call( this.elem );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3996 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3997
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3998 return false;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3999 } else {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4000 var n = t - this.startTime;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4001 this.state = n / this.options.duration;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4002
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4003 // Perform the easing function, defaults to swing
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4004 this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4005 this.now = this.start + ((this.end - this.start) * this.pos);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4006
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4007 // Perform the next step of the animation
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4008 this.update();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4009 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4010
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4011 return true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4012 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4013
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4014 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4015
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4016 jQuery.extend( jQuery.fx, {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4017 speeds:{
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4018 slow: 600,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4019 fast: 200,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4020 // Default speed
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4021 _default: 400
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4022 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4023 step: {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4024
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4025 opacity: function(fx){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4026 jQuery.attr(fx.elem.style, "opacity", fx.now);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4027 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4028
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4029 _default: function(fx){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4030 if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4031 fx.elem.style[ fx.prop ] = fx.now + fx.unit;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4032 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4033 fx.elem[ fx.prop ] = fx.now;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4034 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4035 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4036 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4037 if ( document.documentElement["getBoundingClientRect"] )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4038 jQuery.fn.offset = function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4039 if ( !this[0] ) return { top: 0, left: 0 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4040 if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4041 var box = this[0].getBoundingClientRect(), doc = this[0].ownerDocument, body = doc.body, docElem = doc.documentElement,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4042 clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4043 top = box.top + (self.pageYOffset || jQuery.boxModel && docElem.scrollTop || body.scrollTop ) - clientTop,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4044 left = box.left + (self.pageXOffset || jQuery.boxModel && docElem.scrollLeft || body.scrollLeft) - clientLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4045 return { top: top, left: left };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4046 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4047 else
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4048 jQuery.fn.offset = function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4049 if ( !this[0] ) return { top: 0, left: 0 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4050 if ( this[0] === this[0].ownerDocument.body ) return jQuery.offset.bodyOffset( this[0] );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4051 jQuery.offset.initialized || jQuery.offset.initialize();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4052
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4053 var elem = this[0], offsetParent = elem.offsetParent, prevOffsetParent = elem,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4054 doc = elem.ownerDocument, computedStyle, docElem = doc.documentElement,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4055 body = doc.body, defaultView = doc.defaultView,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4056 prevComputedStyle = defaultView.getComputedStyle(elem, null),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4057 top = elem.offsetTop, left = elem.offsetLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4058
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4059 while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4060 computedStyle = defaultView.getComputedStyle(elem, null);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4061 top -= elem.scrollTop, left -= elem.scrollLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4062 if ( elem === offsetParent ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4063 top += elem.offsetTop, left += elem.offsetLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4064 if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && /^t(able|d|h)$/i.test(elem.tagName)) )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4065 top += parseInt( computedStyle.borderTopWidth, 10) || 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4066 left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4067 prevOffsetParent = offsetParent, offsetParent = elem.offsetParent;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4068 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4069 if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4070 top += parseInt( computedStyle.borderTopWidth, 10) || 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4071 left += parseInt( computedStyle.borderLeftWidth, 10) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4072 prevComputedStyle = computedStyle;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4073 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4074
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4075 if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4076 top += body.offsetTop,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4077 left += body.offsetLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4078
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4079 if ( prevComputedStyle.position === "fixed" )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4080 top += Math.max(docElem.scrollTop, body.scrollTop),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4081 left += Math.max(docElem.scrollLeft, body.scrollLeft);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4082
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4083 return { top: top, left: left };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4084 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4085
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4086 jQuery.offset = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4087 initialize: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4088 if ( this.initialized ) return;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4089 var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4090 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>';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4091
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4092 rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4093 for ( prop in rules ) container.style[prop] = rules[prop];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4094
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4095 container.innerHTML = html;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4096 body.insertBefore(container, body.firstChild);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4097 innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td = innerDiv.nextSibling.firstChild.firstChild;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4098
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4099 this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4100 this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4101
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4102 innerDiv.style.overflow = 'hidden', innerDiv.style.position = 'relative';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4103 this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4104
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4105 body.style.marginTop = '1px';
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4106 this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4107 body.style.marginTop = bodyMarginTop;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4108
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4109 body.removeChild(container);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4110 this.initialized = true;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4111 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4112
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4113 bodyOffset: function(body) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4114 jQuery.offset.initialized || jQuery.offset.initialize();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4115 var top = body.offsetTop, left = body.offsetLeft;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4116 if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4117 top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) || 0,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4118 left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) || 0;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4119 return { top: top, left: left };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4120 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4121 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4122
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4123
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4124 jQuery.fn.extend({
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4125 position: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4126 var left = 0, top = 0, results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4127
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4128 if ( this[0] ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4129 // Get *real* offsetParent
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4130 var offsetParent = this.offsetParent(),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4131
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4132 // Get correct offsets
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4133 offset = this.offset(),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4134 parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4135
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4136 // Subtract element margins
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4137 // note: when an element has margin: auto the offsetLeft and marginLeft
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4138 // are the same in Safari causing offset.left to incorrectly be 0
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4139 offset.top -= num( this, 'marginTop' );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4140 offset.left -= num( this, 'marginLeft' );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4141
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4142 // Add offsetParent borders
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4143 parentOffset.top += num( offsetParent, 'borderTopWidth' );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4144 parentOffset.left += num( offsetParent, 'borderLeftWidth' );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4145
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4146 // Subtract the two offsets
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4147 results = {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4148 top: offset.top - parentOffset.top,
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4149 left: offset.left - parentOffset.left
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4150 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4151 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4152
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4153 return results;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4154 },
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4155
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4156 offsetParent: function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4157 var offsetParent = this[0].offsetParent || document.body;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4158 while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4159 offsetParent = offsetParent.offsetParent;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4160 return jQuery(offsetParent);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4161 }
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4162 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4163
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4164
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4165 // Create scrollLeft and scrollTop methods
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4166 jQuery.each( ['Left', 'Top'], function(i, name) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4167 var method = 'scroll' + name;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4168
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4169 jQuery.fn[ method ] = function(val) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4170 if (!this[0]) return null;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4171
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4172 return val !== undefined ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4173
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4174 // Set the scroll offset
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4175 this.each(function() {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4176 this == window || this == document ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4177 window.scrollTo(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4178 !i ? val : jQuery(window).scrollLeft(),
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4179 i ? val : jQuery(window).scrollTop()
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4180 ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4181 this[ method ] = val;
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4182 }) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4183
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4184 // Return the scroll offset
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4185 this[0] == window || this[0] == document ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4186 self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4187 jQuery.boxModel && document.documentElement[ method ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4188 document.body[ method ] :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4189 this[0][ method ];
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4190 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4191 });
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4192 // Create innerHeight, innerWidth, outerHeight and outerWidth methods
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4193 jQuery.each([ "Height", "Width" ], function(i, name){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4194
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4195 var tl = i ? "Left" : "Top", // top or left
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4196 br = i ? "Right" : "Bottom"; // bottom or right
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4197
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4198 // innerHeight and innerWidth
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4199 jQuery.fn["inner" + name] = function(){
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4200 return this[ name.toLowerCase() ]() +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4201 num(this, "padding" + tl) +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4202 num(this, "padding" + br);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4203 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4204
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4205 // outerHeight and outerWidth
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4206 jQuery.fn["outer" + name] = function(margin) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4207 return this["inner" + name]() +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4208 num(this, "border" + tl + "Width") +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4209 num(this, "border" + br + "Width") +
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4210 (margin ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4211 num(this, "margin" + tl) + num(this, "margin" + br) : 0);
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4212 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4213
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4214 var type = name.toLowerCase();
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4215
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4216 jQuery.fn[ type ] = function( size ) {
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4217 // Get window width or height
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4218 return this[0] == window ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4219 // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4220 document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] ||
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4221 document.body[ "client" + name ] :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4222
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4223 // Get document width or height
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4224 this[0] == document ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4225 // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4226 Math.max(
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4227 document.documentElement["client" + name],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4228 document.body["scroll" + name], document.documentElement["scroll" + name],
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4229 document.body["offset" + name], document.documentElement["offset" + name]
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4230 ) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4231
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4232 // Get or set width or height on the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4233 size === undefined ?
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4234 // Get width or height on the element
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4235 (this.length ? jQuery.css( this[0], type ) : null) :
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4236
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4237 // Set the width or height on the element (default to pixels if value is unitless)
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4238 this.css( type, typeof size === "string" ? size : size + "px" );
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4239 };
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4240
05f467a83cb9 Added open web magic ink page.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4241 });})();