fhiiqm/js/jquery/jquery.js
author Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
Wed, 31 Aug 2011 14:22:19 +0200
changeset 1 6288d5685bff
permissions -rw-r--r--
Stand v. 31.08.2011
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     1
(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     2
/*
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     3
 * jQuery 1.2.6 - New Wave Javascript
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     4
 *
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     5
 * Copyright (c) 2008 John Resig (jquery.com)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     6
 * Dual licensed under the MIT (MIT-LICENSE.txt)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     7
 * and GPL (GPL-LICENSE.txt) licenses.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     8
 *
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     9
 * $Date: 2008-05-27 21:17:26 +0200 (Di, 27 Mai 2008) $
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    10
 * $Rev: 5700 $
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    11
 */
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    12
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    13
// Map over jQuery in case of overwrite
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    14
var _jQuery = window.jQuery,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    15
// Map over the $ in case of overwrite
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    16
	_$ = window.$;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    17
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    18
var jQuery = window.jQuery = window.$ = function( selector, context ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    19
	// The jQuery object is actually just the init constructor 'enhanced'
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    20
	return new jQuery.fn.init( selector, context );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    21
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    22
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    23
// A simple way to check for HTML strings or ID strings
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    24
// (both of which we optimize for)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    25
var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    26
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    27
// Is it a simple selector
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    28
	isSimple = /^.[^:#\[\.]*$/,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    29
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    30
// Will speed up references to undefined, and allows munging its name.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    31
	undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    32
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    33
jQuery.fn = jQuery.prototype = {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    34
	init: function( selector, context ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    35
		// Make sure that a selection was provided
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    36
		selector = selector || document;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    37
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    38
		// Handle $(DOMElement)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    39
		if ( selector.nodeType ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    40
			this[0] = selector;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    41
			this.length = 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    42
			return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    43
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    44
		// Handle HTML strings
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    45
		if ( typeof selector == "string" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    46
			// Are we dealing with HTML string or an ID?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    47
			var match = quickExpr.exec( selector );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    48
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    49
			// Verify a match, and that no context was specified for #id
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    50
			if ( match && (match[1] || !context) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    51
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    52
				// HANDLE: $(html) -> $(array)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    53
				if ( match[1] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    54
					selector = jQuery.clean( [ match[1] ], context );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    55
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    56
				// HANDLE: $("#id")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    57
				else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    58
					var elem = document.getElementById( match[3] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    59
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    60
					// Make sure an element was located
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    61
					if ( elem ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    62
						// Handle the case where IE and Opera return items
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    63
						// by name instead of ID
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    64
						if ( elem.id != match[3] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    65
							return jQuery().find( selector );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    66
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    67
						// Otherwise, we inject the element directly into the jQuery object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    68
						return jQuery( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    69
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    70
					selector = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    71
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    72
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    73
			// HANDLE: $(expr, [context])
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    74
			// (which is just equivalent to: $(content).find(expr)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    75
			} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    76
				return jQuery( context ).find( selector );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    77
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    78
		// HANDLE: $(function)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    79
		// Shortcut for document ready
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    80
		} else if ( jQuery.isFunction( selector ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    81
			return jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    82
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    83
		return this.setArray(jQuery.makeArray(selector));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    84
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    85
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    86
	// The current version of jQuery being used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    87
	jquery: "1.2.6",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    88
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    89
	// The number of elements contained in the matched element set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    90
	size: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    91
		return this.length;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    92
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    93
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    94
	// The number of elements contained in the matched element set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    95
	length: 0,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    96
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    97
	// Get the Nth element in the matched element set OR
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    98
	// Get the whole matched element set as a clean array
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    99
	get: function( num ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   100
		return num == undefined ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   101
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   102
			// Return a 'clean' array
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   103
			jQuery.makeArray( this ) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   104
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   105
			// Return just the object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   106
			this[ num ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   107
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   108
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   109
	// Take an array of elements and push it onto the stack
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   110
	// (returning the new matched element set)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   111
	pushStack: function( elems ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   112
		// Build a new jQuery matched element set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   113
		var ret = jQuery( elems );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   114
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   115
		// Add the old object onto the stack (as a reference)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   116
		ret.prevObject = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   117
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   118
		// Return the newly-formed element set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   119
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   120
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   121
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   122
	// Force the current matched set of elements to become
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   123
	// the specified array of elements (destroying the stack in the process)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   124
	// You should use pushStack() in order to do this, but maintain the stack
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   125
	setArray: function( elems ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   126
		// Resetting the length to 0, then using the native Array push
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   127
		// is a super-fast way to populate an object with array-like properties
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   128
		this.length = 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   129
		Array.prototype.push.apply( this, elems );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   130
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   131
		return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   132
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   133
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   134
	// Execute a callback for every element in the matched set.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   135
	// (You can seed the arguments with an array of args, but this is
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   136
	// only used internally.)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   137
	each: function( callback, args ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   138
		return jQuery.each( this, callback, args );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   139
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   140
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   141
	// Determine the position of an element within
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   142
	// the matched set of elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   143
	index: function( elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   144
		var ret = -1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   145
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   146
		// Locate the position of the desired element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   147
		return jQuery.inArray(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   148
			// If it receives a jQuery object, the first element is used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   149
			elem && elem.jquery ? elem[0] : elem
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   150
		, this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   151
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   152
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   153
	attr: function( name, value, type ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   154
		var options = name;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   155
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   156
		// Look for the case where we're accessing a style value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   157
		if ( name.constructor == String )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   158
			if ( value === undefined )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   159
				return this[0] && jQuery[ type || "attr" ]( this[0], name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   160
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   161
			else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   162
				options = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   163
				options[ name ] = value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   164
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   165
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   166
		// Check to see if we're setting style values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   167
		return this.each(function(i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   168
			// Set all the styles
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   169
			for ( name in options )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   170
				jQuery.attr(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   171
					type ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   172
						this.style :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   173
						this,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   174
					name, jQuery.prop( this, options[ name ], type, i, name )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   175
				);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   176
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   177
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   178
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   179
	css: function( key, value ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   180
		// ignore negative width and height values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   181
		if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   182
			value = undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   183
		return this.attr( key, value, "curCSS" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   184
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   185
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   186
	text: function( text ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   187
		if ( typeof text != "object" && text != null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   188
			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   189
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   190
		var ret = "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   191
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   192
		jQuery.each( text || this, function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   193
			jQuery.each( this.childNodes, function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   194
				if ( this.nodeType != 8 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   195
					ret += this.nodeType != 1 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   196
						this.nodeValue :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   197
						jQuery.fn.text( [ this ] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   198
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   199
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   200
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   201
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   202
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   203
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   204
	wrapAll: function( html ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   205
		if ( this[0] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   206
			// The elements to wrap the target around
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   207
			jQuery( html, this[0].ownerDocument )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   208
				.clone()
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   209
				.insertBefore( this[0] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   210
				.map(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   211
					var elem = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   212
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   213
					while ( elem.firstChild )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   214
						elem = elem.firstChild;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   215
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   216
					return elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   217
				})
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   218
				.append(this);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   219
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   220
		return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   221
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   222
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   223
	wrapInner: function( html ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   224
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   225
			jQuery( this ).contents().wrapAll( html );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   226
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   227
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   228
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   229
	wrap: function( html ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   230
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   231
			jQuery( this ).wrapAll( html );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   232
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   233
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   234
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   235
	append: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   236
		return this.domManip(arguments, true, false, function(elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   237
			if (this.nodeType == 1)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   238
				this.appendChild( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   239
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   240
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   241
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   242
	prepend: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   243
		return this.domManip(arguments, true, true, function(elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   244
			if (this.nodeType == 1)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   245
				this.insertBefore( elem, this.firstChild );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   246
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   247
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   248
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   249
	before: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   250
		return this.domManip(arguments, false, false, function(elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   251
			this.parentNode.insertBefore( elem, this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   252
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   253
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   254
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   255
	after: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   256
		return this.domManip(arguments, false, true, function(elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   257
			this.parentNode.insertBefore( elem, this.nextSibling );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   258
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   259
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   260
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   261
	end: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   262
		return this.prevObject || jQuery( [] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   263
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   264
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   265
	find: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   266
		var elems = jQuery.map(this, function(elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   267
			return jQuery.find( selector, elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   268
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   269
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   270
		return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   271
			jQuery.unique( elems ) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   272
			elems );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   273
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   274
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   275
	clone: function( events ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   276
		// Do the clone
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   277
		var ret = this.map(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   278
			if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   279
				// IE copies events bound via attachEvent when
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   280
				// using cloneNode. Calling detachEvent on the
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   281
				// clone will also remove the events from the orignal
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   282
				// In order to get around this, we use innerHTML.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   283
				// Unfortunately, this means some modifications to
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   284
				// attributes in IE that are actually only stored
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   285
				// as properties will not be copied (such as the
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   286
				// the name attribute on an input).
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   287
				var clone = this.cloneNode(true),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   288
					container = document.createElement("div");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   289
				container.appendChild(clone);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   290
				return jQuery.clean([container.innerHTML])[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   291
			} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   292
				return this.cloneNode(true);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   293
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   294
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   295
		// Need to set the expando to null on the cloned set if it exists
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   296
		// removeData doesn't work here, IE removes it from the original as well
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   297
		// this is primarily for IE but the data expando shouldn't be copied over in any browser
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   298
		var clone = ret.find("*").andSelf().each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   299
			if ( this[ expando ] != undefined )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   300
				this[ expando ] = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   301
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   302
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   303
		// Copy the events from the original to the clone
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   304
		if ( events === true )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   305
			this.find("*").andSelf().each(function(i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   306
				if (this.nodeType == 3)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   307
					return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   308
				var events = jQuery.data( this, "events" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   309
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   310
				for ( var type in events )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   311
					for ( var handler in events[ type ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   312
						jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   313
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   314
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   315
		// Return the cloned set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   316
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   317
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   318
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   319
	filter: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   320
		return this.pushStack(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   321
			jQuery.isFunction( selector ) &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   322
			jQuery.grep(this, function(elem, i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   323
				return selector.call( elem, i );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   324
			}) ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   325
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   326
			jQuery.multiFilter( selector, this ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   327
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   328
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   329
	not: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   330
		if ( selector.constructor == String )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   331
			// test special case where just one selector is passed in
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   332
			if ( isSimple.test( selector ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   333
				return this.pushStack( jQuery.multiFilter( selector, this, true ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   334
			else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   335
				selector = jQuery.multiFilter( selector, this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   336
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   337
		var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   338
		return this.filter(function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   339
			return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   340
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   341
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   342
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   343
	add: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   344
		return this.pushStack( jQuery.unique( jQuery.merge(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   345
			this.get(),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   346
			typeof selector == 'string' ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   347
				jQuery( selector ) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   348
				jQuery.makeArray( selector )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   349
		)));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   350
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   351
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   352
	is: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   353
		return !!selector && jQuery.multiFilter( selector, this ).length > 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   354
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   355
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   356
	hasClass: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   357
		return this.is( "." + selector );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   358
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   359
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   360
	val: function( value ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   361
		if ( value == undefined ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   362
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   363
			if ( this.length ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   364
				var elem = this[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   365
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   366
				// We need to handle select boxes special
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   367
				if ( jQuery.nodeName( elem, "select" ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   368
					var index = elem.selectedIndex,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   369
						values = [],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   370
						options = elem.options,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   371
						one = elem.type == "select-one";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   372
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   373
					// Nothing was selected
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   374
					if ( index < 0 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   375
						return null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   376
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   377
					// Loop through all the selected options
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   378
					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   379
						var option = options[ i ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   380
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   381
						if ( option.selected ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   382
							// Get the specifc value for the option
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   383
							value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   384
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   385
							// We don't need an array for one selects
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   386
							if ( one )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   387
								return value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   388
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   389
							// Multi-Selects return an array
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   390
							values.push( value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   391
						}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   392
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   393
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   394
					return values;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   395
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   396
				// Everything else, we just grab the value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   397
				} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   398
					return (this[0].value || "").replace(/\r/g, "");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   399
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   400
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   401
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   402
			return undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   403
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   404
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   405
		if( value.constructor == Number )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   406
			value += '';
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   407
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   408
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   409
			if ( this.nodeType != 1 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   410
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   411
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   412
			if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   413
				this.checked = (jQuery.inArray(this.value, value) >= 0 ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   414
					jQuery.inArray(this.name, value) >= 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   415
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   416
			else if ( jQuery.nodeName( this, "select" ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   417
				var values = jQuery.makeArray(value);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   418
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   419
				jQuery( "option", this ).each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   420
					this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   421
						jQuery.inArray( this.text, values ) >= 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   422
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   423
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   424
				if ( !values.length )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   425
					this.selectedIndex = -1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   426
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   427
			} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   428
				this.value = value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   429
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   430
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   431
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   432
	html: function( value ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   433
		return value == undefined ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   434
			(this[0] ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   435
				this[0].innerHTML :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   436
				null) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   437
			this.empty().append( value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   438
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   439
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   440
	replaceWith: function( value ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   441
		return this.after( value ).remove();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   442
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   443
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   444
	eq: function( i ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   445
		return this.slice( i, i + 1 );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   446
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   447
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   448
	slice: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   449
		return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   450
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   451
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   452
	map: function( callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   453
		return this.pushStack( jQuery.map(this, function(elem, i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   454
			return callback.call( elem, i, elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   455
		}));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   456
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   457
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   458
	andSelf: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   459
		return this.add( this.prevObject );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   460
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   461
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   462
	data: function( key, value ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   463
		var parts = key.split(".");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   464
		parts[1] = parts[1] ? "." + parts[1] : "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   465
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   466
		if ( value === undefined ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   467
			var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   468
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   469
			if ( data === undefined && this.length )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   470
				data = jQuery.data( this[0], key );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   471
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   472
			return data === undefined && parts[1] ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   473
				this.data( parts[0] ) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   474
				data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   475
		} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   476
			return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   477
				jQuery.data( this, key, value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   478
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   479
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   480
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   481
	removeData: function( key ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   482
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   483
			jQuery.removeData( this, key );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   484
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   485
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   486
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   487
	domManip: function( args, table, reverse, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   488
		var clone = this.length > 1, elems;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   489
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   490
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   491
			if ( !elems ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   492
				elems = jQuery.clean( args, this.ownerDocument );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   493
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   494
				if ( reverse )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   495
					elems.reverse();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   496
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   497
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   498
			var obj = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   499
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   500
			if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   501
				obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   502
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   503
			var scripts = jQuery( [] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   504
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   505
			jQuery.each(elems, function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   506
				var elem = clone ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   507
					jQuery( this ).clone( true )[0] :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   508
					this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   509
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   510
				// execute all scripts after the elements have been injected
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   511
				if ( jQuery.nodeName( elem, "script" ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   512
					scripts = scripts.add( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   513
				else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   514
					// Remove any inner scripts for later evaluation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   515
					if ( elem.nodeType == 1 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   516
						scripts = scripts.add( jQuery( "script", elem ).remove() );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   517
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   518
					// Inject the elements into the document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   519
					callback.call( obj, elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   520
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   521
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   522
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   523
			scripts.each( evalScript );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   524
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   525
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   526
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   527
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   528
// Give the init function the jQuery prototype for later instantiation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   529
jQuery.fn.init.prototype = jQuery.fn;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   530
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   531
function evalScript( i, elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   532
	if ( elem.src )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   533
		jQuery.ajax({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   534
			url: elem.src,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   535
			async: false,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   536
			dataType: "script"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   537
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   538
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   539
	else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   540
		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   541
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   542
	if ( elem.parentNode )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   543
		elem.parentNode.removeChild( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   544
}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   545
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   546
function now(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   547
	return +new Date;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   548
}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   549
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   550
jQuery.extend = jQuery.fn.extend = function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   551
	// copy reference to target object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   552
	var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   553
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   554
	// Handle a deep copy situation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   555
	if ( target.constructor == Boolean ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   556
		deep = target;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   557
		target = arguments[1] || {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   558
		// skip the boolean and the target
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   559
		i = 2;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   560
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   561
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   562
	// Handle case when target is a string or something (possible in deep copy)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   563
	if ( typeof target != "object" && typeof target != "function" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   564
		target = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   565
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   566
	// extend jQuery itself if only one argument is passed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   567
	if ( length == i ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   568
		target = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   569
		--i;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   570
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   571
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   572
	for ( ; i < length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   573
		// Only deal with non-null/undefined values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   574
		if ( (options = arguments[ i ]) != null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   575
			// Extend the base object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   576
			for ( var name in options ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   577
				var src = target[ name ], copy = options[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   578
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   579
				// Prevent never-ending loop
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   580
				if ( target === copy )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   581
					continue;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   582
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   583
				// Recurse if we're merging object values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   584
				if ( deep && copy && typeof copy == "object" && !copy.nodeType )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   585
					target[ name ] = jQuery.extend( deep, 
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   586
						// Never move original objects, clone them
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   587
						src || ( copy.length != null ? [ ] : { } )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   588
					, copy );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   589
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   590
				// Don't bring in undefined values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   591
				else if ( copy !== undefined )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   592
					target[ name ] = copy;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   593
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   594
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   595
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   596
	// Return the modified object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   597
	return target;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   598
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   599
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   600
var expando = "jQuery" + now(), uuid = 0, windowData = {},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   601
	// exclude the following css properties to add px
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   602
	exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   603
	// cache defaultView
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   604
	defaultView = document.defaultView || {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   605
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   606
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   607
	noConflict: function( deep ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   608
		window.$ = _$;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   609
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   610
		if ( deep )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   611
			window.jQuery = _jQuery;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   612
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   613
		return jQuery;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   614
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   615
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   616
	// See test/unit/core.js for details concerning this function.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   617
	isFunction: function( fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   618
		return !!fn && typeof fn != "string" && !fn.nodeName &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   619
			fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   620
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   621
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   622
	// check if an element is in a (or is an) XML document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   623
	isXMLDoc: function( elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   624
		return elem.documentElement && !elem.body ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   625
			elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   626
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   627
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   628
	// Evalulates a script in a global context
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   629
	globalEval: function( data ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   630
		data = jQuery.trim( data );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   631
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   632
		if ( data ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   633
			// Inspired by code by Andrea Giammarchi
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   634
			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   635
			var head = document.getElementsByTagName("head")[0] || document.documentElement,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   636
				script = document.createElement("script");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   637
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   638
			script.type = "text/javascript";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   639
			if ( jQuery.browser.msie )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   640
				script.text = data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   641
			else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   642
				script.appendChild( document.createTextNode( data ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   643
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   644
			// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   645
			// This arises when a base node is used (#2709).
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   646
			head.insertBefore( script, head.firstChild );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   647
			head.removeChild( script );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   648
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   649
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   650
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   651
	nodeName: function( elem, name ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   652
		return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   653
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   654
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   655
	cache: {},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   656
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   657
	data: function( elem, name, data ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   658
		elem = elem == window ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   659
			windowData :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   660
			elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   661
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   662
		var id = elem[ expando ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   663
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   664
		// Compute a unique ID for the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   665
		if ( !id )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   666
			id = elem[ expando ] = ++uuid;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   667
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   668
		// Only generate the data cache if we're
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   669
		// trying to access or manipulate it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   670
		if ( name && !jQuery.cache[ id ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   671
			jQuery.cache[ id ] = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   672
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   673
		// Prevent overriding the named cache with undefined values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   674
		if ( data !== undefined )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   675
			jQuery.cache[ id ][ name ] = data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   676
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   677
		// Return the named cache data, or the ID for the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   678
		return name ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   679
			jQuery.cache[ id ][ name ] :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   680
			id;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   681
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   682
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   683
	removeData: function( elem, name ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   684
		elem = elem == window ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   685
			windowData :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   686
			elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   687
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   688
		var id = elem[ expando ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   689
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   690
		// If we want to remove a specific section of the element's data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   691
		if ( name ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   692
			if ( jQuery.cache[ id ] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   693
				// Remove the section of cache data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   694
				delete jQuery.cache[ id ][ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   695
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   696
				// If we've removed all the data, remove the element's cache
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   697
				name = "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   698
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   699
				for ( name in jQuery.cache[ id ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   700
					break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   701
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   702
				if ( !name )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   703
					jQuery.removeData( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   704
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   705
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   706
		// Otherwise, we want to remove all of the element's data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   707
		} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   708
			// Clean up the element expando
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   709
			try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   710
				delete elem[ expando ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   711
			} catch(e){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   712
				// IE has trouble directly removing the expando
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   713
				// but it's ok with using removeAttribute
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   714
				if ( elem.removeAttribute )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   715
					elem.removeAttribute( expando );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   716
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   717
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   718
			// Completely remove the data cache
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   719
			delete jQuery.cache[ id ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   720
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   721
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   722
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   723
	// args is for internal usage only
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   724
	each: function( object, callback, args ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   725
		var name, i = 0, length = object.length;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   726
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   727
		if ( args ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   728
			if ( length == undefined ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   729
				for ( name in object )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   730
					if ( callback.apply( object[ name ], args ) === false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   731
						break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   732
			} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   733
				for ( ; i < length; )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   734
					if ( callback.apply( object[ i++ ], args ) === false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   735
						break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   736
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   737
		// A special, fast, case for the most common use of each
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   738
		} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   739
			if ( length == undefined ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   740
				for ( name in object )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   741
					if ( callback.call( object[ name ], name, object[ name ] ) === false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   742
						break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   743
			} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   744
				for ( var value = object[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   745
					i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   746
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   747
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   748
		return object;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   749
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   750
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   751
	prop: function( elem, value, type, i, name ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   752
		// Handle executable functions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   753
		if ( jQuery.isFunction( value ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   754
			value = value.call( elem, i );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   755
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   756
		// Handle passing in a number to a CSS property
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   757
		return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   758
			value + "px" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   759
			value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   760
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   761
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   762
	className: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   763
		// internal only, use addClass("class")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   764
		add: function( elem, classNames ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   765
			jQuery.each((classNames || "").split(/\s+/), function(i, className){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   766
				if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   767
					elem.className += (elem.className ? " " : "") + className;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   768
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   769
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   770
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   771
		// internal only, use removeClass("class")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   772
		remove: function( elem, classNames ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   773
			if (elem.nodeType == 1)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   774
				elem.className = classNames != undefined ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   775
					jQuery.grep(elem.className.split(/\s+/), function(className){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   776
						return !jQuery.className.has( classNames, className );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   777
					}).join(" ") :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   778
					"";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   779
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   780
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   781
		// internal only, use hasClass("class")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   782
		has: function( elem, className ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   783
			return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   784
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   785
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   786
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   787
	// A method for quickly swapping in/out CSS properties to get correct calculations
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   788
	swap: function( elem, options, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   789
		var old = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   790
		// Remember the old values, and insert the new ones
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   791
		for ( var name in options ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   792
			old[ name ] = elem.style[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   793
			elem.style[ name ] = options[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   794
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   795
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   796
		callback.call( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   797
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   798
		// Revert the old values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   799
		for ( var name in options )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   800
			elem.style[ name ] = old[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   801
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   802
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   803
	css: function( elem, name, force ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   804
		if ( name == "width" || name == "height" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   805
			var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   806
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   807
			function getWH() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   808
				val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   809
				var padding = 0, border = 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   810
				jQuery.each( which, function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   811
					padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   812
					border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   813
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   814
				val -= Math.round(padding + border);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   815
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   816
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   817
			if ( jQuery(elem).is(":visible") )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   818
				getWH();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   819
			else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   820
				jQuery.swap( elem, props, getWH );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   821
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   822
			return Math.max(0, val);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   823
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   824
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   825
		return jQuery.curCSS( elem, name, force );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   826
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   827
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   828
	curCSS: function( elem, name, force ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   829
		var ret, style = elem.style;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   830
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   831
		// A helper method for determining if an element's values are broken
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   832
		function color( elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   833
			if ( !jQuery.browser.safari )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   834
				return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   835
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   836
			// defaultView is cached
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   837
			var ret = defaultView.getComputedStyle( elem, null );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   838
			return !ret || ret.getPropertyValue("color") == "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   839
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   840
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   841
		// We need to handle opacity special in IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   842
		if ( name == "opacity" && jQuery.browser.msie ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   843
			ret = jQuery.attr( style, "opacity" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   844
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   845
			return ret == "" ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   846
				"1" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   847
				ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   848
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   849
		// Opera sometimes will give the wrong display answer, this fixes it, see #2037
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   850
		if ( jQuery.browser.opera && name == "display" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   851
			var save = style.outline;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   852
			style.outline = "0 solid black";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   853
			style.outline = save;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   854
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   855
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   856
		// Make sure we're using the right name for getting the float value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   857
		if ( name.match( /float/i ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   858
			name = styleFloat;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   859
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   860
		if ( !force && style && style[ name ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   861
			ret = style[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   862
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   863
		else if ( defaultView.getComputedStyle ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   864
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   865
			// Only "float" is needed here
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   866
			if ( name.match( /float/i ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   867
				name = "float";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   868
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   869
			name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   870
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   871
			var computedStyle = defaultView.getComputedStyle( elem, null );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   872
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   873
			if ( computedStyle && !color( elem ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   874
				ret = computedStyle.getPropertyValue( name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   875
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   876
			// If the element isn't reporting its values properly in Safari
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   877
			// then some display: none elements are involved
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   878
			else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   879
				var swap = [], stack = [], a = elem, i = 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   880
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   881
				// Locate all of the parent display: none elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   882
				for ( ; a && color(a); a = a.parentNode )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   883
					stack.unshift(a);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   884
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   885
				// Go through and make them visible, but in reverse
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   886
				// (It would be better if we knew the exact display type that they had)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   887
				for ( ; i < stack.length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   888
					if ( color( stack[ i ] ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   889
						swap[ i ] = stack[ i ].style.display;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   890
						stack[ i ].style.display = "block";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   891
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   892
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   893
				// Since we flip the display style, we have to handle that
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   894
				// one special, otherwise get the value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   895
				ret = name == "display" && swap[ stack.length - 1 ] != null ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   896
					"none" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   897
					( computedStyle && computedStyle.getPropertyValue( name ) ) || "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   898
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   899
				// Finally, revert the display styles back
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   900
				for ( i = 0; i < swap.length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   901
					if ( swap[ i ] != null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   902
						stack[ i ].style.display = swap[ i ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   903
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   904
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   905
			// We should always get a number back from opacity
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   906
			if ( name == "opacity" && ret == "" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   907
				ret = "1";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   908
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   909
		} else if ( elem.currentStyle ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   910
			var camelCase = name.replace(/\-(\w)/g, function(all, letter){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   911
				return letter.toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   912
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   913
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   914
			ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   915
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   916
			// From the awesome hack by Dean Edwards
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   917
			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   918
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   919
			// If we're not dealing with a regular pixel number
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   920
			// but a number that has a weird ending, we need to convert it to pixels
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   921
			if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   922
				// Remember the original values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   923
				var left = style.left, rsLeft = elem.runtimeStyle.left;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   924
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   925
				// Put in the new values to get a computed value out
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   926
				elem.runtimeStyle.left = elem.currentStyle.left;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   927
				style.left = ret || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   928
				ret = style.pixelLeft + "px";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   929
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   930
				// Revert the changed values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   931
				style.left = left;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   932
				elem.runtimeStyle.left = rsLeft;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   933
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   934
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   935
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   936
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   937
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   938
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   939
	clean: function( elems, context ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   940
		var ret = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   941
		context = context || document;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   942
		// !context.createElement fails in IE with an error but returns typeof 'object'
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   943
		if (typeof context.createElement == 'undefined')
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   944
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   945
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   946
		jQuery.each(elems, function(i, elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   947
			if ( !elem )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   948
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   949
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   950
			if ( elem.constructor == Number )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   951
				elem += '';
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   952
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   953
			// Convert html string into DOM nodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   954
			if ( typeof elem == "string" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   955
				// Fix "XHTML"-style tags in all browsers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   956
				elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   957
					return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   958
						all :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   959
						front + "></" + tag + ">";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   960
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   961
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   962
				// Trim whitespace, otherwise indexOf won't work as expected
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   963
				var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   964
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   965
				var wrap =
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   966
					// option or optgroup
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   967
					!tags.indexOf("<opt") &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   968
					[ 1, "<select multiple='multiple'>", "</select>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   969
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   970
					!tags.indexOf("<leg") &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   971
					[ 1, "<fieldset>", "</fieldset>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   972
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   973
					tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   974
					[ 1, "<table>", "</table>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   975
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   976
					!tags.indexOf("<tr") &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   977
					[ 2, "<table><tbody>", "</tbody></table>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   978
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   979
				 	// <thead> matched above
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   980
					(!tags.indexOf("<td") || !tags.indexOf("<th")) &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   981
					[ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   982
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   983
					!tags.indexOf("<col") &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   984
					[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   985
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   986
					// IE can't serialize <link> and <script> tags normally
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   987
					jQuery.browser.msie &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   988
					[ 1, "div<div>", "</div>" ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   989
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   990
					[ 0, "", "" ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   991
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   992
				// Go to html and back, then peel off extra wrappers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   993
				div.innerHTML = wrap[1] + elem + wrap[2];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   994
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   995
				// Move to the right depth
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   996
				while ( wrap[0]-- )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   997
					div = div.lastChild;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   998
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   999
				// Remove IE's autoinserted <tbody> from table fragments
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1000
				if ( jQuery.browser.msie ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1001
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1002
					// String was a <table>, *may* have spurious <tbody>
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1003
					var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1004
						div.firstChild && div.firstChild.childNodes :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1005
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1006
						// String was a bare <thead> or <tfoot>
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1007
						wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1008
							div.childNodes :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1009
							[];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1010
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1011
					for ( var j = tbody.length - 1; j >= 0 ; --j )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1012
						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1013
							tbody[ j ].parentNode.removeChild( tbody[ j ] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1014
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1015
					// IE completely kills leading whitespace when innerHTML is used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1016
					if ( /^\s/.test( elem ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1017
						div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1018
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1019
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1020
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1021
				elem = jQuery.makeArray( div.childNodes );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1022
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1023
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1024
			if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1025
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1026
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1027
			if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1028
				ret.push( elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1029
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1030
			else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1031
				ret = jQuery.merge( ret, elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1032
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1033
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1034
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1035
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1036
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1037
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1038
	attr: function( elem, name, value ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1039
		// don't set attributes on text and comment nodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1040
		if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1041
			return undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1042
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1043
		var notxml = !jQuery.isXMLDoc( elem ),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1044
			// Whether we are setting (or getting)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1045
			set = value !== undefined,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1046
			msie = jQuery.browser.msie;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1047
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1048
		// Try to normalize/fix the name
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1049
		name = notxml && jQuery.props[ name ] || name;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1050
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1051
		// Only do all the following if this is a node (faster for style)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1052
		// IE elem.getAttribute passes even for style
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1053
		if ( elem.tagName ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1054
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1055
			// These attributes require special treatment
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1056
			var special = /href|src|style/.test( name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1057
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1058
			// Safari mis-reports the default selected property of a hidden option
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1059
			// Accessing the parent's selectedIndex property fixes it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1060
			if ( name == "selected" && jQuery.browser.safari )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1061
				elem.parentNode.selectedIndex;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1062
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1063
			// If applicable, access the attribute via the DOM 0 way
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1064
			if ( name in elem && notxml && !special ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1065
				if ( set ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1066
					// We can't allow the type property to be changed (since it causes problems in IE)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1067
					if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1068
						throw "type property can't be changed";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1069
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1070
					elem[ name ] = value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1071
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1072
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1073
				// browsers index elements by id/name on forms, give priority to attributes.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1074
				if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1075
					return elem.getAttributeNode( name ).nodeValue;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1076
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1077
				return elem[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1078
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1079
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1080
			if ( msie && notxml &&  name == "style" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1081
				return jQuery.attr( elem.style, "cssText", value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1082
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1083
			if ( set )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1084
				// convert the value to a string (all browsers do this but IE) see #1070
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1085
				elem.setAttribute( name, "" + value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1086
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1087
			var attr = msie && notxml && special
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1088
					// Some attributes require a special call on IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1089
					? elem.getAttribute( name, 2 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1090
					: elem.getAttribute( name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1091
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1092
			// Non-existent attributes return null, we normalize to undefined
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1093
			return attr === null ? undefined : attr;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1094
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1095
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1096
		// elem is actually elem.style ... set the style
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1097
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1098
		// IE uses filters for opacity
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1099
		if ( msie && name == "opacity" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1100
			if ( set ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1101
				// IE has trouble with opacity if it does not have layout
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1102
				// Force it by setting the zoom level
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1103
				elem.zoom = 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1104
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1105
				// Set the alpha filter to set the opacity
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1106
				elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1107
					(parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1108
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1109
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1110
			return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1111
				(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1112
				"";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1113
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1114
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1115
		name = name.replace(/-([a-z])/ig, function(all, letter){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1116
			return letter.toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1117
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1118
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1119
		if ( set )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1120
			elem[ name ] = value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1121
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1122
		return elem[ name ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1123
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1124
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1125
	trim: function( text ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1126
		return (text || "").replace( /^\s+|\s+$/g, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1127
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1128
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1129
	makeArray: function( array ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1130
		var ret = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1131
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1132
		if( array != null ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1133
			var i = array.length;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1134
			//the window, strings and functions also have 'length'
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1135
			if( i == null || array.split || array.setInterval || array.call )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1136
				ret[0] = array;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1137
			else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1138
				while( i )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1139
					ret[--i] = array[i];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1140
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1141
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1142
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1143
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1144
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1145
	inArray: function( elem, array ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1146
		for ( var i = 0, length = array.length; i < length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1147
		// Use === because on IE, window == document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1148
			if ( array[ i ] === elem )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1149
				return i;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1150
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1151
		return -1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1152
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1153
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1154
	merge: function( first, second ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1155
		// We have to loop this way because IE & Opera overwrite the length
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1156
		// expando of getElementsByTagName
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1157
		var i = 0, elem, pos = first.length;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1158
		// Also, we need to make sure that the correct elements are being returned
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1159
		// (IE returns comment nodes in a '*' query)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1160
		if ( jQuery.browser.msie ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1161
			while ( elem = second[ i++ ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1162
				if ( elem.nodeType != 8 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1163
					first[ pos++ ] = elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1164
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1165
		} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1166
			while ( elem = second[ i++ ] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1167
				first[ pos++ ] = elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1168
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1169
		return first;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1170
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1171
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1172
	unique: function( array ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1173
		var ret = [], done = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1174
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1175
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1176
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1177
			for ( var i = 0, length = array.length; i < length; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1178
				var id = jQuery.data( array[ i ] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1179
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1180
				if ( !done[ id ] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1181
					done[ id ] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1182
					ret.push( array[ i ] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1183
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1184
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1185
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1186
		} catch( e ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1187
			ret = array;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1188
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1189
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1190
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1191
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1192
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1193
	grep: function( elems, callback, inv ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1194
		var ret = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1195
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1196
		// Go through the array, only saving the items
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1197
		// that pass the validator function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1198
		for ( var i = 0, length = elems.length; i < length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1199
			if ( !inv != !callback( elems[ i ], i ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1200
				ret.push( elems[ i ] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1201
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1202
		return ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1203
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1204
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1205
	map: function( elems, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1206
		var ret = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1207
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1208
		// Go through the array, translating each of the items to their
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1209
		// new value (or values).
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1210
		for ( var i = 0, length = elems.length; i < length; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1211
			var value = callback( elems[ i ], i );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1212
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1213
			if ( value != null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1214
				ret[ ret.length ] = value;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1215
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1216
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1217
		return ret.concat.apply( [], ret );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1218
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1219
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1220
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1221
var userAgent = navigator.userAgent.toLowerCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1222
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1223
// Figure out what browser is being used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1224
jQuery.browser = {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1225
	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1226
	safari: /webkit/.test( userAgent ),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1227
	opera: /opera/.test( userAgent ),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1228
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1229
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1230
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1231
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1232
var styleFloat = jQuery.browser.msie ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1233
	"styleFloat" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1234
	"cssFloat";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1235
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1236
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1237
	// Check to see if the W3C box model is being used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1238
	boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1239
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1240
	props: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1241
		"for": "htmlFor",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1242
		"class": "className",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1243
		"float": styleFloat,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1244
		cssFloat: styleFloat,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1245
		styleFloat: styleFloat,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1246
		readonly: "readOnly",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1247
		maxlength: "maxLength",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1248
		cellspacing: "cellSpacing",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1249
		rowspan: "rowSpan"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1250
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1251
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1252
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1253
jQuery.each({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1254
	parent: function(elem){return elem.parentNode;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1255
	parents: function(elem){return jQuery.dir(elem,"parentNode");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1256
	next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1257
	prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1258
	nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1259
	prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1260
	siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1261
	children: function(elem){return jQuery.sibling(elem.firstChild);},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1262
	contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1263
}, function(name, fn){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1264
	jQuery.fn[ name ] = function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1265
		var ret = jQuery.map( this, fn );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1266
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1267
		if ( selector && typeof selector == "string" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1268
			ret = jQuery.multiFilter( selector, ret );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1269
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1270
		return this.pushStack( jQuery.unique( ret ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1271
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1272
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1273
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1274
jQuery.each({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1275
	appendTo: "append",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1276
	prependTo: "prepend",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1277
	insertBefore: "before",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1278
	insertAfter: "after",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1279
	replaceAll: "replaceWith"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1280
}, function(name, original){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1281
	jQuery.fn[ name ] = function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1282
		var args = arguments;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1283
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1284
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1285
			for ( var i = 0, length = args.length; i < length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1286
				jQuery( args[ i ] )[ original ]( this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1287
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1288
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1289
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1290
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1291
jQuery.each({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1292
	removeAttr: function( name ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1293
		jQuery.attr( this, name, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1294
		if (this.nodeType == 1)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1295
			this.removeAttribute( name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1296
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1297
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1298
	addClass: function( classNames ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1299
		jQuery.className.add( this, classNames );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1300
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1301
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1302
	removeClass: function( classNames ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1303
		jQuery.className.remove( this, classNames );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1304
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1305
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1306
	toggleClass: function( classNames ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1307
		jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1308
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1309
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1310
	remove: function( selector ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1311
		if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1312
			// Prevent memory leaks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1313
			jQuery( "*", this ).add(this).each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1314
				jQuery.event.remove(this);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1315
				jQuery.removeData(this);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1316
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1317
			if (this.parentNode)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1318
				this.parentNode.removeChild( this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1319
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1320
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1321
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1322
	empty: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1323
		// Remove element nodes and prevent memory leaks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1324
		jQuery( ">*", this ).remove();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1325
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1326
		// Remove any remaining nodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1327
		while ( this.firstChild )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1328
			this.removeChild( this.firstChild );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1329
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1330
}, function(name, fn){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1331
	jQuery.fn[ name ] = function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1332
		return this.each( fn, arguments );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1333
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1334
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1335
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1336
jQuery.each([ "Height", "Width" ], function(i, name){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1337
	var type = name.toLowerCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1338
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1339
	jQuery.fn[ type ] = function( size ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1340
		// Get window width or height
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1341
		return this[0] == window ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1342
			// Opera reports document.body.client[Width/Height] properly in both quirks and standards
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1343
			jQuery.browser.opera && document.body[ "client" + name ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1344
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1345
			// Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1346
			jQuery.browser.safari && window[ "inner" + name ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1347
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1348
			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1349
			document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1350
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1351
			// Get document width or height
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1352
			this[0] == document ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1353
				// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1354
				Math.max(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1355
					Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1356
					Math.max(document.body["offset" + name], document.documentElement["offset" + name])
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1357
				) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1358
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1359
				// Get or set width or height on the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1360
				size == undefined ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1361
					// Get width or height on the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1362
					(this.length ? jQuery.css( this[0], type ) : null) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1363
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1364
					// Set the width or height on the element (default to pixels if value is unitless)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1365
					this.css( type, size.constructor == String ? size : size + "px" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1366
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1367
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1368
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1369
// Helper function used by the dimensions and offset modules
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1370
function num(elem, prop) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1371
	return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1372
}var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1373
		"(?:[\\w*_-]|\\\\.)" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1374
		"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1375
	quickChild = new RegExp("^>\\s*(" + chars + "+)"),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1376
	quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1377
	quickClass = new RegExp("^([#.]?)(" + chars + "*)");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1378
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1379
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1380
	expr: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1381
		"": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1382
		"#": function(a,i,m){return a.getAttribute("id")==m[2];},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1383
		":": {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1384
			// Position Checks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1385
			lt: function(a,i,m){return i<m[3]-0;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1386
			gt: function(a,i,m){return i>m[3]-0;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1387
			nth: function(a,i,m){return m[3]-0==i;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1388
			eq: function(a,i,m){return m[3]-0==i;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1389
			first: function(a,i){return i==0;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1390
			last: function(a,i,m,r){return i==r.length-1;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1391
			even: function(a,i){return i%2==0;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1392
			odd: function(a,i){return i%2;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1393
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1394
			// Child Checks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1395
			"first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1396
			"last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1397
			"only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1398
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1399
			// Parent Checks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1400
			parent: function(a){return a.firstChild;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1401
			empty: function(a){return !a.firstChild;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1402
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1403
			// Text Check
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1404
			contains: function(a,i,m){return (a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1405
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1406
			// Visibility
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1407
			visible: function(a){return "hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1408
			hidden: function(a){return "hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1409
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1410
			// Form attributes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1411
			enabled: function(a){return !a.disabled;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1412
			disabled: function(a){return a.disabled;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1413
			checked: function(a){return a.checked;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1414
			selected: function(a){return a.selected||jQuery.attr(a,"selected");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1415
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1416
			// Form elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1417
			text: function(a){return "text"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1418
			radio: function(a){return "radio"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1419
			checkbox: function(a){return "checkbox"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1420
			file: function(a){return "file"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1421
			password: function(a){return "password"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1422
			submit: function(a){return "submit"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1423
			image: function(a){return "image"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1424
			reset: function(a){return "reset"==a.type;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1425
			button: function(a){return "button"==a.type||jQuery.nodeName(a,"button");},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1426
			input: function(a){return /input|select|textarea|button/i.test(a.nodeName);},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1427
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1428
			// :has()
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1429
			has: function(a,i,m){return jQuery.find(m[3],a).length;},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1430
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1431
			// :header
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1432
			header: function(a){return /h\d/i.test(a.nodeName);},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1433
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1434
			// :animated
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1435
			animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1436
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1437
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1438
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1439
	// The regular expressions that power the parsing engine
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1440
	parse: [
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1441
		// Match: [@value='test'], [@foo]
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1442
		/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1443
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1444
		// Match: :contains('foo')
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1445
		/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1446
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1447
		// Match: :even, :last-child, #id, .class
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1448
		new RegExp("^([:.#]*)(" + chars + "+)")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1449
	],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1450
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1451
	multiFilter: function( expr, elems, not ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1452
		var old, cur = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1453
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1454
		while ( expr && expr != old ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1455
			old = expr;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1456
			var f = jQuery.filter( expr, elems, not );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1457
			expr = f.t.replace(/^\s*,\s*/, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1458
			cur = not ? elems = f.r : jQuery.merge( cur, f.r );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1459
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1460
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1461
		return cur;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1462
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1463
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1464
	find: function( t, context ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1465
		// Quickly handle non-string expressions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1466
		if ( typeof t != "string" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1467
			return [ t ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1468
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1469
		// check to make sure context is a DOM element or a document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1470
		if ( context && context.nodeType != 1 && context.nodeType != 9)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1471
			return [ ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1472
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1473
		// Set the correct context (if none is provided)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1474
		context = context || document;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1475
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1476
		// Initialize the search
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1477
		var ret = [context], done = [], last, nodeName;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1478
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1479
		// Continue while a selector expression exists, and while
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1480
		// we're no longer looping upon ourselves
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1481
		while ( t && last != t ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1482
			var r = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1483
			last = t;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1484
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1485
			t = jQuery.trim(t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1486
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1487
			var foundToken = false,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1488
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1489
			// An attempt at speeding up child selectors that
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1490
			// point to a specific element tag
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1491
				re = quickChild,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1492
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1493
				m = re.exec(t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1494
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1495
			if ( m ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1496
				nodeName = m[1].toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1497
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1498
				// Perform our own iteration and filter
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1499
				for ( var i = 0; ret[i]; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1500
					for ( var c = ret[i].firstChild; c; c = c.nextSibling )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1501
						if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1502
							r.push( c );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1503
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1504
				ret = r;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1505
				t = t.replace( re, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1506
				if ( t.indexOf(" ") == 0 ) continue;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1507
				foundToken = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1508
			} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1509
				re = /^([>+~])\s*(\w*)/i;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1510
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1511
				if ( (m = re.exec(t)) != null ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1512
					r = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1513
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1514
					var merge = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1515
					nodeName = m[2].toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1516
					m = m[1];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1517
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1518
					for ( var j = 0, rl = ret.length; j < rl; j++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1519
						var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1520
						for ( ; n; n = n.nextSibling )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1521
							if ( n.nodeType == 1 ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1522
								var id = jQuery.data(n);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1523
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1524
								if ( m == "~" && merge[id] ) break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1525
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1526
								if (!nodeName || n.nodeName.toUpperCase() == nodeName ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1527
									if ( m == "~" ) merge[id] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1528
									r.push( n );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1529
								}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1530
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1531
								if ( m == "+" ) break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1532
							}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1533
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1534
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1535
					ret = r;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1536
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1537
					// And remove the token
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1538
					t = jQuery.trim( t.replace( re, "" ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1539
					foundToken = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1540
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1541
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1542
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1543
			// See if there's still an expression, and that we haven't already
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1544
			// matched a token
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1545
			if ( t && !foundToken ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1546
				// Handle multiple expressions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1547
				if ( !t.indexOf(",") ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1548
					// Clean the result set
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1549
					if ( context == ret[0] ) ret.shift();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1550
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1551
					// Merge the result sets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1552
					done = jQuery.merge( done, ret );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1553
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1554
					// Reset the context
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1555
					r = ret = [context];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1556
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1557
					// Touch up the selector string
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1558
					t = " " + t.substr(1,t.length);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1559
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1560
				} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1561
					// Optimize for the case nodeName#idName
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1562
					var re2 = quickID;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1563
					var m = re2.exec(t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1564
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1565
					// Re-organize the results, so that they're consistent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1566
					if ( m ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1567
						m = [ 0, m[2], m[3], m[1] ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1568
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1569
					} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1570
						// Otherwise, do a traditional filter check for
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1571
						// ID, class, and element selectors
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1572
						re2 = quickClass;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1573
						m = re2.exec(t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1574
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1575
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1576
					m[2] = m[2].replace(/\\/g, "");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1577
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1578
					var elem = ret[ret.length-1];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1579
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1580
					// Try to do a global search by ID, where we can
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1581
					if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1582
						// Optimization for HTML document case
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1583
						var oid = elem.getElementById(m[2]);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1584
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1585
						// Do a quick check for the existence of the actual ID attribute
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1586
						// to avoid selecting by the name attribute in IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1587
						// also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1588
						if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1589
							oid = jQuery('[@id="'+m[2]+'"]', elem)[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1590
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1591
						// Do a quick check for node name (where applicable) so
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1592
						// that div#foo searches will be really fast
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1593
						ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1594
					} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1595
						// We need to find all descendant elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1596
						for ( var i = 0; ret[i]; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1597
							// Grab the tag name being searched for
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1598
							var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1599
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1600
							// Handle IE7 being really dumb about <object>s
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1601
							if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1602
								tag = "param";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1603
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1604
							r = jQuery.merge( r, ret[i].getElementsByTagName( tag ));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1605
						}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1606
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1607
						// It's faster to filter by class and be done with it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1608
						if ( m[1] == "." )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1609
							r = jQuery.classFilter( r, m[2] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1610
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1611
						// Same with ID filtering
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1612
						if ( m[1] == "#" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1613
							var tmp = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1614
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1615
							// Try to find the element with the ID
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1616
							for ( var i = 0; r[i]; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1617
								if ( r[i].getAttribute("id") == m[2] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1618
									tmp = [ r[i] ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1619
									break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1620
								}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1621
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1622
							r = tmp;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1623
						}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1624
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1625
						ret = r;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1626
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1627
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1628
					t = t.replace( re2, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1629
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1630
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1631
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1632
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1633
			// If a selector string still exists
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1634
			if ( t ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1635
				// Attempt to filter it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1636
				var val = jQuery.filter(t,r);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1637
				ret = r = val.r;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1638
				t = jQuery.trim(val.t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1639
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1640
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1641
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1642
		// An error occurred with the selector;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1643
		// just return an empty set instead
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1644
		if ( t )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1645
			ret = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1646
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1647
		// Remove the root context
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1648
		if ( ret && context == ret[0] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1649
			ret.shift();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1650
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1651
		// And combine the results
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1652
		done = jQuery.merge( done, ret );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1653
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1654
		return done;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1655
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1656
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1657
	classFilter: function(r,m,not){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1658
		m = " " + m + " ";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1659
		var tmp = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1660
		for ( var i = 0; r[i]; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1661
			var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1662
			if ( !not && pass || not && !pass )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1663
				tmp.push( r[i] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1664
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1665
		return tmp;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1666
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1667
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1668
	filter: function(t,r,not) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1669
		var last;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1670
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1671
		// Look for common filter expressions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1672
		while ( t && t != last ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1673
			last = t;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1674
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1675
			var p = jQuery.parse, m;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1676
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1677
			for ( var i = 0; p[i]; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1678
				m = p[i].exec( t );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1679
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1680
				if ( m ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1681
					// Remove what we just matched
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1682
					t = t.substring( m[0].length );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1683
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1684
					m[2] = m[2].replace(/\\/g, "");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1685
					break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1686
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1687
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1688
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1689
			if ( !m )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1690
				break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1691
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1692
			// :not() is a special case that can be optimized by
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1693
			// keeping it out of the expression list
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1694
			if ( m[1] == ":" && m[2] == "not" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1695
				// optimize if only one selector found (most common case)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1696
				r = isSimple.test( m[3] ) ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1697
					jQuery.filter(m[3], r, true).r :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1698
					jQuery( r ).not( m[3] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1699
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1700
			// We can get a big speed boost by filtering by class here
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1701
			else if ( m[1] == "." )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1702
				r = jQuery.classFilter(r, m[2], not);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1703
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1704
			else if ( m[1] == "[" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1705
				var tmp = [], type = m[3];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1706
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1707
				for ( var i = 0, rl = r.length; i < rl; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1708
					var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1709
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1710
					if ( z == null || /href|src|selected/.test(m[2]) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1711
						z = jQuery.attr(a,m[2]) || '';
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1712
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1713
					if ( (type == "" && !!z ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1714
						 type == "=" && z == m[5] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1715
						 type == "!=" && z != m[5] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1716
						 type == "^=" && z && !z.indexOf(m[5]) ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1717
						 type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1718
						 (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1719
							tmp.push( a );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1720
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1721
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1722
				r = tmp;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1723
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1724
			// We can get a speed boost by handling nth-child here
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1725
			} else if ( m[1] == ":" && m[2] == "nth-child" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1726
				var merge = {}, tmp = [],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1727
					// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1728
					test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1729
						m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1730
						!/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1731
					// calculate the numbers (first)n+(last) including if they are negative
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1732
					first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1733
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1734
				// loop through all the elements left in the jQuery object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1735
				for ( var i = 0, rl = r.length; i < rl; i++ ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1736
					var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1737
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1738
					if ( !merge[id] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1739
						var c = 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1740
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1741
						for ( var n = parentNode.firstChild; n; n = n.nextSibling )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1742
							if ( n.nodeType == 1 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1743
								n.nodeIndex = c++;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1744
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1745
						merge[id] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1746
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1747
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1748
					var add = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1749
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1750
					if ( first == 0 ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1751
						if ( node.nodeIndex == last )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1752
							add = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1753
					} else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1754
						add = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1755
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1756
					if ( add ^ not )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1757
						tmp.push( node );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1758
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1759
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1760
				r = tmp;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1761
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1762
			// Otherwise, find the expression to execute
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1763
			} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1764
				var fn = jQuery.expr[ m[1] ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1765
				if ( typeof fn == "object" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1766
					fn = fn[ m[2] ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1767
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1768
				if ( typeof fn == "string" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1769
					fn = eval("false||function(a,i){return " + fn + ";}");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1770
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1771
				// Execute it against the current filter
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1772
				r = jQuery.grep( r, function(elem, i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1773
					return fn(elem, i, m, r);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1774
				}, not );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1775
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1776
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1777
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1778
		// Return an array of filtered elements (r)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1779
		// and the modified expression string (t)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1780
		return { r: r, t: t };
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1781
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1782
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1783
	dir: function( elem, dir ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1784
		var matched = [],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1785
			cur = elem[dir];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1786
		while ( cur && cur != document ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1787
			if ( cur.nodeType == 1 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1788
				matched.push( cur );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1789
			cur = cur[dir];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1790
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1791
		return matched;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1792
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1793
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1794
	nth: function(cur,result,dir,elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1795
		result = result || 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1796
		var num = 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1797
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1798
		for ( ; cur; cur = cur[dir] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1799
			if ( cur.nodeType == 1 && ++num == result )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1800
				break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1801
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1802
		return cur;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1803
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1804
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1805
	sibling: function( n, elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1806
		var r = [];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1807
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1808
		for ( ; n; n = n.nextSibling ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1809
			if ( n.nodeType == 1 && n != elem )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1810
				r.push( n );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1811
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1812
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1813
		return r;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1814
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1815
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1816
/*
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1817
 * A number of helper functions used for managing events.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1818
 * Many of the ideas behind this code orignated from
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1819
 * Dean Edwards' addEvent library.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1820
 */
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1821
jQuery.event = {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1822
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1823
	// Bind an event to an element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1824
	// Original by Dean Edwards
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1825
	add: function(elem, types, handler, data) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1826
		if ( elem.nodeType == 3 || elem.nodeType == 8 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1827
			return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1828
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1829
		// For whatever reason, IE has trouble passing the window object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1830
		// around, causing it to be cloned in the process
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1831
		if ( jQuery.browser.msie && elem.setInterval )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1832
			elem = window;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1833
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1834
		// Make sure that the function being executed has a unique ID
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1835
		if ( !handler.guid )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1836
			handler.guid = this.guid++;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1837
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1838
		// if data is passed, bind to handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1839
		if( data != undefined ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1840
			// Create temporary function pointer to original handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1841
			var fn = handler;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1842
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1843
			// Create unique handler function, wrapped around original handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1844
			handler = this.proxy( fn, function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1845
				// Pass arguments and context to original handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1846
				return fn.apply(this, arguments);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1847
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1848
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1849
			// Store data in unique handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1850
			handler.data = data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1851
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1852
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1853
		// Init the element's event structure
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1854
		var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1855
			handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1856
				// Handle the second event of a trigger and when
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1857
				// an event is called after a page has unloaded
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1858
				if ( typeof jQuery != "undefined" && !jQuery.event.triggered )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1859
					return jQuery.event.handle.apply(arguments.callee.elem, arguments);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1860
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1861
		// Add elem as a property of the handle function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1862
		// This is to prevent a memory leak with non-native
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1863
		// event in IE.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1864
		handle.elem = elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1865
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1866
		// Handle multiple events separated by a space
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1867
		// jQuery(...).bind("mouseover mouseout", fn);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1868
		jQuery.each(types.split(/\s+/), function(index, type) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1869
			// Namespaced event handlers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1870
			var parts = type.split(".");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1871
			type = parts[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1872
			handler.type = parts[1];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1873
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1874
			// Get the current list of functions bound to this event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1875
			var handlers = events[type];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1876
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1877
			// Init the event handler queue
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1878
			if (!handlers) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1879
				handlers = events[type] = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1880
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1881
				// Check for a special event handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1882
				// Only use addEventListener/attachEvent if the special
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1883
				// events handler returns false
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1884
				if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1885
					// Bind the global event handler to the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1886
					if (elem.addEventListener)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1887
						elem.addEventListener(type, handle, false);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1888
					else if (elem.attachEvent)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1889
						elem.attachEvent("on" + type, handle);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1890
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1891
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1892
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1893
			// Add the function to the element's handler list
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1894
			handlers[handler.guid] = handler;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1895
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1896
			// Keep track of which events have been used, for global triggering
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1897
			jQuery.event.global[type] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1898
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1899
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1900
		// Nullify elem to prevent memory leaks in IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1901
		elem = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1902
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1903
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1904
	guid: 1,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1905
	global: {},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1906
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1907
	// Detach an event or set of events from an element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1908
	remove: function(elem, types, handler) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1909
		// don't do events on text and comment nodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1910
		if ( elem.nodeType == 3 || elem.nodeType == 8 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1911
			return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1912
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1913
		var events = jQuery.data(elem, "events"), ret, index;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1914
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1915
		if ( events ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1916
			// Unbind all events for the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1917
			if ( types == undefined || (typeof types == "string" && types.charAt(0) == ".") )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1918
				for ( var type in events )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1919
					this.remove( elem, type + (types || "") );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1920
			else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1921
				// types is actually an event object here
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1922
				if ( types.type ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1923
					handler = types.handler;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1924
					types = types.type;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1925
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1926
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1927
				// Handle multiple events seperated by a space
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1928
				// jQuery(...).unbind("mouseover mouseout", fn);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1929
				jQuery.each(types.split(/\s+/), function(index, type){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1930
					// Namespaced event handlers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1931
					var parts = type.split(".");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1932
					type = parts[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1933
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1934
					if ( events[type] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1935
						// remove the given handler for the given type
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1936
						if ( handler )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1937
							delete events[type][handler.guid];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1938
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1939
						// remove all handlers for the given type
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1940
						else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1941
							for ( handler in events[type] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1942
								// Handle the removal of namespaced events
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1943
								if ( !parts[1] || events[type][handler].type == parts[1] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1944
									delete events[type][handler];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1945
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1946
						// remove generic event handler if no more handlers exist
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1947
						for ( ret in events[type] ) break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1948
						if ( !ret ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1949
							if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1950
								if (elem.removeEventListener)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1951
									elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1952
								else if (elem.detachEvent)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1953
									elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1954
							}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1955
							ret = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1956
							delete events[type];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1957
						}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1958
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1959
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1960
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1961
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1962
			// Remove the expando if it's no longer used
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1963
			for ( ret in events ) break;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1964
			if ( !ret ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1965
				var handle = jQuery.data( elem, "handle" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1966
				if ( handle ) handle.elem = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1967
				jQuery.removeData( elem, "events" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1968
				jQuery.removeData( elem, "handle" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1969
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1970
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1971
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1972
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1973
	trigger: function(type, data, elem, donative, extra) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1974
		// Clone the incoming data, if any
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1975
		data = jQuery.makeArray(data);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1976
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1977
		if ( type.indexOf("!") >= 0 ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1978
			type = type.slice(0, -1);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1979
			var exclusive = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1980
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1981
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1982
		// Handle a global trigger
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1983
		if ( !elem ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1984
			// Only trigger if we've ever bound an event for it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1985
			if ( this.global[type] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1986
				jQuery("*").add([window, document]).trigger(type, data);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1987
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1988
		// Handle triggering a single element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1989
		} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1990
			// don't do events on text and comment nodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1991
			if ( elem.nodeType == 3 || elem.nodeType == 8 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1992
				return undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1993
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1994
			var val, ret, fn = jQuery.isFunction( elem[ type ] || null ),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1995
				// Check to see if we need to provide a fake event, or not
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1996
				event = !data[0] || !data[0].preventDefault;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1997
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1998
			// Pass along a fake event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1999
			if ( event ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2000
				data.unshift({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2001
					type: type,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2002
					target: elem,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2003
					preventDefault: function(){},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2004
					stopPropagation: function(){},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2005
					timeStamp: now()
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2006
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2007
				data[0][expando] = true; // no need to fix fake event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2008
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2009
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2010
			// Enforce the right trigger type
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2011
			data[0].type = type;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2012
			if ( exclusive )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2013
				data[0].exclusive = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2014
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2015
			// Trigger the event, it is assumed that "handle" is a function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2016
			var handle = jQuery.data(elem, "handle");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2017
			if ( handle )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2018
				val = handle.apply( elem, data );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2019
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2020
			// Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2021
			if ( (!fn || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2022
				val = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2023
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2024
			// Extra functions don't get the custom event object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2025
			if ( event )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2026
				data.shift();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2027
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2028
			// Handle triggering of extra function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2029
			if ( extra && jQuery.isFunction( extra ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2030
				// call the extra function and tack the current return value on the end for possible inspection
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2031
				ret = extra.apply( elem, val == null ? data : data.concat( val ) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2032
				// if anything is returned, give it precedence and have it overwrite the previous value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2033
				if (ret !== undefined)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2034
					val = ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2035
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2036
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2037
			// Trigger the native events (except for clicks on links)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2038
			if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2039
				this.triggered = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2040
				try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2041
					elem[ type ]();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2042
				// prevent IE from throwing an error for some hidden elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2043
				} catch (e) {}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2044
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2045
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2046
			this.triggered = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2047
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2048
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2049
		return val;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2050
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2051
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2052
	handle: function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2053
		// returned undefined or false
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2054
		var val, ret, namespace, all, handlers;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2055
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2056
		event = arguments[0] = jQuery.event.fix( event || window.event );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2057
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2058
		// Namespaced event handlers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2059
		namespace = event.type.split(".");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2060
		event.type = namespace[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2061
		namespace = namespace[1];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2062
		// Cache this now, all = true means, any handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2063
		all = !namespace && !event.exclusive;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2064
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2065
		handlers = ( jQuery.data(this, "events") || {} )[event.type];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2066
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2067
		for ( var j in handlers ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2068
			var handler = handlers[j];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2069
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2070
			// Filter the functions by class
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2071
			if ( all || handler.type == namespace ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2072
				// Pass in a reference to the handler function itself
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2073
				// So that we can later remove it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2074
				event.handler = handler;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2075
				event.data = handler.data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2076
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2077
				ret = handler.apply( this, arguments );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2078
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2079
				if ( val !== false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2080
					val = ret;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2081
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2082
				if ( ret === false ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2083
					event.preventDefault();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2084
					event.stopPropagation();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2085
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2086
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2087
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2088
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2089
		return val;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2090
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2091
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2092
	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 timeStamp toElement type view wheelDelta which".split(" "),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2093
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2094
	fix: function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2095
		if ( event[expando] == true )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2096
			return event;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2097
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2098
		// store a copy of the original event object
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2099
		// and "clone" to set read-only properties
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2100
		var originalEvent = event;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2101
		event = { originalEvent: originalEvent };
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2102
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2103
		for ( var i = this.props.length, prop; i; ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2104
			prop = this.props[ --i ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2105
			event[ prop ] = originalEvent[ prop ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2106
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2107
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2108
		// Mark it as fixed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2109
		event[expando] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2110
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2111
		// add preventDefault and stopPropagation since
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2112
		// they will not work on the clone
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2113
		event.preventDefault = function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2114
			// if preventDefault exists run it on the original event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2115
			if (originalEvent.preventDefault)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2116
				originalEvent.preventDefault();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2117
			// otherwise set the returnValue property of the original event to false (IE)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2118
			originalEvent.returnValue = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2119
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2120
		event.stopPropagation = function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2121
			// if stopPropagation exists run it on the original event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2122
			if (originalEvent.stopPropagation)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2123
				originalEvent.stopPropagation();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2124
			// otherwise set the cancelBubble property of the original event to true (IE)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2125
			originalEvent.cancelBubble = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2126
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2127
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2128
		// Fix timeStamp
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2129
		event.timeStamp = event.timeStamp || now();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2130
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2131
		// Fix target property, if necessary
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2132
		if ( !event.target )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2133
			event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2134
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2135
		// check if target is a textnode (safari)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2136
		if ( event.target.nodeType == 3 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2137
			event.target = event.target.parentNode;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2138
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2139
		// Add relatedTarget, if necessary
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2140
		if ( !event.relatedTarget && event.fromElement )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2141
			event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2142
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2143
		// Calculate pageX/Y if missing and clientX/Y available
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2144
		if ( event.pageX == null && event.clientX != null ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2145
			var doc = document.documentElement, body = document.body;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2146
			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2147
			event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2148
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2149
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2150
		// Add which for key events
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2151
		if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2152
			event.which = event.charCode || event.keyCode;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2153
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2154
		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2155
		if ( !event.metaKey && event.ctrlKey )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2156
			event.metaKey = event.ctrlKey;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2157
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2158
		// Add which for click: 1 == left; 2 == middle; 3 == right
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2159
		// Note: button is not normalized, so don't use it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2160
		if ( !event.which && event.button )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2161
			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2162
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2163
		return event;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2164
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2165
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2166
	proxy: function( fn, proxy ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2167
		// Set the guid of unique handler to the same of original handler, so it can be removed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2168
		proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2169
		// So proxy can be declared as an argument
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2170
		return proxy;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2171
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2172
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2173
	special: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2174
		ready: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2175
			setup: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2176
				// Make sure the ready event is setup
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2177
				bindReady();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2178
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2179
			},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2180
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2181
			teardown: function() { return; }
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2182
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2183
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2184
		mouseenter: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2185
			setup: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2186
				if ( jQuery.browser.msie ) return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2187
				jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2188
				return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2189
			},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2190
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2191
			teardown: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2192
				if ( jQuery.browser.msie ) return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2193
				jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2194
				return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2195
			},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2196
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2197
			handler: function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2198
				// If we actually just moused on to a sub-element, ignore it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2199
				if ( withinElement(event, this) ) return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2200
				// Execute the right handlers by setting the event type to mouseenter
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2201
				event.type = "mouseenter";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2202
				return jQuery.event.handle.apply(this, arguments);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2203
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2204
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2205
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2206
		mouseleave: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2207
			setup: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2208
				if ( jQuery.browser.msie ) return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2209
				jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2210
				return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2211
			},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2212
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2213
			teardown: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2214
				if ( jQuery.browser.msie ) return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2215
				jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2216
				return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2217
			},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2218
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2219
			handler: function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2220
				// If we actually just moused on to a sub-element, ignore it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2221
				if ( withinElement(event, this) ) return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2222
				// Execute the right handlers by setting the event type to mouseleave
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2223
				event.type = "mouseleave";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2224
				return jQuery.event.handle.apply(this, arguments);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2225
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2226
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2227
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2228
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2229
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2230
jQuery.fn.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2231
	bind: function( type, data, fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2232
		return type == "unload" ? this.one(type, data, fn) : this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2233
			jQuery.event.add( this, type, fn || data, fn && data );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2234
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2235
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2236
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2237
	one: function( type, data, fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2238
		var one = jQuery.event.proxy( fn || data, function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2239
			jQuery(this).unbind(event, one);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2240
			return (fn || data).apply( this, arguments );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2241
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2242
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2243
			jQuery.event.add( this, type, one, fn && data);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2244
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2245
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2246
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2247
	unbind: function( type, fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2248
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2249
			jQuery.event.remove( this, type, fn );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2250
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2251
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2252
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2253
	trigger: function( type, data, fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2254
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2255
			jQuery.event.trigger( type, data, this, true, fn );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2256
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2257
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2258
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2259
	triggerHandler: function( type, data, fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2260
		return this[0] && jQuery.event.trigger( type, data, this[0], false, fn );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2261
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2262
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2263
	toggle: function( fn ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2264
		// Save reference to arguments for access in closure
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2265
		var args = arguments, i = 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2266
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2267
		// link all the functions, so any of them can unbind this click handler
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2268
		while( i < args.length )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2269
			jQuery.event.proxy( fn, args[i++] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2270
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2271
		return this.click( jQuery.event.proxy( fn, function(event) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2272
			// Figure out which function to execute
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2273
			this.lastToggle = ( this.lastToggle || 0 ) % i;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2274
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2275
			// Make sure that clicks stop
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2276
			event.preventDefault();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2277
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2278
			// and execute the function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2279
			return args[ this.lastToggle++ ].apply( this, arguments ) || false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2280
		}));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2281
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2282
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2283
	hover: function(fnOver, fnOut) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2284
		return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2285
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2286
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2287
	ready: function(fn) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2288
		// Attach the listeners
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2289
		bindReady();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2290
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2291
		// If the DOM is already ready
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2292
		if ( jQuery.isReady )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2293
			// Execute the function immediately
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2294
			fn.call( document, jQuery );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2295
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2296
		// Otherwise, remember the function for later
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2297
		else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2298
			// Add the function to the wait list
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2299
			jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2300
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2301
		return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2302
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2303
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2304
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2305
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2306
	isReady: false,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2307
	readyList: [],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2308
	// Handle when the DOM is ready
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2309
	ready: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2310
		// Make sure that the DOM is not already loaded
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2311
		if ( !jQuery.isReady ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2312
			// Remember that the DOM is ready
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2313
			jQuery.isReady = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2314
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2315
			// If there are functions bound, to execute
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2316
			if ( jQuery.readyList ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2317
				// Execute all of them
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2318
				jQuery.each( jQuery.readyList, function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2319
					this.call( document );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2320
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2321
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2322
				// Reset the list of functions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2323
				jQuery.readyList = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2324
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2325
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2326
			// Trigger any bound ready events
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2327
			jQuery(document).triggerHandler("ready");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2328
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2329
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2330
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2331
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2332
var readyBound = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2333
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2334
function bindReady(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2335
	if ( readyBound ) return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2336
	readyBound = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2337
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2338
	// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2339
	if ( document.addEventListener && !jQuery.browser.opera)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2340
		// Use the handy event callback
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2341
		document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2342
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2343
	// If IE is used and is not in a frame
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2344
	// Continually check to see if the document is ready
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2345
	if ( jQuery.browser.msie && window == top ) (function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2346
		if (jQuery.isReady) return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2347
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2348
			// If IE is used, use the trick by Diego Perini
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2349
			// http://javascript.nwbox.com/IEContentLoaded/
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2350
			document.documentElement.doScroll("left");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2351
		} catch( error ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2352
			setTimeout( arguments.callee, 0 );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2353
			return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2354
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2355
		// and execute any waiting functions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2356
		jQuery.ready();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2357
	})();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2358
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2359
	if ( jQuery.browser.opera )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2360
		document.addEventListener( "DOMContentLoaded", function () {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2361
			if (jQuery.isReady) return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2362
			for (var i = 0; i < document.styleSheets.length; i++)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2363
				if (document.styleSheets[i].disabled) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2364
					setTimeout( arguments.callee, 0 );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2365
					return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2366
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2367
			// and execute any waiting functions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2368
			jQuery.ready();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2369
		}, false);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2370
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2371
	if ( jQuery.browser.safari ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2372
		var numStyles;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2373
		(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2374
			if (jQuery.isReady) return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2375
			if ( document.readyState != "loaded" && document.readyState != "complete" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2376
				setTimeout( arguments.callee, 0 );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2377
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2378
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2379
			if ( numStyles === undefined )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2380
				numStyles = jQuery("style, link[rel=stylesheet]").length;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2381
			if ( document.styleSheets.length != numStyles ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2382
				setTimeout( arguments.callee, 0 );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2383
				return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2384
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2385
			// and execute any waiting functions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2386
			jQuery.ready();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2387
		})();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2388
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2389
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2390
	// A fallback to window.onload, that will always work
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2391
	jQuery.event.add( window, "load", jQuery.ready );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2392
}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2393
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2394
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2395
	"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2396
	"submit,keydown,keypress,keyup,error").split(","), function(i, name){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2397
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2398
	// Handle event binding
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2399
	jQuery.fn[name] = function(fn){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2400
		return fn ? this.bind(name, fn) : this.trigger(name);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2401
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2402
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2403
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2404
// Checks if an event happened on an element within another element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2405
// Used in jQuery.event.special.mouseenter and mouseleave handlers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2406
var withinElement = function(event, elem) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2407
	// Check if mouse(over|out) are still within the same parent element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2408
	var parent = event.relatedTarget;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2409
	// Traverse up the tree
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2410
	while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; }
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2411
	// Return true if we actually just moused on to a sub-element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2412
	return parent == elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2413
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2414
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2415
// Prevent memory leaks in IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2416
// And prevent errors on refresh with events like mouseover in other browsers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2417
// Window isn't included so as not to unbind existing unload events
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2418
jQuery(window).bind("unload", function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2419
	jQuery("*").add(document).unbind();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2420
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2421
jQuery.fn.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2422
	// Keep a copy of the old load
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2423
	_load: jQuery.fn.load,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2424
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2425
	load: function( url, params, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2426
		if ( typeof url != 'string' )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2427
			return this._load( url );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2428
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2429
		var off = url.indexOf(" ");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2430
		if ( off >= 0 ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2431
			var selector = url.slice(off, url.length);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2432
			url = url.slice(0, off);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2433
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2434
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2435
		callback = callback || function(){};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2436
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2437
		// Default to a GET request
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2438
		var type = "GET";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2439
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2440
		// If the second parameter was provided
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2441
		if ( params )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2442
			// If it's a function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2443
			if ( jQuery.isFunction( params ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2444
				// We assume that it's the callback
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2445
				callback = params;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2446
				params = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2447
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2448
			// Otherwise, build a param string
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2449
			} else if( typeof params == 'object' ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2450
				params = jQuery.param( params );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2451
				type = "POST";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2452
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2453
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2454
		var self = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2455
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2456
		// Request the remote document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2457
		jQuery.ajax({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2458
			url: url,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2459
			type: type,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2460
			dataType: "html",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2461
			data: params,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2462
			complete: function(res, status){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2463
				// If successful, inject the HTML into all the matched elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2464
				if ( status == "success" || status == "notmodified" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2465
					// See if a selector was specified
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2466
					self.html( selector ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2467
						// Create a dummy div to hold the results
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2468
						jQuery("<div/>")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2469
							// inject the contents of the document in, removing the scripts
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2470
							// to avoid any 'Permission Denied' errors in IE
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2471
							.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2472
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2473
							// Locate the specified elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2474
							.find(selector) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2475
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2476
						// If not, just inject the full result
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2477
						res.responseText );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2478
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2479
				self.each( callback, [res.responseText, status, res] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2480
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2481
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2482
		return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2483
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2484
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2485
	serialize: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2486
		return jQuery.param(this.serializeArray());
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2487
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2488
	serializeArray: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2489
		return this.map(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2490
			return jQuery.nodeName(this, "form") ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2491
				jQuery.makeArray(this.elements) : this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2492
		})
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2493
		.filter(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2494
			return this.name && !this.disabled &&
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2495
				(this.checked || /select|textarea/i.test(this.nodeName) ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2496
					/text|hidden|password/i.test(this.type));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2497
		})
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2498
		.map(function(i, elem){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2499
			var val = jQuery(this).val();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2500
			return val == null ? null :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2501
				val.constructor == Array ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2502
					jQuery.map( val, function(val, i){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2503
						return {name: elem.name, value: val};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2504
					}) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2505
					{name: elem.name, value: val};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2506
		}).get();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2507
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2508
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2509
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2510
// Attach a bunch of functions for handling common AJAX events
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2511
jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2512
	jQuery.fn[o] = function(f){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2513
		return this.bind(o, f);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2514
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2515
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2516
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2517
var jsc = now();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2518
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2519
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2520
	get: function( url, data, callback, type ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2521
		// shift arguments if data argument was ommited
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2522
		if ( jQuery.isFunction( data ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2523
			callback = data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2524
			data = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2525
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2526
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2527
		return jQuery.ajax({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2528
			type: "GET",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2529
			url: url,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2530
			data: data,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2531
			success: callback,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2532
			dataType: type
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2533
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2534
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2535
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2536
	getScript: function( url, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2537
		return jQuery.get(url, null, callback, "script");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2538
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2539
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2540
	getJSON: function( url, data, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2541
		return jQuery.get(url, data, callback, "json");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2542
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2543
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2544
	post: function( url, data, callback, type ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2545
		if ( jQuery.isFunction( data ) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2546
			callback = data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2547
			data = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2548
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2549
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2550
		return jQuery.ajax({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2551
			type: "POST",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2552
			url: url,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2553
			data: data,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2554
			success: callback,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2555
			dataType: type
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2556
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2557
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2558
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2559
	ajaxSetup: function( settings ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2560
		jQuery.extend( jQuery.ajaxSettings, settings );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2561
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2562
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2563
	ajaxSettings: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2564
		url: location.href,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2565
		global: true,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2566
		type: "GET",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2567
		timeout: 0,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2568
		contentType: "application/x-www-form-urlencoded",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2569
		processData: true,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2570
		async: true,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2571
		data: null,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2572
		username: null,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2573
		password: null,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2574
		accepts: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2575
			xml: "application/xml, text/xml",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2576
			html: "text/html",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2577
			script: "text/javascript, application/javascript",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2578
			json: "application/json, text/javascript",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2579
			text: "text/plain",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2580
			_default: "*/*"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2581
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2582
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2583
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2584
	// Last-Modified header cache for next request
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2585
	lastModified: {},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2586
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2587
	ajax: function( s ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2588
		// Extend the settings, but re-extend 's' so that it can be
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2589
		// checked again later (in the test suite, specifically)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2590
		s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2591
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2592
		var jsonp, jsre = /=\?(&|$)/g, status, data,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2593
			type = s.type.toUpperCase();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2594
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2595
		// convert data if not already a string
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2596
		if ( s.data && s.processData && typeof s.data != "string" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2597
			s.data = jQuery.param(s.data);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2598
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2599
		// Handle JSONP Parameter Callbacks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2600
		if ( s.dataType == "jsonp" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2601
			if ( type == "GET" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2602
				if ( !s.url.match(jsre) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2603
					s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2604
			} else if ( !s.data || !s.data.match(jsre) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2605
				s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2606
			s.dataType = "json";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2607
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2608
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2609
		// Build temporary JSONP function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2610
		if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2611
			jsonp = "jsonp" + jsc++;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2612
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2613
			// Replace the =? sequence both in the query string and the data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2614
			if ( s.data )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2615
				s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2616
			s.url = s.url.replace(jsre, "=" + jsonp + "$1");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2617
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2618
			// We need to make sure
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2619
			// that a JSONP style response is executed properly
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2620
			s.dataType = "script";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2621
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2622
			// Handle JSONP-style loading
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2623
			window[ jsonp ] = function(tmp){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2624
				data = tmp;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2625
				success();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2626
				complete();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2627
				// Garbage collect
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2628
				window[ jsonp ] = undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2629
				try{ delete window[ jsonp ]; } catch(e){}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2630
				if ( head )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2631
					head.removeChild( script );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2632
			};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2633
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2634
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2635
		if ( s.dataType == "script" && s.cache == null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2636
			s.cache = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2637
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2638
		if ( s.cache === false && type == "GET" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2639
			var ts = now();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2640
			// try replacing _= if it is there
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2641
			var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2642
			// if nothing was replaced, add timestamp to the end
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2643
			s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2644
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2645
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2646
		// If data is available, append data to url for get requests
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2647
		if ( s.data && type == "GET" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2648
			s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2649
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2650
			// IE likes to send both get and post data, prevent this
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2651
			s.data = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2652
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2653
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2654
		// Watch for a new set of requests
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2655
		if ( s.global && ! jQuery.active++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2656
			jQuery.event.trigger( "ajaxStart" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2657
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2658
		// Matches an absolute URL, and saves the domain
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2659
		var remote = /^(?:\w+:)?\/\/([^\/?#]+)/;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2660
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2661
		// If we're requesting a remote document
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2662
		// and trying to load JSON or Script with a GET
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2663
		if ( s.dataType == "script" && type == "GET"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2664
				&& remote.test(s.url) && remote.exec(s.url)[1] != location.host ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2665
			var head = document.getElementsByTagName("head")[0];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2666
			var script = document.createElement("script");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2667
			script.src = s.url;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2668
			if (s.scriptCharset)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2669
				script.charset = s.scriptCharset;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2670
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2671
			// Handle Script loading
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2672
			if ( !jsonp ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2673
				var done = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2674
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2675
				// Attach handlers for all browsers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2676
				script.onload = script.onreadystatechange = function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2677
					if ( !done && (!this.readyState ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2678
							this.readyState == "loaded" || this.readyState == "complete") ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2679
						done = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2680
						success();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2681
						complete();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2682
						head.removeChild( script );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2683
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2684
				};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2685
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2686
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2687
			head.appendChild(script);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2688
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2689
			// We handle everything using the script element injection
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2690
			return undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2691
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2692
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2693
		var requestDone = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2694
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2695
		// Create the request object; Microsoft failed to properly
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2696
		// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2697
		var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2698
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2699
		// Open the socket
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2700
		// Passing null username, generates a login popup on Opera (#2865)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2701
		if( s.username )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2702
			xhr.open(type, s.url, s.async, s.username, s.password);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2703
		else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2704
			xhr.open(type, s.url, s.async);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2705
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2706
		// Need an extra try/catch for cross domain requests in Firefox 3
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2707
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2708
			// Set the correct header, if data is being sent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2709
			if ( s.data )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2710
				xhr.setRequestHeader("Content-Type", s.contentType);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2711
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2712
			// Set the If-Modified-Since header, if ifModified mode.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2713
			if ( s.ifModified )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2714
				xhr.setRequestHeader("If-Modified-Since",
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2715
					jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2716
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2717
			// Set header so the called script knows that it's an XMLHttpRequest
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2718
			xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2719
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2720
			// Set the Accepts header for the server, depending on the dataType
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2721
			xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2722
				s.accepts[ s.dataType ] + ", */*" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2723
				s.accepts._default );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2724
		} catch(e){}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2725
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2726
		// Allow custom headers/mimetypes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2727
		if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2728
			// cleanup active request counter
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2729
			s.global && jQuery.active--;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2730
			// close opended socket
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2731
			xhr.abort();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2732
			return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2733
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2734
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2735
		if ( s.global )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2736
			jQuery.event.trigger("ajaxSend", [xhr, s]);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2737
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2738
		// Wait for a response to come back
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2739
		var onreadystatechange = function(isTimeout){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2740
			// The transfer is complete and the data is available, or the request timed out
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2741
			if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2742
				requestDone = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2743
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2744
				// clear poll interval
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2745
				if (ival) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2746
					clearInterval(ival);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2747
					ival = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2748
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2749
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2750
				status = isTimeout == "timeout" ? "timeout" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2751
					!jQuery.httpSuccess( xhr ) ? "error" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2752
					s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2753
					"success";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2754
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2755
				if ( status == "success" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2756
					// Watch for, and catch, XML document parse errors
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2757
					try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2758
						// process the data (runs the xml through httpData regardless of callback)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2759
						data = jQuery.httpData( xhr, s.dataType, s.dataFilter );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2760
					} catch(e) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2761
						status = "parsererror";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2762
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2763
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2764
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2765
				// Make sure that the request was successful or notmodified
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2766
				if ( status == "success" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2767
					// Cache Last-Modified header, if ifModified mode.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2768
					var modRes;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2769
					try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2770
						modRes = xhr.getResponseHeader("Last-Modified");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2771
					} catch(e) {} // swallow exception thrown by FF if header is not available
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2772
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2773
					if ( s.ifModified && modRes )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2774
						jQuery.lastModified[s.url] = modRes;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2775
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2776
					// JSONP handles its own success callback
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2777
					if ( !jsonp )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2778
						success();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2779
				} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2780
					jQuery.handleError(s, xhr, status);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2781
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2782
				// Fire the complete handlers
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2783
				complete();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2784
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2785
				// Stop memory leaks
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2786
				if ( s.async )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2787
					xhr = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2788
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2789
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2790
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2791
		if ( s.async ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2792
			// don't attach the handler to the request, just poll it instead
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2793
			var ival = setInterval(onreadystatechange, 13);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2794
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2795
			// Timeout checker
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2796
			if ( s.timeout > 0 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2797
				setTimeout(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2798
					// Check to see if the request is still happening
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2799
					if ( xhr ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2800
						// Cancel the request
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2801
						xhr.abort();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2802
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2803
						if( !requestDone )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2804
							onreadystatechange( "timeout" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2805
					}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2806
				}, s.timeout);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2807
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2808
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2809
		// Send the data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2810
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2811
			xhr.send(s.data);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2812
		} catch(e) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2813
			jQuery.handleError(s, xhr, null, e);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2814
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2815
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2816
		// firefox 1.5 doesn't fire statechange for sync requests
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2817
		if ( !s.async )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2818
			onreadystatechange();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2819
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2820
		function success(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2821
			// If a local callback was specified, fire it and pass it the data
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2822
			if ( s.success )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2823
				s.success( data, status );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2824
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2825
			// Fire the global callback
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2826
			if ( s.global )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2827
				jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2828
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2829
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2830
		function complete(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2831
			// Process result
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2832
			if ( s.complete )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2833
				s.complete(xhr, status);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2834
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2835
			// The request was completed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2836
			if ( s.global )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2837
				jQuery.event.trigger( "ajaxComplete", [xhr, s] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2838
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2839
			// Handle the global AJAX counter
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2840
			if ( s.global && ! --jQuery.active )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2841
				jQuery.event.trigger( "ajaxStop" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2842
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2843
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2844
		// return XMLHttpRequest to allow aborting the request etc.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2845
		return xhr;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2846
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2847
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2848
	handleError: function( s, xhr, status, e ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2849
		// If a local callback was specified, fire it
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2850
		if ( s.error ) s.error( xhr, status, e );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2851
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2852
		// Fire the global callback
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2853
		if ( s.global )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2854
			jQuery.event.trigger( "ajaxError", [xhr, s, e] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2855
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2856
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2857
	// Counter for holding the number of active queries
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2858
	active: 0,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2859
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2860
	// Determines if an XMLHttpRequest was successful or not
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2861
	httpSuccess: function( xhr ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2862
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2863
			// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2864
			return !xhr.status && location.protocol == "file:" ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2865
				( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223 ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2866
				jQuery.browser.safari && xhr.status == undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2867
		} catch(e){}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2868
		return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2869
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2870
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2871
	// Determines if an XMLHttpRequest returns NotModified
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2872
	httpNotModified: function( xhr, url ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2873
		try {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2874
			var xhrRes = xhr.getResponseHeader("Last-Modified");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2875
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2876
			// Firefox always returns 200. check Last-Modified date
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2877
			return xhr.status == 304 || xhrRes == jQuery.lastModified[url] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2878
				jQuery.browser.safari && xhr.status == undefined;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2879
		} catch(e){}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2880
		return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2881
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2882
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2883
	httpData: function( xhr, type, filter ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2884
		var ct = xhr.getResponseHeader("content-type"),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2885
			xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2886
			data = xml ? xhr.responseXML : xhr.responseText;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2887
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2888
		if ( xml && data.documentElement.tagName == "parsererror" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2889
			throw "parsererror";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2890
			
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2891
		// Allow a pre-filtering function to sanitize the response
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2892
		if( filter )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2893
			data = filter( data, type );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2894
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2895
		// If the type is "script", eval it in global context
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2896
		if ( type == "script" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2897
			jQuery.globalEval( data );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2898
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2899
		// Get the JavaScript object, if JSON is used.
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2900
		if ( type == "json" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2901
			data = eval("(" + data + ")");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2902
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2903
		return data;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2904
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2905
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2906
	// Serialize an array of form elements or a set of
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2907
	// key/values into a query string
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2908
	param: function( a ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2909
		var s = [ ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2910
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2911
		function add( key, value ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2912
			s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2913
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2914
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2915
		// If an array was passed in, assume that it is an array
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2916
		// of form elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2917
		if ( a.constructor == Array || a.jquery )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2918
			// Serialize the form elements
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2919
			jQuery.each( a, function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2920
				add( this.name, this.value );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2921
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2922
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2923
		// Otherwise, assume that it's an object of key/value pairs
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2924
		else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2925
			// Serialize the key/values
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2926
			for ( var j in a )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2927
				// If the value is an array then the key names need to be repeated
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2928
				if ( a[j] && a[j].constructor == Array )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2929
					jQuery.each( a[j], function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2930
						add( j, this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2931
					});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2932
				else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2933
					add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2934
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2935
		// Return the resulting serialization
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2936
		return s.join("&").replace(/%20/g, "+");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2937
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2938
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2939
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2940
jQuery.fn.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2941
	show: function(speed,callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2942
		return speed ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2943
			this.animate({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2944
				height: "show", width: "show", opacity: "show"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2945
			}, speed, callback) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2946
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2947
			this.filter(":hidden").each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2948
				this.style.display = this.oldblock || "";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2949
				if ( jQuery.css(this,"display") == "none" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2950
					var elem = jQuery("<" + this.tagName + " />").appendTo("body");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2951
					this.style.display = elem.css("display");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2952
					// handle an edge condition where css is - div { display:none; } or similar
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2953
					if (this.style.display == "none")
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2954
						this.style.display = "block";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2955
					elem.remove();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2956
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2957
			}).end();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2958
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2959
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2960
	hide: function(speed,callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2961
		return speed ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2962
			this.animate({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2963
				height: "hide", width: "hide", opacity: "hide"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2964
			}, speed, callback) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2965
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2966
			this.filter(":visible").each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2967
				this.oldblock = this.oldblock || jQuery.css(this,"display");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2968
				this.style.display = "none";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2969
			}).end();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2970
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2971
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2972
	// Save the old toggle function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2973
	_toggle: jQuery.fn.toggle,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2974
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2975
	toggle: function( fn, fn2 ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2976
		return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2977
			this._toggle.apply( this, arguments ) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2978
			fn ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2979
				this.animate({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2980
					height: "toggle", width: "toggle", opacity: "toggle"
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2981
				}, fn, fn2) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2982
				this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2983
					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2984
				});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2985
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2986
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2987
	slideDown: function(speed,callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2988
		return this.animate({height: "show"}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2989
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2990
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2991
	slideUp: function(speed,callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2992
		return this.animate({height: "hide"}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2993
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2994
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2995
	slideToggle: function(speed, callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2996
		return this.animate({height: "toggle"}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2997
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2998
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2999
	fadeIn: function(speed, callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3000
		return this.animate({opacity: "show"}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3001
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3002
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3003
	fadeOut: function(speed, callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3004
		return this.animate({opacity: "hide"}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3005
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3006
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3007
	fadeTo: function(speed,to,callback){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3008
		return this.animate({opacity: to}, speed, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3009
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3010
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3011
	animate: function( prop, speed, easing, callback ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3012
		var optall = jQuery.speed(speed, easing, callback);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3013
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3014
		return this[ optall.queue === false ? "each" : "queue" ](function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3015
			if ( this.nodeType != 1)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3016
				return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3017
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3018
			var opt = jQuery.extend({}, optall), p,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3019
				hidden = jQuery(this).is(":hidden"), self = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3020
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3021
			for ( p in prop ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3022
				if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3023
					return opt.complete.call(this);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3024
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3025
				if ( p == "height" || p == "width" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3026
					// Store display property
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3027
					opt.display = jQuery.css(this, "display");
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3028
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3029
					// Make sure that nothing sneaks out
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3030
					opt.overflow = this.style.overflow;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3031
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3032
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3033
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3034
			if ( opt.overflow != null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3035
				this.style.overflow = "hidden";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3036
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3037
			opt.curAnim = jQuery.extend({}, prop);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3038
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3039
			jQuery.each( prop, function(name, val){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3040
				var e = new jQuery.fx( self, opt, name );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3041
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3042
				if ( /toggle|show|hide/.test(val) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3043
					e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3044
				else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3045
					var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3046
						start = e.cur(true) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3047
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3048
					if ( parts ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3049
						var end = parseFloat(parts[2]),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3050
							unit = parts[3] || "px";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3051
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3052
						// We need to compute starting value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3053
						if ( unit != "px" ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3054
							self.style[ name ] = (end || 1) + unit;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3055
							start = ((end || 1) / e.cur(true)) * start;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3056
							self.style[ name ] = start + unit;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3057
						}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3058
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3059
						// If a +=/-= token was provided, we're doing a relative animation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3060
						if ( parts[1] )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3061
							end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3062
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3063
						e.custom( start, end, unit );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3064
					} else
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3065
						e.custom( start, val, "" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3066
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3067
			});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3068
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3069
			// For JS strict compliance
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3070
			return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3071
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3072
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3073
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3074
	queue: function(type, fn){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3075
		if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3076
			fn = type;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3077
			type = "fx";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3078
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3079
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3080
		if ( !type || (typeof type == "string" && !fn) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3081
			return queue( this[0], type );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3082
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3083
		return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3084
			if ( fn.constructor == Array )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3085
				queue(this, type, fn);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3086
			else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3087
				queue(this, type).push( fn );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3088
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3089
				if ( queue(this, type).length == 1 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3090
					fn.call(this);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3091
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3092
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3093
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3094
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3095
	stop: function(clearQueue, gotoEnd){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3096
		var timers = jQuery.timers;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3097
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3098
		if (clearQueue)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3099
			this.queue([]);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3100
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3101
		this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3102
			// go in reverse order so anything added to the queue during the loop is ignored
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3103
			for ( var i = timers.length - 1; i >= 0; i-- )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3104
				if ( timers[i].elem == this ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3105
					if (gotoEnd)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3106
						// force the next step to be the last
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3107
						timers[i](true);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3108
					timers.splice(i, 1);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3109
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3110
		});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3111
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3112
		// start the next in the queue if the last step wasn't forced
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3113
		if (!gotoEnd)
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3114
			this.dequeue();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3115
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3116
		return this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3117
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3118
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3119
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3120
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3121
var queue = function( elem, type, array ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3122
	if ( elem ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3123
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3124
		type = type || "fx";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3125
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3126
		var q = jQuery.data( elem, type + "queue" );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3127
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3128
		if ( !q || array )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3129
			q = jQuery.data( elem, type + "queue", jQuery.makeArray(array) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3130
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3131
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3132
	return q;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3133
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3134
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3135
jQuery.fn.dequeue = function(type){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3136
	type = type || "fx";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3137
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3138
	return this.each(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3139
		var q = queue(this, type);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3140
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3141
		q.shift();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3142
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3143
		if ( q.length )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3144
			q[0].call( this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3145
	});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3146
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3147
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3148
jQuery.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3149
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3150
	speed: function(speed, easing, fn) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3151
		var opt = speed && speed.constructor == Object ? speed : {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3152
			complete: fn || !fn && easing ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3153
				jQuery.isFunction( speed ) && speed,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3154
			duration: speed,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3155
			easing: fn && easing || easing && easing.constructor != Function && easing
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3156
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3157
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3158
		opt.duration = (opt.duration && opt.duration.constructor == Number ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3159
			opt.duration :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3160
			jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds.def;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3161
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3162
		// Queueing
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3163
		opt.old = opt.complete;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3164
		opt.complete = function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3165
			if ( opt.queue !== false )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3166
				jQuery(this).dequeue();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3167
			if ( jQuery.isFunction( opt.old ) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3168
				opt.old.call( this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3169
		};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3170
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3171
		return opt;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3172
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3173
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3174
	easing: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3175
		linear: function( p, n, firstNum, diff ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3176
			return firstNum + diff * p;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3177
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3178
		swing: function( p, n, firstNum, diff ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3179
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3180
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3181
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3182
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3183
	timers: [],
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3184
	timerId: null,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3185
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3186
	fx: function( elem, options, prop ){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3187
		this.options = options;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3188
		this.elem = elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3189
		this.prop = prop;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3190
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3191
		if ( !options.orig )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3192
			options.orig = {};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3193
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3194
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3195
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3196
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3197
jQuery.fx.prototype = {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3198
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3199
	// Simple function for setting a style value
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3200
	update: function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3201
		if ( this.options.step )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3202
			this.options.step.call( this.elem, this.now, this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3203
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3204
		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3205
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3206
		// Set display property to block for height/width animations
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3207
		if ( this.prop == "height" || this.prop == "width" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3208
			this.elem.style.display = "block";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3209
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3210
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3211
	// Get the current size
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3212
	cur: function(force){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3213
		if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3214
			return this.elem[ this.prop ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3215
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3216
		var r = parseFloat(jQuery.css(this.elem, this.prop, force));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3217
		return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3218
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3219
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3220
	// Start an animation from one number to another
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3221
	custom: function(from, to, unit){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3222
		this.startTime = now();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3223
		this.start = from;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3224
		this.end = to;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3225
		this.unit = unit || this.unit || "px";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3226
		this.now = this.start;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3227
		this.pos = this.state = 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3228
		this.update();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3229
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3230
		var self = this;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3231
		function t(gotoEnd){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3232
			return self.step(gotoEnd);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3233
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3234
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3235
		t.elem = this.elem;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3236
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3237
		jQuery.timers.push(t);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3238
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3239
		if ( jQuery.timerId == null ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3240
			jQuery.timerId = setInterval(function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3241
				var timers = jQuery.timers;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3242
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3243
				for ( var i = 0; i < timers.length; i++ )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3244
					if ( !timers[i]() )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3245
						timers.splice(i--, 1);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3246
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3247
				if ( !timers.length ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3248
					clearInterval( jQuery.timerId );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3249
					jQuery.timerId = null;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3250
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3251
			}, 13);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3252
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3253
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3254
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3255
	// Simple 'show' function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3256
	show: function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3257
		// Remember where we started, so that we can go back to it later
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3258
		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3259
		this.options.show = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3260
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3261
		// Begin the animation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3262
		this.custom(0, this.cur());
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3263
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3264
		// Make sure that we start at a small width/height to avoid any
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3265
		// flash of content
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3266
		if ( this.prop == "width" || this.prop == "height" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3267
			this.elem.style[this.prop] = "1px";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3268
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3269
		// Start by showing the element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3270
		jQuery(this.elem).show();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3271
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3272
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3273
	// Simple 'hide' function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3274
	hide: function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3275
		// Remember where we started, so that we can go back to it later
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3276
		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3277
		this.options.hide = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3278
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3279
		// Begin the animation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3280
		this.custom(this.cur(), 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3281
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3282
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3283
	// Each step of an animation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3284
	step: function(gotoEnd){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3285
		var t = now();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3286
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3287
		if ( gotoEnd || t > this.options.duration + this.startTime ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3288
			this.now = this.end;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3289
			this.pos = this.state = 1;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3290
			this.update();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3291
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3292
			this.options.curAnim[ this.prop ] = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3293
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3294
			var done = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3295
			for ( var i in this.options.curAnim )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3296
				if ( this.options.curAnim[i] !== true )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3297
					done = false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3298
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3299
			if ( done ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3300
				if ( this.options.display != null ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3301
					// Reset the overflow
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3302
					this.elem.style.overflow = this.options.overflow;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3303
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3304
					// Reset the display
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3305
					this.elem.style.display = this.options.display;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3306
					if ( jQuery.css(this.elem, "display") == "none" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3307
						this.elem.style.display = "block";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3308
				}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3309
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3310
				// Hide the element if the "hide" operation was done
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3311
				if ( this.options.hide )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3312
					this.elem.style.display = "none";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3313
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3314
				// Reset the properties, if the item has been hidden or shown
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3315
				if ( this.options.hide || this.options.show )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3316
					for ( var p in this.options.curAnim )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3317
						jQuery.attr(this.elem.style, p, this.options.orig[p]);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3318
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3319
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3320
			if ( done )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3321
				// Execute the complete function
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3322
				this.options.complete.call( this.elem );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3323
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3324
			return false;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3325
		} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3326
			var n = t - this.startTime;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3327
			this.state = n / this.options.duration;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3328
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3329
			// Perform the easing function, defaults to swing
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3330
			this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](this.state, n, 0, 1, this.options.duration);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3331
			this.now = this.start + ((this.end - this.start) * this.pos);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3332
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3333
			// Perform the next step of the animation
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3334
			this.update();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3335
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3336
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3337
		return true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3338
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3339
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3340
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3341
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3342
jQuery.extend( jQuery.fx, {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3343
	speeds:{
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3344
		slow: 600,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3345
 		fast: 200,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3346
 		// Default speed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3347
 		def: 400
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3348
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3349
	step: {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3350
		scrollLeft: function(fx){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3351
			fx.elem.scrollLeft = fx.now;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3352
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3353
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3354
		scrollTop: function(fx){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3355
			fx.elem.scrollTop = fx.now;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3356
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3357
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3358
		opacity: function(fx){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3359
			jQuery.attr(fx.elem.style, "opacity", fx.now);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3360
		},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3361
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3362
		_default: function(fx){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3363
			fx.elem.style[ fx.prop ] = fx.now + fx.unit;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3364
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3365
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3366
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3367
// The Offset Method
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3368
// Originally By Brandon Aaron, part of the Dimension Plugin
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3369
// http://jquery.com/plugins/project/dimensions
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3370
jQuery.fn.offset = function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3371
	var left = 0, top = 0, elem = this[0], results;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3372
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3373
	if ( elem ) with ( jQuery.browser ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3374
		var parent       = elem.parentNode,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3375
		    offsetChild  = elem,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3376
		    offsetParent = elem.offsetParent,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3377
		    doc          = elem.ownerDocument,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3378
		    safari2      = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3379
		    css          = jQuery.curCSS,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3380
		    fixed        = css(elem, "position") == "fixed";
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3381
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3382
		// Use getBoundingClientRect if available
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3383
		if ( !(mozilla && elem == document.body) && elem.getBoundingClientRect ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3384
			var box = elem.getBoundingClientRect();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3385
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3386
			// Add the document scroll offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3387
			add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3388
				box.top  + Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3389
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3390
			// IE adds the HTML element's border, by default it is medium which is 2px
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3391
			// IE 6 and 7 quirks mode the border width is overwritable by the following css html { border: 0; }
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3392
			// IE 7 standards mode, the border is always 2px
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3393
			// This border/offset is typically represented by the clientLeft and clientTop properties
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3394
			// However, in IE6 and 7 quirks mode the clientLeft and clientTop properties are not updated when overwriting it via CSS
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3395
			// Therefore this method will be off by 2px in IE while in quirksmode
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3396
			add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3397
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3398
		// Otherwise loop through the offsetParents and parentNodes
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3399
		} else {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3400
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3401
			// Initial element offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3402
			add( elem.offsetLeft, elem.offsetTop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3403
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3404
			// Get parent offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3405
			while ( offsetParent ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3406
				// Add offsetParent offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3407
				add( offsetParent.offsetLeft, offsetParent.offsetTop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3408
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3409
				// Mozilla and Safari > 2 does not include the border on offset parents
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3410
				// However Mozilla adds the border for table or table cells
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3411
				if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3412
					border( offsetParent );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3413
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3414
				// Add the document scroll offsets if position is fixed on any offsetParent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3415
				if ( !fixed && css(offsetParent, "position") == "fixed" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3416
					fixed = true;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3417
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3418
				// Set offsetChild to previous offsetParent unless it is the body element
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3419
				offsetChild  = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3420
				// Get next offsetParent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3421
				offsetParent = offsetParent.offsetParent;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3422
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3423
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3424
			// Get parent scroll offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3425
			while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3426
				// Remove parent scroll UNLESS that parent is inline or a table to work around Opera inline/table scrollLeft/Top bug
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3427
				if ( !/^inline|table.*$/i.test(css(parent, "display")) )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3428
					// Subtract parent scroll offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3429
					add( -parent.scrollLeft, -parent.scrollTop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3430
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3431
				// Mozilla does not add the border for a parent that has overflow != visible
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3432
				if ( mozilla && css(parent, "overflow") != "visible" )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3433
					border( parent );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3434
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3435
				// Get next parent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3436
				parent = parent.parentNode;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3437
			}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3438
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3439
			// Safari <= 2 doubles body offsets with a fixed position element/offsetParent or absolutely positioned offsetChild
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3440
			// Mozilla doubles body offsets with a non-absolutely positioned offsetChild
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3441
			if ( (safari2 && (fixed || css(offsetChild, "position") == "absolute")) ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3442
				(mozilla && css(offsetChild, "position") != "absolute") )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3443
					add( -doc.body.offsetLeft, -doc.body.offsetTop );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3444
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3445
			// Add the document scroll offsets if position is fixed
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3446
			if ( fixed )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3447
				add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3448
					Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3449
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3450
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3451
		// Return an object with top and left properties
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3452
		results = { top: top, left: left };
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3453
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3454
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3455
	function border(elem) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3456
		add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3457
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3458
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3459
	function add(l, t) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3460
		left += parseInt(l, 10) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3461
		top += parseInt(t, 10) || 0;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3462
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3463
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3464
	return results;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3465
};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3466
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3467
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3468
jQuery.fn.extend({
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3469
	position: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3470
		var left = 0, top = 0, results;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3471
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3472
		if ( this[0] ) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3473
			// Get *real* offsetParent
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3474
			var offsetParent = this.offsetParent(),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3475
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3476
			// Get correct offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3477
			offset       = this.offset(),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3478
			parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { top: 0, left: 0 } : offsetParent.offset();
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3479
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3480
			// Subtract element margins
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3481
			// note: when an element has margin: auto the offsetLeft and marginLeft 
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3482
			// are the same in Safari causing offset.left to incorrectly be 0
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3483
			offset.top  -= num( this, 'marginTop' );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3484
			offset.left -= num( this, 'marginLeft' );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3485
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3486
			// Add offsetParent borders
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3487
			parentOffset.top  += num( offsetParent, 'borderTopWidth' );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3488
			parentOffset.left += num( offsetParent, 'borderLeftWidth' );
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3489
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3490
			// Subtract the two offsets
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3491
			results = {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3492
				top:  offset.top  - parentOffset.top,
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3493
				left: offset.left - parentOffset.left
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3494
			};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3495
		}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3496
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3497
		return results;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3498
	},
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3499
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3500
	offsetParent: function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3501
		var offsetParent = this[0].offsetParent;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3502
		while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3503
			offsetParent = offsetParent.offsetParent;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3504
		return jQuery(offsetParent);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3505
	}
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3506
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3507
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3508
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3509
// Create scrollLeft and scrollTop methods
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3510
jQuery.each( ['Left', 'Top'], function(i, name) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3511
	var method = 'scroll' + name;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3512
	
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3513
	jQuery.fn[ method ] = function(val) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3514
		if (!this[0]) return;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3515
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3516
		return val != undefined ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3517
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3518
			// Set the scroll offset
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3519
			this.each(function() {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3520
				this == window || this == document ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3521
					window.scrollTo(
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3522
						!i ? val : jQuery(window).scrollLeft(),
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3523
						 i ? val : jQuery(window).scrollTop()
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3524
					) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3525
					this[ method ] = val;
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3526
			}) :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3527
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3528
			// Return the scroll offset
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3529
			this[0] == window || this[0] == document ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3530
				self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3531
					jQuery.boxModel && document.documentElement[ method ] ||
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3532
					document.body[ method ] :
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3533
				this[0][ method ];
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3534
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3535
});
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3536
// Create innerHeight, innerWidth, outerHeight and outerWidth methods
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3537
jQuery.each([ "Height", "Width" ], function(i, name){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3538
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3539
	var tl = i ? "Left"  : "Top",  // top or left
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3540
		br = i ? "Right" : "Bottom"; // bottom or right
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3541
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3542
	// innerHeight and innerWidth
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3543
	jQuery.fn["inner" + name] = function(){
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3544
		return this[ name.toLowerCase() ]() +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3545
			num(this, "padding" + tl) +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3546
			num(this, "padding" + br);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3547
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3548
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3549
	// outerHeight and outerWidth
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3550
	jQuery.fn["outer" + name] = function(margin) {
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3551
		return this["inner" + name]() +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3552
			num(this, "border" + tl + "Width") +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3553
			num(this, "border" + br + "Width") +
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3554
			(margin ?
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3555
				num(this, "margin" + tl) + num(this, "margin" + br) : 0);
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3556
	};
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3557
6288d5685bff Stand v. 31.08.2011
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3558
});})();