fhiiqm/js/jquery/not_used/jquery.js
author Bettina Schwarzer
Fri, 05 Feb 2016 14:03:40 +0100
changeset 44 d652bbba2d43
parent 5 1b021d921367
permissions -rw-r--r--
fhiiqm: achilleus -> db2, Korrekturen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     1
(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     2
/*
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     3
 * jQuery 1.2.6 - New Wave Javascript
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     4
 *
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     5
 * Copyright (c) 2008 John Resig (jquery.com)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     6
 * Dual licensed under the MIT (MIT-LICENSE.txt)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     7
 * and GPL (GPL-LICENSE.txt) licenses.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     8
 *
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
     9
 * $Date: 2008-05-27 21:17:26 +0200 (Di, 27 Mai 2008) $
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    10
 * $Rev: 5700 $
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    11
 */
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    12
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    13
// Map over jQuery in case of overwrite
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    14
var _jQuery = window.jQuery,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    15
// Map over the $ in case of overwrite
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    16
	_$ = window.$;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    17
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    18
var jQuery = window.jQuery = window.$ = function( selector, context ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    19
	// The jQuery object is actually just the init constructor 'enhanced'
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    20
	return new jQuery.fn.init( selector, context );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    21
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    22
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    23
// A simple way to check for HTML strings or ID strings
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    24
// (both of which we optimize for)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    25
var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    26
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    27
// Is it a simple selector
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    28
	isSimple = /^.[^:#\[\.]*$/,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    29
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    30
// Will speed up references to undefined, and allows munging its name.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    31
	undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    32
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    33
jQuery.fn = jQuery.prototype = {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    34
	init: function( selector, context ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    35
		// Make sure that a selection was provided
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    36
		selector = selector || document;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    37
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    38
		// Handle $(DOMElement)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    39
		if ( selector.nodeType ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    40
			this[0] = selector;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    41
			this.length = 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    42
			return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    43
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    44
		// Handle HTML strings
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    45
		if ( typeof selector == "string" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    46
			// Are we dealing with HTML string or an ID?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    47
			var match = quickExpr.exec( selector );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    48
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    49
			// Verify a match, and that no context was specified for #id
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    50
			if ( match && (match[1] || !context) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    51
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    52
				// HANDLE: $(html) -> $(array)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    53
				if ( match[1] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    54
					selector = jQuery.clean( [ match[1] ], context );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    55
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    56
				// HANDLE: $("#id")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    57
				else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    58
					var elem = document.getElementById( match[3] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    59
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    60
					// Make sure an element was located
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    61
					if ( elem ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    62
						// Handle the case where IE and Opera return items
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    63
						// by name instead of ID
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    64
						if ( elem.id != match[3] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    65
							return jQuery().find( selector );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    66
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    67
						// Otherwise, we inject the element directly into the jQuery object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    68
						return jQuery( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    69
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    70
					selector = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    71
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    72
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    73
			// HANDLE: $(expr, [context])
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    74
			// (which is just equivalent to: $(content).find(expr)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    75
			} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    76
				return jQuery( context ).find( selector );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    77
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    78
		// HANDLE: $(function)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    79
		// Shortcut for document ready
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    80
		} else if ( jQuery.isFunction( selector ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    81
			return jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    82
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    83
		return this.setArray(jQuery.makeArray(selector));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    84
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    85
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    86
	// The current version of jQuery being used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    87
	jquery: "1.2.6",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    88
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    89
	// The number of elements contained in the matched element set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    90
	size: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    91
		return this.length;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    92
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    93
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    94
	// The number of elements contained in the matched element set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    95
	length: 0,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    96
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    97
	// Get the Nth element in the matched element set OR
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    98
	// Get the whole matched element set as a clean array
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
    99
	get: function( num ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   100
		return num == undefined ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   101
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   102
			// Return a 'clean' array
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   103
			jQuery.makeArray( this ) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   104
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   105
			// Return just the object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   106
			this[ num ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   107
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   108
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   109
	// Take an array of elements and push it onto the stack
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   110
	// (returning the new matched element set)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   111
	pushStack: function( elems ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   112
		// Build a new jQuery matched element set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   113
		var ret = jQuery( elems );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   114
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   115
		// Add the old object onto the stack (as a reference)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   116
		ret.prevObject = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   117
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   118
		// Return the newly-formed element set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   119
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   120
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   121
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   122
	// Force the current matched set of elements to become
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   123
	// the specified array of elements (destroying the stack in the process)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   124
	// You should use pushStack() in order to do this, but maintain the stack
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   125
	setArray: function( elems ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   126
		// Resetting the length to 0, then using the native Array push
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   127
		// is a super-fast way to populate an object with array-like properties
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   128
		this.length = 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   129
		Array.prototype.push.apply( this, elems );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   130
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   131
		return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   132
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   133
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   134
	// Execute a callback for every element in the matched set.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   135
	// (You can seed the arguments with an array of args, but this is
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   136
	// only used internally.)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   137
	each: function( callback, args ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   138
		return jQuery.each( this, callback, args );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   139
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   140
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   141
	// Determine the position of an element within
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   142
	// the matched set of elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   143
	index: function( elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   144
		var ret = -1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   145
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   146
		// Locate the position of the desired element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   147
		return jQuery.inArray(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   148
			// If it receives a jQuery object, the first element is used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   149
			elem && elem.jquery ? elem[0] : elem
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   150
		, this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   151
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   152
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   153
	attr: function( name, value, type ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   154
		var options = name;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   155
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   156
		// Look for the case where we're accessing a style value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   157
		if ( name.constructor == String )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   158
			if ( value === undefined )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   159
				return this[0] && jQuery[ type || "attr" ]( this[0], name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   160
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   161
			else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   162
				options = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   163
				options[ name ] = value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   164
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   165
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   166
		// Check to see if we're setting style values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   167
		return this.each(function(i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   168
			// Set all the styles
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   169
			for ( name in options )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   170
				jQuery.attr(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   171
					type ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   172
						this.style :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   173
						this,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   174
					name, jQuery.prop( this, options[ name ], type, i, name )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   175
				);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   176
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   177
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   178
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   179
	css: function( key, value ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   180
		// ignore negative width and height values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   181
		if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   182
			value = undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   183
		return this.attr( key, value, "curCSS" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   184
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   185
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   186
	text: function( text ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   187
		if ( typeof text != "object" && text != null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   188
			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   189
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   190
		var ret = "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   191
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   192
		jQuery.each( text || this, function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   193
			jQuery.each( this.childNodes, function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   194
				if ( this.nodeType != 8 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   195
					ret += this.nodeType != 1 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   196
						this.nodeValue :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   197
						jQuery.fn.text( [ this ] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   198
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   199
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   200
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   201
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   202
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   203
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   204
	wrapAll: function( html ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   205
		if ( this[0] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   206
			// The elements to wrap the target around
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   207
			jQuery( html, this[0].ownerDocument )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   208
				.clone()
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   209
				.insertBefore( this[0] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   210
				.map(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   211
					var elem = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   212
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   213
					while ( elem.firstChild )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   214
						elem = elem.firstChild;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   215
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   216
					return elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   217
				})
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   218
				.append(this);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   219
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   220
		return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   221
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   222
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   223
	wrapInner: function( html ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   224
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   225
			jQuery( this ).contents().wrapAll( html );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   226
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   227
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   228
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   229
	wrap: function( html ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   230
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   231
			jQuery( this ).wrapAll( html );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   232
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   233
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   234
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   235
	append: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   236
		return this.domManip(arguments, true, false, function(elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   237
			if (this.nodeType == 1)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   238
				this.appendChild( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   239
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   240
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   241
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   242
	prepend: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   243
		return this.domManip(arguments, true, true, function(elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   244
			if (this.nodeType == 1)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   245
				this.insertBefore( elem, this.firstChild );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   246
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   247
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   248
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   249
	before: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   250
		return this.domManip(arguments, false, false, function(elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   251
			this.parentNode.insertBefore( elem, this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   252
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   253
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   254
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   255
	after: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   256
		return this.domManip(arguments, false, true, function(elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   257
			this.parentNode.insertBefore( elem, this.nextSibling );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   258
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   259
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   260
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   261
	end: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   262
		return this.prevObject || jQuery( [] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   263
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   264
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   265
	find: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   266
		var elems = jQuery.map(this, function(elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   267
			return jQuery.find( selector, elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   268
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   269
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   270
		return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   271
			jQuery.unique( elems ) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   272
			elems );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   273
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   274
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   275
	clone: function( events ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   276
		// Do the clone
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   277
		var ret = this.map(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   278
			if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   279
				// IE copies events bound via attachEvent when
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   280
				// using cloneNode. Calling detachEvent on the
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   281
				// clone will also remove the events from the orignal
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   282
				// In order to get around this, we use innerHTML.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   283
				// Unfortunately, this means some modifications to
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   284
				// attributes in IE that are actually only stored
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   285
				// as properties will not be copied (such as the
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   286
				// the name attribute on an input).
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   287
				var clone = this.cloneNode(true),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   288
					container = document.createElement("div");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   289
				container.appendChild(clone);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   290
				return jQuery.clean([container.innerHTML])[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   291
			} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   292
				return this.cloneNode(true);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   293
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   294
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   296
		// removeData doesn't work here, IE removes it from the original as well
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   298
		var clone = ret.find("*").andSelf().each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   299
			if ( this[ expando ] != undefined )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   300
				this[ expando ] = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   301
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   302
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   303
		// Copy the events from the original to the clone
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   304
		if ( events === true )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   305
			this.find("*").andSelf().each(function(i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   306
				if (this.nodeType == 3)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   307
					return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   308
				var events = jQuery.data( this, "events" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   309
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   310
				for ( var type in events )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   311
					for ( var handler in events[ type ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   312
						jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   313
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   314
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   315
		// Return the cloned set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   316
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   317
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   318
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   319
	filter: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   320
		return this.pushStack(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   321
			jQuery.isFunction( selector ) &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   322
			jQuery.grep(this, function(elem, i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   323
				return selector.call( elem, i );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   324
			}) ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   325
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   326
			jQuery.multiFilter( selector, this ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   327
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   328
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   329
	not: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   330
		if ( selector.constructor == String )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   331
			// test special case where just one selector is passed in
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   332
			if ( isSimple.test( selector ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   333
				return this.pushStack( jQuery.multiFilter( selector, this, true ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   334
			else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   335
				selector = jQuery.multiFilter( selector, this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   336
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   337
		var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   338
		return this.filter(function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   339
			return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   340
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   341
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   342
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   343
	add: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   344
		return this.pushStack( jQuery.unique( jQuery.merge(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   345
			this.get(),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   346
			typeof selector == 'string' ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   347
				jQuery( selector ) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   348
				jQuery.makeArray( selector )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   349
		)));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   350
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   351
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   352
	is: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   353
		return !!selector && jQuery.multiFilter( selector, this ).length > 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   354
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   355
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   356
	hasClass: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   357
		return this.is( "." + selector );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   358
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   359
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   360
	val: function( value ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   361
		if ( value == undefined ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   362
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   363
			if ( this.length ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   364
				var elem = this[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   365
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   366
				// We need to handle select boxes special
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   367
				if ( jQuery.nodeName( elem, "select" ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   368
					var index = elem.selectedIndex,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   369
						values = [],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   370
						options = elem.options,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   371
						one = elem.type == "select-one";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   372
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   373
					// Nothing was selected
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   374
					if ( index < 0 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   375
						return null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   376
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   377
					// Loop through all the selected options
1b021d921367 Umordnen
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++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   379
						var option = options[ i ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   380
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   381
						if ( option.selected ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   382
							// Get the specifc value for the option
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   383
							value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   384
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   385
							// We don't need an array for one selects
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   386
							if ( one )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   387
								return value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   388
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   389
							// Multi-Selects return an array
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   390
							values.push( value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   391
						}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   392
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   393
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   394
					return values;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   395
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   396
				// Everything else, we just grab the value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   397
				} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   398
					return (this[0].value || "").replace(/\r/g, "");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   399
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   400
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   401
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   402
			return undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   403
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   404
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   405
		if( value.constructor == Number )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   406
			value += '';
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   407
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   408
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   409
			if ( this.nodeType != 1 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   410
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   411
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   412
			if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   413
				this.checked = (jQuery.inArray(this.value, value) >= 0 ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   414
					jQuery.inArray(this.name, value) >= 0);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   415
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   416
			else if ( jQuery.nodeName( this, "select" ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   417
				var values = jQuery.makeArray(value);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   418
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   419
				jQuery( "option", this ).each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   420
					this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   421
						jQuery.inArray( this.text, values ) >= 0);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   422
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   423
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   424
				if ( !values.length )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   425
					this.selectedIndex = -1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   426
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   427
			} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   428
				this.value = value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   429
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   430
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   431
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   432
	html: function( value ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   433
		return value == undefined ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   434
			(this[0] ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   435
				this[0].innerHTML :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   436
				null) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   437
			this.empty().append( value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   438
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   439
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   440
	replaceWith: function( value ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   441
		return this.after( value ).remove();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   442
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   443
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   444
	eq: function( i ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   445
		return this.slice( i, i + 1 );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   446
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   447
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   448
	slice: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   449
		return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   450
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   451
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   452
	map: function( callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   453
		return this.pushStack( jQuery.map(this, function(elem, i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   454
			return callback.call( elem, i, elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   455
		}));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   456
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   457
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   458
	andSelf: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   459
		return this.add( this.prevObject );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   460
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   461
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   462
	data: function( key, value ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   463
		var parts = key.split(".");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   464
		parts[1] = parts[1] ? "." + parts[1] : "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   465
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   466
		if ( value === undefined ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   467
			var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   468
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   469
			if ( data === undefined && this.length )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   470
				data = jQuery.data( this[0], key );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   471
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   472
			return data === undefined && parts[1] ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   473
				this.data( parts[0] ) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   474
				data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   475
		} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   476
			return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   477
				jQuery.data( this, key, value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   478
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   479
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   480
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   481
	removeData: function( key ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   482
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   483
			jQuery.removeData( this, key );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   484
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   485
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   486
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   487
	domManip: function( args, table, reverse, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   488
		var clone = this.length > 1, elems;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   489
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   490
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   491
			if ( !elems ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   492
				elems = jQuery.clean( args, this.ownerDocument );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   493
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   494
				if ( reverse )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   495
					elems.reverse();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   496
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   497
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   498
			var obj = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   499
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   500
			if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   501
				obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   502
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   503
			var scripts = jQuery( [] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   504
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   505
			jQuery.each(elems, function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   506
				var elem = clone ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   507
					jQuery( this ).clone( true )[0] :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   508
					this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   509
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   510
				// execute all scripts after the elements have been injected
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   511
				if ( jQuery.nodeName( elem, "script" ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   512
					scripts = scripts.add( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   513
				else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   514
					// Remove any inner scripts for later evaluation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   515
					if ( elem.nodeType == 1 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   516
						scripts = scripts.add( jQuery( "script", elem ).remove() );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   517
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   518
					// Inject the elements into the document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   519
					callback.call( obj, elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   520
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   521
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   522
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   523
			scripts.each( evalScript );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   524
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   525
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   526
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   527
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   528
// Give the init function the jQuery prototype for later instantiation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   529
jQuery.fn.init.prototype = jQuery.fn;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   530
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   531
function evalScript( i, elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   532
	if ( elem.src )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   533
		jQuery.ajax({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   534
			url: elem.src,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   535
			async: false,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   536
			dataType: "script"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   537
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   538
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   539
	else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   540
		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   541
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   542
	if ( elem.parentNode )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   543
		elem.parentNode.removeChild( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   544
}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   545
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   546
function now(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   547
	return +new Date;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   548
}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   549
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   550
jQuery.extend = jQuery.fn.extend = function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   551
	// copy reference to target object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   552
	var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   553
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   554
	// Handle a deep copy situation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   555
	if ( target.constructor == Boolean ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   556
		deep = target;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   557
		target = arguments[1] || {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   558
		// skip the boolean and the target
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   559
		i = 2;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   560
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   561
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   562
	// Handle case when target is a string or something (possible in deep copy)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   563
	if ( typeof target != "object" && typeof target != "function" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   564
		target = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   565
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   566
	// extend jQuery itself if only one argument is passed
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   567
	if ( length == i ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   568
		target = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   569
		--i;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   570
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   571
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   572
	for ( ; i < length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   573
		// Only deal with non-null/undefined values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   574
		if ( (options = arguments[ i ]) != null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   575
			// Extend the base object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   576
			for ( var name in options ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   577
				var src = target[ name ], copy = options[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   578
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   579
				// Prevent never-ending loop
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   580
				if ( target === copy )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   581
					continue;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   582
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   583
				// Recurse if we're merging object values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   584
				if ( deep && copy && typeof copy == "object" && !copy.nodeType )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   585
					target[ name ] = jQuery.extend( deep, 
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   586
						// Never move original objects, clone them
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   587
						src || ( copy.length != null ? [ ] : { } )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   588
					, copy );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   589
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   590
				// Don't bring in undefined values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   591
				else if ( copy !== undefined )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   592
					target[ name ] = copy;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   593
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   594
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   595
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   596
	// Return the modified object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   597
	return target;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   598
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   599
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   600
var expando = "jQuery" + now(), uuid = 0, windowData = {},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   601
	// exclude the following css properties to add px
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   602
	exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   603
	// cache defaultView
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   604
	defaultView = document.defaultView || {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   605
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   606
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   607
	noConflict: function( deep ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   608
		window.$ = _$;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   609
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   610
		if ( deep )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   611
			window.jQuery = _jQuery;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   612
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   613
		return jQuery;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   614
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   615
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   616
	// See test/unit/core.js for details concerning this function.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   617
	isFunction: function( fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   618
		return !!fn && typeof fn != "string" && !fn.nodeName &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   619
			fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   620
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   621
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   622
	// check if an element is in a (or is an) XML document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   623
	isXMLDoc: function( elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   624
		return elem.documentElement && !elem.body ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   625
			elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   626
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   627
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   628
	// Evalulates a script in a global context
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   629
	globalEval: function( data ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   630
		data = jQuery.trim( data );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   631
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   632
		if ( data ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   633
			// Inspired by code by Andrea Giammarchi
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   634
			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   635
			var head = document.getElementsByTagName("head")[0] || document.documentElement,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   636
				script = document.createElement("script");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   637
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   638
			script.type = "text/javascript";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   639
			if ( jQuery.browser.msie )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   640
				script.text = data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   641
			else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   642
				script.appendChild( document.createTextNode( data ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   643
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   644
			// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   645
			// This arises when a base node is used (#2709).
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   646
			head.insertBefore( script, head.firstChild );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   647
			head.removeChild( script );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   648
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   649
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   650
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   651
	nodeName: function( elem, name ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   652
		return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   653
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   654
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   655
	cache: {},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   656
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   657
	data: function( elem, name, data ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   658
		elem = elem == window ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   659
			windowData :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   660
			elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   661
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   662
		var id = elem[ expando ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   663
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   664
		// Compute a unique ID for the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   665
		if ( !id )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   666
			id = elem[ expando ] = ++uuid;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   667
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   668
		// Only generate the data cache if we're
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   669
		// trying to access or manipulate it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   670
		if ( name && !jQuery.cache[ id ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   671
			jQuery.cache[ id ] = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   672
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   673
		// Prevent overriding the named cache with undefined values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   674
		if ( data !== undefined )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   675
			jQuery.cache[ id ][ name ] = data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   676
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   677
		// Return the named cache data, or the ID for the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   678
		return name ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   679
			jQuery.cache[ id ][ name ] :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   680
			id;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   681
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   682
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   683
	removeData: function( elem, name ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   684
		elem = elem == window ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   685
			windowData :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   686
			elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   687
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   688
		var id = elem[ expando ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   689
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   690
		// If we want to remove a specific section of the element's data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   691
		if ( name ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   692
			if ( jQuery.cache[ id ] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   693
				// Remove the section of cache data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   694
				delete jQuery.cache[ id ][ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   695
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   696
				// If we've removed all the data, remove the element's cache
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   697
				name = "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   698
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   699
				for ( name in jQuery.cache[ id ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   700
					break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   701
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   702
				if ( !name )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   703
					jQuery.removeData( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   704
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   705
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   706
		// Otherwise, we want to remove all of the element's data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   707
		} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   708
			// Clean up the element expando
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   709
			try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   710
				delete elem[ expando ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   711
			} catch(e){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   712
				// IE has trouble directly removing the expando
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   713
				// but it's ok with using removeAttribute
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   714
				if ( elem.removeAttribute )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   715
					elem.removeAttribute( expando );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   716
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   717
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   718
			// Completely remove the data cache
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   719
			delete jQuery.cache[ id ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   720
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   721
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   722
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   723
	// args is for internal usage only
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   724
	each: function( object, callback, args ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   725
		var name, i = 0, length = object.length;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   726
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   727
		if ( args ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   728
			if ( length == undefined ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   729
				for ( name in object )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   730
					if ( callback.apply( object[ name ], args ) === false )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   731
						break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   732
			} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   733
				for ( ; i < length; )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   734
					if ( callback.apply( object[ i++ ], args ) === false )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   735
						break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   736
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   737
		// A special, fast, case for the most common use of each
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   738
		} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   739
			if ( length == undefined ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   740
				for ( name in object )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   741
					if ( callback.call( object[ name ], name, object[ name ] ) === false )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   742
						break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   743
			} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   744
				for ( var value = object[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   745
					i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   746
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   747
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   748
		return object;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   749
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   750
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   751
	prop: function( elem, value, type, i, name ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   752
		// Handle executable functions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   753
		if ( jQuery.isFunction( value ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   754
			value = value.call( elem, i );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   755
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   756
		// Handle passing in a number to a CSS property
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   757
		return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   758
			value + "px" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   759
			value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   760
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   761
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   762
	className: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   763
		// internal only, use addClass("class")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   764
		add: function( elem, classNames ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   765
			jQuery.each((classNames || "").split(/\s+/), function(i, className){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   766
				if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   767
					elem.className += (elem.className ? " " : "") + className;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   768
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   769
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   770
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   771
		// internal only, use removeClass("class")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   772
		remove: function( elem, classNames ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   773
			if (elem.nodeType == 1)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   774
				elem.className = classNames != undefined ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   775
					jQuery.grep(elem.className.split(/\s+/), function(className){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   776
						return !jQuery.className.has( classNames, className );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   777
					}).join(" ") :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   778
					"";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   779
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   780
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   781
		// internal only, use hasClass("class")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   782
		has: function( elem, className ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   783
			return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   784
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   785
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   786
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   787
	// A method for quickly swapping in/out CSS properties to get correct calculations
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   788
	swap: function( elem, options, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   789
		var old = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   790
		// Remember the old values, and insert the new ones
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   791
		for ( var name in options ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   792
			old[ name ] = elem.style[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   793
			elem.style[ name ] = options[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   794
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   795
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   796
		callback.call( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   797
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   798
		// Revert the old values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   799
		for ( var name in options )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   800
			elem.style[ name ] = old[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   801
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   802
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   803
	css: function( elem, name, force ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   804
		if ( name == "width" || name == "height" ) {
1b021d921367 Umordnen
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" ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   806
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   807
			function getWH() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   808
				val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   809
				var padding = 0, border = 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   810
				jQuery.each( which, function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   811
					padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   812
					border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   813
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   814
				val -= Math.round(padding + border);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   815
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   816
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   817
			if ( jQuery(elem).is(":visible") )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   818
				getWH();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   819
			else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   820
				jQuery.swap( elem, props, getWH );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   821
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   822
			return Math.max(0, val);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   823
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   824
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   825
		return jQuery.curCSS( elem, name, force );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   826
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   827
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   828
	curCSS: function( elem, name, force ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   829
		var ret, style = elem.style;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   830
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   831
		// A helper method for determining if an element's values are broken
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   832
		function color( elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   833
			if ( !jQuery.browser.safari )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   834
				return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   835
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   836
			// defaultView is cached
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   837
			var ret = defaultView.getComputedStyle( elem, null );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   838
			return !ret || ret.getPropertyValue("color") == "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   839
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   840
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   841
		// We need to handle opacity special in IE
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   842
		if ( name == "opacity" && jQuery.browser.msie ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   843
			ret = jQuery.attr( style, "opacity" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   844
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   845
			return ret == "" ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   846
				"1" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   847
				ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   848
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   849
		// Opera sometimes will give the wrong display answer, this fixes it, see #2037
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   850
		if ( jQuery.browser.opera && name == "display" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   851
			var save = style.outline;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   852
			style.outline = "0 solid black";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   853
			style.outline = save;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   854
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   855
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   856
		// Make sure we're using the right name for getting the float value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   857
		if ( name.match( /float/i ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   858
			name = styleFloat;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   859
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   860
		if ( !force && style && style[ name ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   861
			ret = style[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   862
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   863
		else if ( defaultView.getComputedStyle ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   864
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   865
			// Only "float" is needed here
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   866
			if ( name.match( /float/i ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   867
				name = "float";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   868
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   869
			name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   870
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   871
			var computedStyle = defaultView.getComputedStyle( elem, null );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   872
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   873
			if ( computedStyle && !color( elem ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   874
				ret = computedStyle.getPropertyValue( name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   875
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   876
			// If the element isn't reporting its values properly in Safari
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   877
			// then some display: none elements are involved
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   878
			else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   879
				var swap = [], stack = [], a = elem, i = 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   880
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   881
				// Locate all of the parent display: none elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   882
				for ( ; a && color(a); a = a.parentNode )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   883
					stack.unshift(a);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   884
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   885
				// Go through and make them visible, but in reverse
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   887
				for ( ; i < stack.length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   888
					if ( color( stack[ i ] ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   889
						swap[ i ] = stack[ i ].style.display;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   890
						stack[ i ].style.display = "block";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   891
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   892
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   893
				// Since we flip the display style, we have to handle that
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   894
				// one special, otherwise get the value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   895
				ret = name == "display" && swap[ stack.length - 1 ] != null ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   896
					"none" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   897
					( computedStyle && computedStyle.getPropertyValue( name ) ) || "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   898
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   899
				// Finally, revert the display styles back
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   900
				for ( i = 0; i < swap.length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   901
					if ( swap[ i ] != null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   902
						stack[ i ].style.display = swap[ i ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   903
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   904
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   905
			// We should always get a number back from opacity
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   906
			if ( name == "opacity" && ret == "" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   907
				ret = "1";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   908
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   909
		} else if ( elem.currentStyle ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   910
			var camelCase = name.replace(/\-(\w)/g, function(all, letter){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   911
				return letter.toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   912
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   913
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   914
			ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   915
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   916
			// From the awesome hack by Dean Edwards
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   917
			// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   918
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   919
			// If we're not dealing with a regular pixel number
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   921
			if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   922
				// Remember the original values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   923
				var left = style.left, rsLeft = elem.runtimeStyle.left;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   924
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   925
				// Put in the new values to get a computed value out
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   926
				elem.runtimeStyle.left = elem.currentStyle.left;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   927
				style.left = ret || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   928
				ret = style.pixelLeft + "px";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   929
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   930
				// Revert the changed values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   931
				style.left = left;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   932
				elem.runtimeStyle.left = rsLeft;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   933
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   934
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   935
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   936
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   937
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   938
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   939
	clean: function( elems, context ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   940
		var ret = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   941
		context = context || document;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   942
		// !context.createElement fails in IE with an error but returns typeof 'object'
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   943
		if (typeof context.createElement == 'undefined')
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   944
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   945
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   946
		jQuery.each(elems, function(i, elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   947
			if ( !elem )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   948
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   949
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   950
			if ( elem.constructor == Number )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   951
				elem += '';
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   952
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   953
			// Convert html string into DOM nodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   954
			if ( typeof elem == "string" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   955
				// Fix "XHTML"-style tags in all browsers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   956
				elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
1b021d921367 Umordnen
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) ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   958
						all :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   959
						front + "></" + tag + ">";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   960
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   961
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   962
				// Trim whitespace, otherwise indexOf won't work as expected
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   963
				var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   964
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   965
				var wrap =
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   966
					// option or optgroup
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   967
					!tags.indexOf("<opt") &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   968
					[ 1, "<select multiple='multiple'>", "</select>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   969
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   970
					!tags.indexOf("<leg") &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   971
					[ 1, "<fieldset>", "</fieldset>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   972
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   973
					tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   974
					[ 1, "<table>", "</table>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   975
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   976
					!tags.indexOf("<tr") &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   977
					[ 2, "<table><tbody>", "</tbody></table>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   978
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   979
				 	// <thead> matched above
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   980
					(!tags.indexOf("<td") || !tags.indexOf("<th")) &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   981
					[ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   982
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   983
					!tags.indexOf("<col") &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   984
					[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   985
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   986
					// IE can't serialize <link> and <script> tags normally
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   987
					jQuery.browser.msie &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   988
					[ 1, "div<div>", "</div>" ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   989
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   990
					[ 0, "", "" ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   991
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   992
				// Go to html and back, then peel off extra wrappers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   993
				div.innerHTML = wrap[1] + elem + wrap[2];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   994
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   995
				// Move to the right depth
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   996
				while ( wrap[0]-- )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   997
					div = div.lastChild;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   998
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
   999
				// Remove IE's autoinserted <tbody> from table fragments
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1000
				if ( jQuery.browser.msie ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1001
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1002
					// String was a <table>, *may* have spurious <tbody>
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1003
					var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1004
						div.firstChild && div.firstChild.childNodes :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1005
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1006
						// String was a bare <thead> or <tfoot>
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1007
						wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1008
							div.childNodes :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1009
							[];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1010
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1011
					for ( var j = tbody.length - 1; j >= 0 ; --j )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1012
						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1013
							tbody[ j ].parentNode.removeChild( tbody[ j ] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1014
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1015
					// IE completely kills leading whitespace when innerHTML is used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1016
					if ( /^\s/.test( elem ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1017
						div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1018
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1019
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1020
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1021
				elem = jQuery.makeArray( div.childNodes );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1022
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1023
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1024
			if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1025
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1026
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1027
			if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1028
				ret.push( elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1029
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1030
			else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1031
				ret = jQuery.merge( ret, elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1032
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1033
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1034
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1035
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1036
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1037
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1038
	attr: function( elem, name, value ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1039
		// don't set attributes on text and comment nodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1040
		if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1041
			return undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1042
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1043
		var notxml = !jQuery.isXMLDoc( elem ),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1044
			// Whether we are setting (or getting)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1045
			set = value !== undefined,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1046
			msie = jQuery.browser.msie;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1047
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1048
		// Try to normalize/fix the name
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1049
		name = notxml && jQuery.props[ name ] || name;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1050
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1051
		// Only do all the following if this is a node (faster for style)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1052
		// IE elem.getAttribute passes even for style
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1053
		if ( elem.tagName ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1054
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1055
			// These attributes require special treatment
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1056
			var special = /href|src|style/.test( name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1057
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1058
			// Safari mis-reports the default selected property of a hidden option
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1059
			// Accessing the parent's selectedIndex property fixes it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1060
			if ( name == "selected" && jQuery.browser.safari )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1061
				elem.parentNode.selectedIndex;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1062
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1063
			// If applicable, access the attribute via the DOM 0 way
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1064
			if ( name in elem && notxml && !special ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1065
				if ( set ){
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1067
					if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1068
						throw "type property can't be changed";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1069
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1070
					elem[ name ] = value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1071
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1072
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1073
				// browsers index elements by id/name on forms, give priority to attributes.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1074
				if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1075
					return elem.getAttributeNode( name ).nodeValue;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1076
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1077
				return elem[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1078
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1079
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1080
			if ( msie && notxml &&  name == "style" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1081
				return jQuery.attr( elem.style, "cssText", value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1082
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1083
			if ( set )
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1085
				elem.setAttribute( name, "" + value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1086
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1087
			var attr = msie && notxml && special
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1088
					// Some attributes require a special call on IE
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1089
					? elem.getAttribute( name, 2 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1090
					: elem.getAttribute( name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1091
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1092
			// Non-existent attributes return null, we normalize to undefined
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1093
			return attr === null ? undefined : attr;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1094
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1095
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1096
		// elem is actually elem.style ... set the style
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1097
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1098
		// IE uses filters for opacity
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1099
		if ( msie && name == "opacity" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1100
			if ( set ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1101
				// IE has trouble with opacity if it does not have layout
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1102
				// Force it by setting the zoom level
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1103
				elem.zoom = 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1104
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1105
				// Set the alpha filter to set the opacity
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1106
				elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1107
					(parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1108
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1109
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1110
			return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1111
				(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1112
				"";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1113
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1114
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1115
		name = name.replace(/-([a-z])/ig, function(all, letter){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1116
			return letter.toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1117
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1118
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1119
		if ( set )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1120
			elem[ name ] = value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1121
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1122
		return elem[ name ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1123
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1124
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1125
	trim: function( text ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1126
		return (text || "").replace( /^\s+|\s+$/g, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1127
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1128
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1129
	makeArray: function( array ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1130
		var ret = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1131
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1132
		if( array != null ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1133
			var i = array.length;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1134
			//the window, strings and functions also have 'length'
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1135
			if( i == null || array.split || array.setInterval || array.call )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1136
				ret[0] = array;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1137
			else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1138
				while( i )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1139
					ret[--i] = array[i];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1140
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1141
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1142
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1143
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1144
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1145
	inArray: function( elem, array ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1146
		for ( var i = 0, length = array.length; i < length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1147
		// Use === because on IE, window == document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1148
			if ( array[ i ] === elem )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1149
				return i;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1150
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1151
		return -1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1152
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1153
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1154
	merge: function( first, second ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1155
		// We have to loop this way because IE & Opera overwrite the length
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1156
		// expando of getElementsByTagName
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1157
		var i = 0, elem, pos = first.length;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1158
		// Also, we need to make sure that the correct elements are being returned
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1159
		// (IE returns comment nodes in a '*' query)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1160
		if ( jQuery.browser.msie ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1161
			while ( elem = second[ i++ ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1162
				if ( elem.nodeType != 8 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1163
					first[ pos++ ] = elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1164
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1165
		} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1166
			while ( elem = second[ i++ ] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1167
				first[ pos++ ] = elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1168
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1169
		return first;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1170
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1171
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1172
	unique: function( array ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1173
		var ret = [], done = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1174
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1175
		try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1176
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1177
			for ( var i = 0, length = array.length; i < length; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1178
				var id = jQuery.data( array[ i ] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1179
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1180
				if ( !done[ id ] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1181
					done[ id ] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1182
					ret.push( array[ i ] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1183
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1184
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1185
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1186
		} catch( e ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1187
			ret = array;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1188
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1189
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1190
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1191
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1192
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1193
	grep: function( elems, callback, inv ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1194
		var ret = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1195
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1196
		// Go through the array, only saving the items
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1197
		// that pass the validator function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1198
		for ( var i = 0, length = elems.length; i < length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1199
			if ( !inv != !callback( elems[ i ], i ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1200
				ret.push( elems[ i ] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1201
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1202
		return ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1203
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1204
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1205
	map: function( elems, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1206
		var ret = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1207
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1208
		// Go through the array, translating each of the items to their
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1209
		// new value (or values).
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1210
		for ( var i = 0, length = elems.length; i < length; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1211
			var value = callback( elems[ i ], i );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1212
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1213
			if ( value != null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1214
				ret[ ret.length ] = value;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1215
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1216
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1217
		return ret.concat.apply( [], ret );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1218
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1219
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1220
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1221
var userAgent = navigator.userAgent.toLowerCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1222
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1223
// Figure out what browser is being used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1224
jQuery.browser = {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1225
	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1226
	safari: /webkit/.test( userAgent ),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1227
	opera: /opera/.test( userAgent ),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1228
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1229
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1230
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1231
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1232
var styleFloat = jQuery.browser.msie ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1233
	"styleFloat" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1234
	"cssFloat";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1235
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1236
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1237
	// Check to see if the W3C box model is being used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1238
	boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1239
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1240
	props: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1241
		"for": "htmlFor",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1242
		"class": "className",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1243
		"float": styleFloat,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1244
		cssFloat: styleFloat,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1245
		styleFloat: styleFloat,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1246
		readonly: "readOnly",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1247
		maxlength: "maxLength",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1248
		cellspacing: "cellSpacing",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1249
		rowspan: "rowSpan"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1250
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1251
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1252
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1253
jQuery.each({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1254
	parent: function(elem){return elem.parentNode;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1255
	parents: function(elem){return jQuery.dir(elem,"parentNode");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1256
	next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1257
	prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1258
	nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1259
	prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1260
	siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1261
	children: function(elem){return jQuery.sibling(elem.firstChild);},
1b021d921367 Umordnen
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);}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1263
}, function(name, fn){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1264
	jQuery.fn[ name ] = function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1265
		var ret = jQuery.map( this, fn );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1266
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1267
		if ( selector && typeof selector == "string" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1268
			ret = jQuery.multiFilter( selector, ret );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1269
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1270
		return this.pushStack( jQuery.unique( ret ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1271
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1272
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1273
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1274
jQuery.each({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1275
	appendTo: "append",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1276
	prependTo: "prepend",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1277
	insertBefore: "before",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1278
	insertAfter: "after",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1279
	replaceAll: "replaceWith"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1280
}, function(name, original){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1281
	jQuery.fn[ name ] = function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1282
		var args = arguments;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1283
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1284
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1285
			for ( var i = 0, length = args.length; i < length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1286
				jQuery( args[ i ] )[ original ]( this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1287
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1288
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1289
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1290
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1291
jQuery.each({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1292
	removeAttr: function( name ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1293
		jQuery.attr( this, name, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1294
		if (this.nodeType == 1)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1295
			this.removeAttribute( name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1296
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1297
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1298
	addClass: function( classNames ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1299
		jQuery.className.add( this, classNames );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1300
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1301
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1302
	removeClass: function( classNames ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1303
		jQuery.className.remove( this, classNames );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1304
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1305
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1306
	toggleClass: function( classNames ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1307
		jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1308
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1309
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1310
	remove: function( selector ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1311
		if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1312
			// Prevent memory leaks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1313
			jQuery( "*", this ).add(this).each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1314
				jQuery.event.remove(this);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1315
				jQuery.removeData(this);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1316
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1317
			if (this.parentNode)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1318
				this.parentNode.removeChild( this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1319
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1320
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1321
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1322
	empty: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1323
		// Remove element nodes and prevent memory leaks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1324
		jQuery( ">*", this ).remove();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1325
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1326
		// Remove any remaining nodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1327
		while ( this.firstChild )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1328
			this.removeChild( this.firstChild );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1329
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1330
}, function(name, fn){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1331
	jQuery.fn[ name ] = function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1332
		return this.each( fn, arguments );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1333
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1334
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1335
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1336
jQuery.each([ "Height", "Width" ], function(i, name){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1337
	var type = name.toLowerCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1338
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1339
	jQuery.fn[ type ] = function( size ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1340
		// Get window width or height
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1341
		return this[0] == window ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1342
			// Opera reports document.body.client[Width/Height] properly in both quirks and standards
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1343
			jQuery.browser.opera && document.body[ "client" + name ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1344
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1346
			jQuery.browser.safari && window[ "inner" + name ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1347
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1349
			document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1350
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1351
			// Get document width or height
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1352
			this[0] == document ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1353
				// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1354
				Math.max(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1355
					Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1356
					Math.max(document.body["offset" + name], document.documentElement["offset" + name])
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1357
				) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1358
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1359
				// Get or set width or height on the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1360
				size == undefined ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1361
					// Get width or height on the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1362
					(this.length ? jQuery.css( this[0], type ) : null) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1363
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1365
					this.css( type, size.constructor == String ? size : size + "px" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1366
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1367
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1368
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1369
// Helper function used by the dimensions and offset modules
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1370
function num(elem, prop) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1371
	return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1372
}var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1373
		"(?:[\\w*_-]|\\\\.)" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1374
		"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1375
	quickChild = new RegExp("^>\\s*(" + chars + "+)"),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1376
	quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1377
	quickClass = new RegExp("^([#.]?)(" + chars + "*)");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1378
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1379
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1380
	expr: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1381
		"": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1382
		"#": function(a,i,m){return a.getAttribute("id")==m[2];},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1383
		":": {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1384
			// Position Checks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1385
			lt: function(a,i,m){return i<m[3]-0;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1386
			gt: function(a,i,m){return i>m[3]-0;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1387
			nth: function(a,i,m){return m[3]-0==i;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1388
			eq: function(a,i,m){return m[3]-0==i;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1389
			first: function(a,i){return i==0;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1390
			last: function(a,i,m,r){return i==r.length-1;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1391
			even: function(a,i){return i%2==0;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1392
			odd: function(a,i){return i%2;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1393
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1394
			// Child Checks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1395
			"first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1396
			"last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1397
			"only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1398
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1399
			// Parent Checks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1400
			parent: function(a){return a.firstChild;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1401
			empty: function(a){return !a.firstChild;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1402
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1403
			// Text Check
1b021d921367 Umordnen
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;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1405
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1406
			// Visibility
1b021d921367 Umordnen
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";},
1b021d921367 Umordnen
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";},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1409
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1410
			// Form attributes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1411
			enabled: function(a){return !a.disabled;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1412
			disabled: function(a){return a.disabled;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1413
			checked: function(a){return a.checked;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1414
			selected: function(a){return a.selected||jQuery.attr(a,"selected");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1415
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1416
			// Form elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1417
			text: function(a){return "text"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1418
			radio: function(a){return "radio"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1419
			checkbox: function(a){return "checkbox"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1420
			file: function(a){return "file"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1421
			password: function(a){return "password"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1422
			submit: function(a){return "submit"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1423
			image: function(a){return "image"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1424
			reset: function(a){return "reset"==a.type;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1425
			button: function(a){return "button"==a.type||jQuery.nodeName(a,"button");},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1426
			input: function(a){return /input|select|textarea|button/i.test(a.nodeName);},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1427
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1428
			// :has()
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1429
			has: function(a,i,m){return jQuery.find(m[3],a).length;},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1430
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1431
			// :header
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1432
			header: function(a){return /h\d/i.test(a.nodeName);},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1433
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1434
			// :animated
1b021d921367 Umordnen
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;}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1436
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1437
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1438
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1439
	// The regular expressions that power the parsing engine
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1440
	parse: [
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1441
		// Match: [@value='test'], [@foo]
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1442
		/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1443
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1444
		// Match: :contains('foo')
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1445
		/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1446
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1447
		// Match: :even, :last-child, #id, .class
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1448
		new RegExp("^([:.#]*)(" + chars + "+)")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1449
	],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1450
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1451
	multiFilter: function( expr, elems, not ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1452
		var old, cur = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1453
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1454
		while ( expr && expr != old ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1455
			old = expr;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1456
			var f = jQuery.filter( expr, elems, not );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1457
			expr = f.t.replace(/^\s*,\s*/, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1458
			cur = not ? elems = f.r : jQuery.merge( cur, f.r );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1459
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1460
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1461
		return cur;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1462
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1463
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1464
	find: function( t, context ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1465
		// Quickly handle non-string expressions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1466
		if ( typeof t != "string" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1467
			return [ t ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1468
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1469
		// check to make sure context is a DOM element or a document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1470
		if ( context && context.nodeType != 1 && context.nodeType != 9)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1471
			return [ ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1472
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1473
		// Set the correct context (if none is provided)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1474
		context = context || document;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1475
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1476
		// Initialize the search
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1477
		var ret = [context], done = [], last, nodeName;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1478
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1479
		// Continue while a selector expression exists, and while
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1480
		// we're no longer looping upon ourselves
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1481
		while ( t && last != t ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1482
			var r = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1483
			last = t;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1484
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1485
			t = jQuery.trim(t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1486
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1487
			var foundToken = false,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1488
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1489
			// An attempt at speeding up child selectors that
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1490
			// point to a specific element tag
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1491
				re = quickChild,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1492
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1493
				m = re.exec(t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1494
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1495
			if ( m ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1496
				nodeName = m[1].toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1497
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1498
				// Perform our own iteration and filter
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1499
				for ( var i = 0; ret[i]; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1500
					for ( var c = ret[i].firstChild; c; c = c.nextSibling )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1501
						if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1502
							r.push( c );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1503
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1504
				ret = r;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1505
				t = t.replace( re, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1506
				if ( t.indexOf(" ") == 0 ) continue;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1507
				foundToken = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1508
			} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1509
				re = /^([>+~])\s*(\w*)/i;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1510
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1511
				if ( (m = re.exec(t)) != null ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1512
					r = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1513
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1514
					var merge = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1515
					nodeName = m[2].toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1516
					m = m[1];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1517
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1518
					for ( var j = 0, rl = ret.length; j < rl; j++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1519
						var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1520
						for ( ; n; n = n.nextSibling )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1521
							if ( n.nodeType == 1 ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1522
								var id = jQuery.data(n);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1523
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1524
								if ( m == "~" && merge[id] ) break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1525
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1526
								if (!nodeName || n.nodeName.toUpperCase() == nodeName ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1527
									if ( m == "~" ) merge[id] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1528
									r.push( n );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1529
								}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1530
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1531
								if ( m == "+" ) break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1532
							}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1533
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1534
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1535
					ret = r;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1536
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1537
					// And remove the token
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1538
					t = jQuery.trim( t.replace( re, "" ) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1539
					foundToken = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1540
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1541
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1542
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1543
			// See if there's still an expression, and that we haven't already
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1544
			// matched a token
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1545
			if ( t && !foundToken ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1546
				// Handle multiple expressions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1547
				if ( !t.indexOf(",") ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1548
					// Clean the result set
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1549
					if ( context == ret[0] ) ret.shift();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1550
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1551
					// Merge the result sets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1552
					done = jQuery.merge( done, ret );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1553
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1554
					// Reset the context
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1555
					r = ret = [context];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1556
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1557
					// Touch up the selector string
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1558
					t = " " + t.substr(1,t.length);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1559
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1560
				} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1561
					// Optimize for the case nodeName#idName
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1562
					var re2 = quickID;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1563
					var m = re2.exec(t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1564
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1565
					// Re-organize the results, so that they're consistent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1566
					if ( m ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1567
						m = [ 0, m[2], m[3], m[1] ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1568
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1569
					} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1570
						// Otherwise, do a traditional filter check for
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1571
						// ID, class, and element selectors
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1572
						re2 = quickClass;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1573
						m = re2.exec(t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1574
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1575
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1576
					m[2] = m[2].replace(/\\/g, "");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1577
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1578
					var elem = ret[ret.length-1];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1579
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1580
					// Try to do a global search by ID, where we can
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1581
					if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1582
						// Optimization for HTML document case
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1583
						var oid = elem.getElementById(m[2]);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1584
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1585
						// Do a quick check for the existence of the actual ID attribute
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1586
						// to avoid selecting by the name attribute in IE
1b021d921367 Umordnen
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
1b021d921367 Umordnen
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] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1589
							oid = jQuery('[@id="'+m[2]+'"]', elem)[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1590
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1591
						// Do a quick check for node name (where applicable) so
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1592
						// that div#foo searches will be really fast
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1593
						ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1594
					} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1595
						// We need to find all descendant elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1596
						for ( var i = 0; ret[i]; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1597
							// Grab the tag name being searched for
1b021d921367 Umordnen
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];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1599
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1600
							// Handle IE7 being really dumb about <object>s
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1601
							if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1602
								tag = "param";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1603
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1604
							r = jQuery.merge( r, ret[i].getElementsByTagName( tag ));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1605
						}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1606
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1607
						// It's faster to filter by class and be done with it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1608
						if ( m[1] == "." )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1609
							r = jQuery.classFilter( r, m[2] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1610
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1611
						// Same with ID filtering
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1612
						if ( m[1] == "#" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1613
							var tmp = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1614
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1615
							// Try to find the element with the ID
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1616
							for ( var i = 0; r[i]; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1617
								if ( r[i].getAttribute("id") == m[2] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1618
									tmp = [ r[i] ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1619
									break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1620
								}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1621
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1622
							r = tmp;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1623
						}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1624
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1625
						ret = r;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1626
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1627
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1628
					t = t.replace( re2, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1629
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1630
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1631
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1632
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1633
			// If a selector string still exists
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1634
			if ( t ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1635
				// Attempt to filter it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1636
				var val = jQuery.filter(t,r);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1637
				ret = r = val.r;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1638
				t = jQuery.trim(val.t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1639
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1640
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1641
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1642
		// An error occurred with the selector;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1643
		// just return an empty set instead
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1644
		if ( t )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1645
			ret = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1646
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1647
		// Remove the root context
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1648
		if ( ret && context == ret[0] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1649
			ret.shift();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1650
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1651
		// And combine the results
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1652
		done = jQuery.merge( done, ret );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1653
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1654
		return done;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1655
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1656
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1657
	classFilter: function(r,m,not){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1658
		m = " " + m + " ";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1659
		var tmp = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1660
		for ( var i = 0; r[i]; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1661
			var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1662
			if ( !not && pass || not && !pass )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1663
				tmp.push( r[i] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1664
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1665
		return tmp;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1666
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1667
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1668
	filter: function(t,r,not) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1669
		var last;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1670
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1671
		// Look for common filter expressions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1672
		while ( t && t != last ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1673
			last = t;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1674
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1675
			var p = jQuery.parse, m;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1676
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1677
			for ( var i = 0; p[i]; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1678
				m = p[i].exec( t );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1679
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1680
				if ( m ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1681
					// Remove what we just matched
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1682
					t = t.substring( m[0].length );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1683
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1684
					m[2] = m[2].replace(/\\/g, "");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1685
					break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1686
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1687
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1688
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1689
			if ( !m )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1690
				break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1691
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1692
			// :not() is a special case that can be optimized by
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1693
			// keeping it out of the expression list
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1694
			if ( m[1] == ":" && m[2] == "not" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1695
				// optimize if only one selector found (most common case)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1696
				r = isSimple.test( m[3] ) ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1697
					jQuery.filter(m[3], r, true).r :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1698
					jQuery( r ).not( m[3] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1699
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1700
			// We can get a big speed boost by filtering by class here
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1701
			else if ( m[1] == "." )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1702
				r = jQuery.classFilter(r, m[2], not);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1703
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1704
			else if ( m[1] == "[" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1705
				var tmp = [], type = m[3];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1706
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1707
				for ( var i = 0, rl = r.length; i < rl; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1708
					var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1709
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1710
					if ( z == null || /href|src|selected/.test(m[2]) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1711
						z = jQuery.attr(a,m[2]) || '';
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1712
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1713
					if ( (type == "" && !!z ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1714
						 type == "=" && z == m[5] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1715
						 type == "!=" && z != m[5] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1716
						 type == "^=" && z && !z.indexOf(m[5]) ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1717
						 type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1718
						 (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1719
							tmp.push( a );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1720
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1721
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1722
				r = tmp;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1723
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1724
			// We can get a speed boost by handling nth-child here
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1725
			} else if ( m[1] == ":" && m[2] == "nth-child" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1726
				var merge = {}, tmp = [],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1727
					// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1728
					test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1729
						m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1730
						!/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1731
					// calculate the numbers (first)n+(last) including if they are negative
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1732
					first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1733
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1734
				// loop through all the elements left in the jQuery object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1735
				for ( var i = 0, rl = r.length; i < rl; i++ ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1736
					var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1737
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1738
					if ( !merge[id] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1739
						var c = 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1740
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1741
						for ( var n = parentNode.firstChild; n; n = n.nextSibling )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1742
							if ( n.nodeType == 1 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1743
								n.nodeIndex = c++;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1744
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1745
						merge[id] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1746
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1747
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1748
					var add = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1749
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1750
					if ( first == 0 ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1751
						if ( node.nodeIndex == last )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1752
							add = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1753
					} else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1754
						add = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1755
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1756
					if ( add ^ not )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1757
						tmp.push( node );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1758
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1759
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1760
				r = tmp;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1761
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1762
			// Otherwise, find the expression to execute
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1763
			} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1764
				var fn = jQuery.expr[ m[1] ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1765
				if ( typeof fn == "object" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1766
					fn = fn[ m[2] ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1767
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1768
				if ( typeof fn == "string" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1769
					fn = eval("false||function(a,i){return " + fn + ";}");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1770
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1771
				// Execute it against the current filter
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1772
				r = jQuery.grep( r, function(elem, i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1773
					return fn(elem, i, m, r);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1774
				}, not );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1775
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1776
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1777
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1778
		// Return an array of filtered elements (r)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1779
		// and the modified expression string (t)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1780
		return { r: r, t: t };
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1781
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1782
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1783
	dir: function( elem, dir ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1784
		var matched = [],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1785
			cur = elem[dir];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1786
		while ( cur && cur != document ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1787
			if ( cur.nodeType == 1 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1788
				matched.push( cur );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1789
			cur = cur[dir];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1790
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1791
		return matched;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1792
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1793
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1794
	nth: function(cur,result,dir,elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1795
		result = result || 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1796
		var num = 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1797
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1798
		for ( ; cur; cur = cur[dir] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1799
			if ( cur.nodeType == 1 && ++num == result )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1800
				break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1801
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1802
		return cur;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1803
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1804
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1805
	sibling: function( n, elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1806
		var r = [];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1807
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1808
		for ( ; n; n = n.nextSibling ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1809
			if ( n.nodeType == 1 && n != elem )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1810
				r.push( n );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1811
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1812
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1813
		return r;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1814
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1815
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1816
/*
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1817
 * A number of helper functions used for managing events.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1818
 * Many of the ideas behind this code orignated from
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1819
 * Dean Edwards' addEvent library.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1820
 */
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1821
jQuery.event = {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1822
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1823
	// Bind an event to an element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1824
	// Original by Dean Edwards
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1825
	add: function(elem, types, handler, data) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1826
		if ( elem.nodeType == 3 || elem.nodeType == 8 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1827
			return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1828
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1829
		// For whatever reason, IE has trouble passing the window object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1830
		// around, causing it to be cloned in the process
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1831
		if ( jQuery.browser.msie && elem.setInterval )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1832
			elem = window;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1833
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1834
		// Make sure that the function being executed has a unique ID
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1835
		if ( !handler.guid )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1836
			handler.guid = this.guid++;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1837
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1838
		// if data is passed, bind to handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1839
		if( data != undefined ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1840
			// Create temporary function pointer to original handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1841
			var fn = handler;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1842
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1843
			// Create unique handler function, wrapped around original handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1844
			handler = this.proxy( fn, function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1845
				// Pass arguments and context to original handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1846
				return fn.apply(this, arguments);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1847
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1848
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1849
			// Store data in unique handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1850
			handler.data = data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1851
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1852
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1853
		// Init the element's event structure
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1854
		var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1855
			handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1856
				// Handle the second event of a trigger and when
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1857
				// an event is called after a page has unloaded
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1858
				if ( typeof jQuery != "undefined" && !jQuery.event.triggered )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1859
					return jQuery.event.handle.apply(arguments.callee.elem, arguments);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1860
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1861
		// Add elem as a property of the handle function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1862
		// This is to prevent a memory leak with non-native
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1863
		// event in IE.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1864
		handle.elem = elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1865
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1866
		// Handle multiple events separated by a space
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1867
		// jQuery(...).bind("mouseover mouseout", fn);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1868
		jQuery.each(types.split(/\s+/), function(index, type) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1869
			// Namespaced event handlers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1870
			var parts = type.split(".");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1871
			type = parts[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1872
			handler.type = parts[1];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1873
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1874
			// Get the current list of functions bound to this event
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1875
			var handlers = events[type];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1876
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1877
			// Init the event handler queue
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1878
			if (!handlers) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1879
				handlers = events[type] = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1880
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1881
				// Check for a special event handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1882
				// Only use addEventListener/attachEvent if the special
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1883
				// events handler returns false
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1884
				if ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1885
					// Bind the global event handler to the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1886
					if (elem.addEventListener)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1887
						elem.addEventListener(type, handle, false);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1888
					else if (elem.attachEvent)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1889
						elem.attachEvent("on" + type, handle);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1890
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1891
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1892
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1893
			// Add the function to the element's handler list
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1894
			handlers[handler.guid] = handler;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1895
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1896
			// Keep track of which events have been used, for global triggering
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1897
			jQuery.event.global[type] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1898
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1899
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1900
		// Nullify elem to prevent memory leaks in IE
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1901
		elem = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1902
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1903
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1904
	guid: 1,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1905
	global: {},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1906
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1907
	// Detach an event or set of events from an element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1908
	remove: function(elem, types, handler) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1909
		// don't do events on text and comment nodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1910
		if ( elem.nodeType == 3 || elem.nodeType == 8 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1911
			return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1912
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1913
		var events = jQuery.data(elem, "events"), ret, index;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1914
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1915
		if ( events ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1916
			// Unbind all events for the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1917
			if ( types == undefined || (typeof types == "string" && types.charAt(0) == ".") )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1918
				for ( var type in events )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1919
					this.remove( elem, type + (types || "") );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1920
			else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1921
				// types is actually an event object here
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1922
				if ( types.type ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1923
					handler = types.handler;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1924
					types = types.type;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1925
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1926
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1927
				// Handle multiple events seperated by a space
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1928
				// jQuery(...).unbind("mouseover mouseout", fn);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1929
				jQuery.each(types.split(/\s+/), function(index, type){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1930
					// Namespaced event handlers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1931
					var parts = type.split(".");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1932
					type = parts[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1933
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1934
					if ( events[type] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1935
						// remove the given handler for the given type
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1936
						if ( handler )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1937
							delete events[type][handler.guid];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1938
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1939
						// remove all handlers for the given type
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1940
						else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1941
							for ( handler in events[type] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1942
								// Handle the removal of namespaced events
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1943
								if ( !parts[1] || events[type][handler].type == parts[1] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1944
									delete events[type][handler];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1945
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1946
						// remove generic event handler if no more handlers exist
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1947
						for ( ret in events[type] ) break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1948
						if ( !ret ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1949
							if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1950
								if (elem.removeEventListener)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1951
									elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1952
								else if (elem.detachEvent)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1953
									elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1954
							}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1955
							ret = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1956
							delete events[type];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1957
						}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1958
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1959
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1960
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1961
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1962
			// Remove the expando if it's no longer used
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1963
			for ( ret in events ) break;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1964
			if ( !ret ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1965
				var handle = jQuery.data( elem, "handle" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1966
				if ( handle ) handle.elem = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1967
				jQuery.removeData( elem, "events" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1968
				jQuery.removeData( elem, "handle" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1969
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1970
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1971
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1972
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1973
	trigger: function(type, data, elem, donative, extra) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1974
		// Clone the incoming data, if any
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1975
		data = jQuery.makeArray(data);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1976
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1977
		if ( type.indexOf("!") >= 0 ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1978
			type = type.slice(0, -1);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1979
			var exclusive = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1980
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1981
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1982
		// Handle a global trigger
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1983
		if ( !elem ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1984
			// Only trigger if we've ever bound an event for it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1985
			if ( this.global[type] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1986
				jQuery("*").add([window, document]).trigger(type, data);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1987
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1988
		// Handle triggering a single element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1989
		} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1990
			// don't do events on text and comment nodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1991
			if ( elem.nodeType == 3 || elem.nodeType == 8 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1992
				return undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1993
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1994
			var val, ret, fn = jQuery.isFunction( elem[ type ] || null ),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1995
				// Check to see if we need to provide a fake event, or not
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1996
				event = !data[0] || !data[0].preventDefault;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1997
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1998
			// Pass along a fake event
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  1999
			if ( event ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2000
				data.unshift({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2001
					type: type,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2002
					target: elem,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2003
					preventDefault: function(){},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2004
					stopPropagation: function(){},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2005
					timeStamp: now()
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2006
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2007
				data[0][expando] = true; // no need to fix fake event
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2008
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2009
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2010
			// Enforce the right trigger type
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2011
			data[0].type = type;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2012
			if ( exclusive )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2013
				data[0].exclusive = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2014
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2015
			// Trigger the event, it is assumed that "handle" is a function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2016
			var handle = jQuery.data(elem, "handle");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2017
			if ( handle )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2018
				val = handle.apply( elem, data );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2019
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
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 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2022
				val = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2023
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2024
			// Extra functions don't get the custom event object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2025
			if ( event )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2026
				data.shift();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2027
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2028
			// Handle triggering of extra function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2029
			if ( extra && jQuery.isFunction( extra ) ) {
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2031
				ret = extra.apply( elem, val == null ? data : data.concat( val ) );
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2033
				if (ret !== undefined)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2034
					val = ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2035
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2036
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2037
			// Trigger the native events (except for clicks on links)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2038
			if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2039
				this.triggered = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2040
				try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2041
					elem[ type ]();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2042
				// prevent IE from throwing an error for some hidden elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2043
				} catch (e) {}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2044
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2045
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2046
			this.triggered = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2047
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2048
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2049
		return val;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2050
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2051
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2052
	handle: function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2053
		// returned undefined or false
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2054
		var val, ret, namespace, all, handlers;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2055
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2056
		event = arguments[0] = jQuery.event.fix( event || window.event );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2057
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2058
		// Namespaced event handlers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2059
		namespace = event.type.split(".");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2060
		event.type = namespace[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2061
		namespace = namespace[1];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2062
		// Cache this now, all = true means, any handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2063
		all = !namespace && !event.exclusive;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2064
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2065
		handlers = ( jQuery.data(this, "events") || {} )[event.type];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2066
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2067
		for ( var j in handlers ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2068
			var handler = handlers[j];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2069
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2070
			// Filter the functions by class
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2071
			if ( all || handler.type == namespace ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2072
				// Pass in a reference to the handler function itself
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2073
				// So that we can later remove it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2074
				event.handler = handler;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2075
				event.data = handler.data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2076
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2077
				ret = handler.apply( this, arguments );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2078
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2079
				if ( val !== false )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2080
					val = ret;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2081
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2082
				if ( ret === false ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2083
					event.preventDefault();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2084
					event.stopPropagation();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2085
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2086
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2087
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2088
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2089
		return val;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2090
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2091
1b021d921367 Umordnen
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(" "),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2093
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2094
	fix: function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2095
		if ( event[expando] == true )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2096
			return event;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2097
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2098
		// store a copy of the original event object
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2099
		// and "clone" to set read-only properties
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2100
		var originalEvent = event;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2101
		event = { originalEvent: originalEvent };
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2102
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2103
		for ( var i = this.props.length, prop; i; ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2104
			prop = this.props[ --i ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2105
			event[ prop ] = originalEvent[ prop ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2106
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2107
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2108
		// Mark it as fixed
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2109
		event[expando] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2110
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2111
		// add preventDefault and stopPropagation since
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2112
		// they will not work on the clone
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2113
		event.preventDefault = function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2114
			// if preventDefault exists run it on the original event
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2115
			if (originalEvent.preventDefault)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2116
				originalEvent.preventDefault();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2117
			// otherwise set the returnValue property of the original event to false (IE)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2118
			originalEvent.returnValue = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2119
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2120
		event.stopPropagation = function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2121
			// if stopPropagation exists run it on the original event
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2122
			if (originalEvent.stopPropagation)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2123
				originalEvent.stopPropagation();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2124
			// otherwise set the cancelBubble property of the original event to true (IE)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2125
			originalEvent.cancelBubble = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2126
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2127
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2128
		// Fix timeStamp
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2129
		event.timeStamp = event.timeStamp || now();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2130
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2131
		// Fix target property, if necessary
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2132
		if ( !event.target )
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2134
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2135
		// check if target is a textnode (safari)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2136
		if ( event.target.nodeType == 3 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2137
			event.target = event.target.parentNode;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2138
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2139
		// Add relatedTarget, if necessary
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2140
		if ( !event.relatedTarget && event.fromElement )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2141
			event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2142
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2143
		// Calculate pageX/Y if missing and clientX/Y available
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2144
		if ( event.pageX == null && event.clientX != null ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2145
			var doc = document.documentElement, body = document.body;
1b021d921367 Umordnen
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);
1b021d921367 Umordnen
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);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2148
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2149
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2150
		// Add which for key events
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2151
		if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2152
			event.which = event.charCode || event.keyCode;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2153
1b021d921367 Umordnen
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)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2155
		if ( !event.metaKey && event.ctrlKey )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2156
			event.metaKey = event.ctrlKey;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2157
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2158
		// Add which for click: 1 == left; 2 == middle; 3 == right
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2159
		// Note: button is not normalized, so don't use it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2160
		if ( !event.which && event.button )
1b021d921367 Umordnen
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 ) ));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2162
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2163
		return event;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2164
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2165
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2166
	proxy: function( fn, proxy ){
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2168
		proxy.guid = fn.guid = fn.guid || proxy.guid || this.guid++;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2169
		// So proxy can be declared as an argument
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2170
		return proxy;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2171
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2172
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2173
	special: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2174
		ready: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2175
			setup: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2176
				// Make sure the ready event is setup
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2177
				bindReady();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2178
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2179
			},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2180
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2181
			teardown: function() { return; }
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2182
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2183
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2184
		mouseenter: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2185
			setup: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2186
				if ( jQuery.browser.msie ) return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2187
				jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2188
				return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2189
			},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2190
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2191
			teardown: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2192
				if ( jQuery.browser.msie ) return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2193
				jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2194
				return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2195
			},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2196
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2197
			handler: function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2198
				// If we actually just moused on to a sub-element, ignore it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2199
				if ( withinElement(event, this) ) return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2200
				// Execute the right handlers by setting the event type to mouseenter
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2201
				event.type = "mouseenter";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2202
				return jQuery.event.handle.apply(this, arguments);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2203
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2204
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2205
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2206
		mouseleave: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2207
			setup: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2208
				if ( jQuery.browser.msie ) return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2209
				jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2210
				return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2211
			},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2212
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2213
			teardown: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2214
				if ( jQuery.browser.msie ) return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2215
				jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2216
				return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2217
			},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2218
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2219
			handler: function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2220
				// If we actually just moused on to a sub-element, ignore it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2221
				if ( withinElement(event, this) ) return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2222
				// Execute the right handlers by setting the event type to mouseleave
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2223
				event.type = "mouseleave";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2224
				return jQuery.event.handle.apply(this, arguments);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2225
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2226
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2227
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2228
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2229
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2230
jQuery.fn.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2231
	bind: function( type, data, fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2232
		return type == "unload" ? this.one(type, data, fn) : this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2233
			jQuery.event.add( this, type, fn || data, fn && data );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2234
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2235
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2236
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2237
	one: function( type, data, fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2238
		var one = jQuery.event.proxy( fn || data, function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2239
			jQuery(this).unbind(event, one);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2240
			return (fn || data).apply( this, arguments );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2241
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2242
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2243
			jQuery.event.add( this, type, one, fn && data);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2244
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2245
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2246
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2247
	unbind: function( type, fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2248
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2249
			jQuery.event.remove( this, type, fn );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2250
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2251
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2252
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2253
	trigger: function( type, data, fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2254
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2255
			jQuery.event.trigger( type, data, this, true, fn );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2256
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2257
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2258
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2259
	triggerHandler: function( type, data, fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2260
		return this[0] && jQuery.event.trigger( type, data, this[0], false, fn );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2261
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2262
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2263
	toggle: function( fn ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2264
		// Save reference to arguments for access in closure
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2265
		var args = arguments, i = 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2266
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2267
		// link all the functions, so any of them can unbind this click handler
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2268
		while( i < args.length )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2269
			jQuery.event.proxy( fn, args[i++] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2270
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2271
		return this.click( jQuery.event.proxy( fn, function(event) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2272
			// Figure out which function to execute
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2273
			this.lastToggle = ( this.lastToggle || 0 ) % i;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2274
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2275
			// Make sure that clicks stop
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2276
			event.preventDefault();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2277
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2278
			// and execute the function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2279
			return args[ this.lastToggle++ ].apply( this, arguments ) || false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2280
		}));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2281
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2282
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2283
	hover: function(fnOver, fnOut) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2284
		return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2285
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2286
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2287
	ready: function(fn) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2288
		// Attach the listeners
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2289
		bindReady();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2290
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2291
		// If the DOM is already ready
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2292
		if ( jQuery.isReady )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2293
			// Execute the function immediately
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2294
			fn.call( document, jQuery );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2295
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2296
		// Otherwise, remember the function for later
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2297
		else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2298
			// Add the function to the wait list
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2299
			jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2300
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2301
		return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2302
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2303
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2304
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2305
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2306
	isReady: false,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2307
	readyList: [],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2308
	// Handle when the DOM is ready
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2309
	ready: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2310
		// Make sure that the DOM is not already loaded
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2311
		if ( !jQuery.isReady ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2312
			// Remember that the DOM is ready
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2313
			jQuery.isReady = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2314
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2315
			// If there are functions bound, to execute
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2316
			if ( jQuery.readyList ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2317
				// Execute all of them
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2318
				jQuery.each( jQuery.readyList, function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2319
					this.call( document );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2320
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2321
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2322
				// Reset the list of functions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2323
				jQuery.readyList = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2324
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2325
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2326
			// Trigger any bound ready events
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2327
			jQuery(document).triggerHandler("ready");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2328
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2329
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2330
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2331
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2332
var readyBound = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2333
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2334
function bindReady(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2335
	if ( readyBound ) return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2336
	readyBound = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2337
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2339
	if ( document.addEventListener && !jQuery.browser.opera)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2340
		// Use the handy event callback
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2341
		document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2342
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2343
	// If IE is used and is not in a frame
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2344
	// Continually check to see if the document is ready
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2345
	if ( jQuery.browser.msie && window == top ) (function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2346
		if (jQuery.isReady) return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2347
		try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2348
			// If IE is used, use the trick by Diego Perini
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2349
			// http://javascript.nwbox.com/IEContentLoaded/
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2350
			document.documentElement.doScroll("left");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2351
		} catch( error ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2352
			setTimeout( arguments.callee, 0 );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2353
			return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2354
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2355
		// and execute any waiting functions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2356
		jQuery.ready();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2357
	})();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2358
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2359
	if ( jQuery.browser.opera )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2360
		document.addEventListener( "DOMContentLoaded", function () {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2361
			if (jQuery.isReady) return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2362
			for (var i = 0; i < document.styleSheets.length; i++)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2363
				if (document.styleSheets[i].disabled) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2364
					setTimeout( arguments.callee, 0 );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2365
					return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2366
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2367
			// and execute any waiting functions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2368
			jQuery.ready();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2369
		}, false);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2370
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2371
	if ( jQuery.browser.safari ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2372
		var numStyles;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2373
		(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2374
			if (jQuery.isReady) return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2375
			if ( document.readyState != "loaded" && document.readyState != "complete" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2376
				setTimeout( arguments.callee, 0 );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2377
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2378
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2379
			if ( numStyles === undefined )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2380
				numStyles = jQuery("style, link[rel=stylesheet]").length;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2381
			if ( document.styleSheets.length != numStyles ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2382
				setTimeout( arguments.callee, 0 );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2383
				return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2384
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2385
			// and execute any waiting functions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2386
			jQuery.ready();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2387
		})();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2388
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2389
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2390
	// A fallback to window.onload, that will always work
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2391
	jQuery.event.add( window, "load", jQuery.ready );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2392
}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2393
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2394
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2395
	"mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2396
	"submit,keydown,keypress,keyup,error").split(","), function(i, name){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2397
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2398
	// Handle event binding
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2399
	jQuery.fn[name] = function(fn){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2400
		return fn ? this.bind(name, fn) : this.trigger(name);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2401
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2402
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2403
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2404
// Checks if an event happened on an element within another element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2405
// Used in jQuery.event.special.mouseenter and mouseleave handlers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2406
var withinElement = function(event, elem) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2407
	// Check if mouse(over|out) are still within the same parent element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2408
	var parent = event.relatedTarget;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2409
	// Traverse up the tree
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2410
	while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; }
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2411
	// Return true if we actually just moused on to a sub-element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2412
	return parent == elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2413
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2414
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2415
// Prevent memory leaks in IE
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2416
// And prevent errors on refresh with events like mouseover in other browsers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2417
// Window isn't included so as not to unbind existing unload events
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2418
jQuery(window).bind("unload", function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2419
	jQuery("*").add(document).unbind();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2420
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2421
jQuery.fn.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2422
	// Keep a copy of the old load
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2423
	_load: jQuery.fn.load,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2424
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2425
	load: function( url, params, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2426
		if ( typeof url != 'string' )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2427
			return this._load( url );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2428
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2429
		var off = url.indexOf(" ");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2430
		if ( off >= 0 ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2431
			var selector = url.slice(off, url.length);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2432
			url = url.slice(0, off);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2433
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2434
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2435
		callback = callback || function(){};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2436
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2437
		// Default to a GET request
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2438
		var type = "GET";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2439
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2440
		// If the second parameter was provided
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2441
		if ( params )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2442
			// If it's a function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2443
			if ( jQuery.isFunction( params ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2444
				// We assume that it's the callback
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2445
				callback = params;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2446
				params = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2447
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2448
			// Otherwise, build a param string
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2449
			} else if( typeof params == 'object' ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2450
				params = jQuery.param( params );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2451
				type = "POST";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2452
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2453
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2454
		var self = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2455
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2456
		// Request the remote document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2457
		jQuery.ajax({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2458
			url: url,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2459
			type: type,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2460
			dataType: "html",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2461
			data: params,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2462
			complete: function(res, status){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2463
				// If successful, inject the HTML into all the matched elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2464
				if ( status == "success" || status == "notmodified" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2465
					// See if a selector was specified
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2466
					self.html( selector ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2467
						// Create a dummy div to hold the results
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2468
						jQuery("<div/>")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2469
							// inject the contents of the document in, removing the scripts
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2470
							// to avoid any 'Permission Denied' errors in IE
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2471
							.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2472
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2473
							// Locate the specified elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2474
							.find(selector) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2475
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2476
						// If not, just inject the full result
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2477
						res.responseText );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2478
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2479
				self.each( callback, [res.responseText, status, res] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2480
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2481
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2482
		return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2483
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2484
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2485
	serialize: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2486
		return jQuery.param(this.serializeArray());
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2487
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2488
	serializeArray: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2489
		return this.map(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2490
			return jQuery.nodeName(this, "form") ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2491
				jQuery.makeArray(this.elements) : this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2492
		})
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2493
		.filter(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2494
			return this.name && !this.disabled &&
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2495
				(this.checked || /select|textarea/i.test(this.nodeName) ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2496
					/text|hidden|password/i.test(this.type));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2497
		})
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2498
		.map(function(i, elem){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2499
			var val = jQuery(this).val();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2500
			return val == null ? null :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2501
				val.constructor == Array ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2502
					jQuery.map( val, function(val, i){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2503
						return {name: elem.name, value: val};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2504
					}) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2505
					{name: elem.name, value: val};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2506
		}).get();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2507
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2508
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2509
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2510
// Attach a bunch of functions for handling common AJAX events
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2511
jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2512
	jQuery.fn[o] = function(f){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2513
		return this.bind(o, f);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2514
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2515
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2516
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2517
var jsc = now();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2518
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2519
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2520
	get: function( url, data, callback, type ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2521
		// shift arguments if data argument was ommited
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2522
		if ( jQuery.isFunction( data ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2523
			callback = data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2524
			data = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2525
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2526
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2527
		return jQuery.ajax({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2528
			type: "GET",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2529
			url: url,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2530
			data: data,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2531
			success: callback,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2532
			dataType: type
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2533
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2534
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2535
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2536
	getScript: function( url, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2537
		return jQuery.get(url, null, callback, "script");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2538
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2539
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2540
	getJSON: function( url, data, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2541
		return jQuery.get(url, data, callback, "json");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2542
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2543
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2544
	post: function( url, data, callback, type ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2545
		if ( jQuery.isFunction( data ) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2546
			callback = data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2547
			data = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2548
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2549
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2550
		return jQuery.ajax({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2551
			type: "POST",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2552
			url: url,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2553
			data: data,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2554
			success: callback,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2555
			dataType: type
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2556
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2557
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2558
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2559
	ajaxSetup: function( settings ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2560
		jQuery.extend( jQuery.ajaxSettings, settings );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2561
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2562
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2563
	ajaxSettings: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2564
		url: location.href,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2565
		global: true,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2566
		type: "GET",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2567
		timeout: 0,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2568
		contentType: "application/x-www-form-urlencoded",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2569
		processData: true,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2570
		async: true,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2571
		data: null,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2572
		username: null,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2573
		password: null,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2574
		accepts: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2575
			xml: "application/xml, text/xml",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2576
			html: "text/html",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2577
			script: "text/javascript, application/javascript",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2578
			json: "application/json, text/javascript",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2579
			text: "text/plain",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2580
			_default: "*/*"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2581
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2582
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2583
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2584
	// Last-Modified header cache for next request
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2585
	lastModified: {},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2586
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2587
	ajax: function( s ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2588
		// Extend the settings, but re-extend 's' so that it can be
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2589
		// checked again later (in the test suite, specifically)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2590
		s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2591
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2592
		var jsonp, jsre = /=\?(&|$)/g, status, data,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2593
			type = s.type.toUpperCase();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2594
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2595
		// convert data if not already a string
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2596
		if ( s.data && s.processData && typeof s.data != "string" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2597
			s.data = jQuery.param(s.data);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2598
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2599
		// Handle JSONP Parameter Callbacks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2600
		if ( s.dataType == "jsonp" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2601
			if ( type == "GET" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2602
				if ( !s.url.match(jsre) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2603
					s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2604
			} else if ( !s.data || !s.data.match(jsre) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2605
				s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2606
			s.dataType = "json";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2607
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2608
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2609
		// Build temporary JSONP function
1b021d921367 Umordnen
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)) ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2611
			jsonp = "jsonp" + jsc++;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2612
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2613
			// Replace the =? sequence both in the query string and the data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2614
			if ( s.data )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2615
				s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2616
			s.url = s.url.replace(jsre, "=" + jsonp + "$1");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2617
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2618
			// We need to make sure
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2619
			// that a JSONP style response is executed properly
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2620
			s.dataType = "script";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2621
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2622
			// Handle JSONP-style loading
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2623
			window[ jsonp ] = function(tmp){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2624
				data = tmp;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2625
				success();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2626
				complete();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2627
				// Garbage collect
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2628
				window[ jsonp ] = undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2629
				try{ delete window[ jsonp ]; } catch(e){}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2630
				if ( head )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2631
					head.removeChild( script );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2632
			};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2633
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2634
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2635
		if ( s.dataType == "script" && s.cache == null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2636
			s.cache = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2637
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2638
		if ( s.cache === false && type == "GET" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2639
			var ts = now();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2640
			// try replacing _= if it is there
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2641
			var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2642
			// if nothing was replaced, add timestamp to the end
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2643
			s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2644
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2645
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2646
		// If data is available, append data to url for get requests
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2647
		if ( s.data && type == "GET" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2648
			s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2649
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2650
			// IE likes to send both get and post data, prevent this
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2651
			s.data = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2652
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2653
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2654
		// Watch for a new set of requests
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2655
		if ( s.global && ! jQuery.active++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2656
			jQuery.event.trigger( "ajaxStart" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2657
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2658
		// Matches an absolute URL, and saves the domain
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2659
		var remote = /^(?:\w+:)?\/\/([^\/?#]+)/;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2660
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2661
		// If we're requesting a remote document
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2662
		// and trying to load JSON or Script with a GET
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2663
		if ( s.dataType == "script" && type == "GET"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2664
				&& remote.test(s.url) && remote.exec(s.url)[1] != location.host ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2665
			var head = document.getElementsByTagName("head")[0];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2666
			var script = document.createElement("script");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2667
			script.src = s.url;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2668
			if (s.scriptCharset)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2669
				script.charset = s.scriptCharset;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2670
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2671
			// Handle Script loading
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2672
			if ( !jsonp ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2673
				var done = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2674
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2675
				// Attach handlers for all browsers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2676
				script.onload = script.onreadystatechange = function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2677
					if ( !done && (!this.readyState ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2678
							this.readyState == "loaded" || this.readyState == "complete") ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2679
						done = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2680
						success();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2681
						complete();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2682
						head.removeChild( script );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2683
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2684
				};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2685
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2686
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2687
			head.appendChild(script);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2688
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2689
			// We handle everything using the script element injection
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2690
			return undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2691
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2692
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2693
		var requestDone = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2694
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2695
		// Create the request object; Microsoft failed to properly
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2697
		var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2698
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2699
		// Open the socket
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2700
		// Passing null username, generates a login popup on Opera (#2865)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2701
		if( s.username )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2702
			xhr.open(type, s.url, s.async, s.username, s.password);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2703
		else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2704
			xhr.open(type, s.url, s.async);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2705
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2706
		// Need an extra try/catch for cross domain requests in Firefox 3
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2707
		try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2708
			// Set the correct header, if data is being sent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2709
			if ( s.data )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2710
				xhr.setRequestHeader("Content-Type", s.contentType);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2711
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2712
			// Set the If-Modified-Since header, if ifModified mode.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2713
			if ( s.ifModified )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2714
				xhr.setRequestHeader("If-Modified-Since",
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2715
					jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2716
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2717
			// Set header so the called script knows that it's an XMLHttpRequest
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2718
			xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2719
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2720
			// Set the Accepts header for the server, depending on the dataType
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2721
			xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2722
				s.accepts[ s.dataType ] + ", */*" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2723
				s.accepts._default );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2724
		} catch(e){}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2725
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2726
		// Allow custom headers/mimetypes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2727
		if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2728
			// cleanup active request counter
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2729
			s.global && jQuery.active--;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2730
			// close opended socket
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2731
			xhr.abort();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2732
			return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2733
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2734
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2735
		if ( s.global )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2736
			jQuery.event.trigger("ajaxSend", [xhr, s]);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2737
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2738
		// Wait for a response to come back
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2739
		var onreadystatechange = function(isTimeout){
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2741
			if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2742
				requestDone = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2743
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2744
				// clear poll interval
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2745
				if (ival) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2746
					clearInterval(ival);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2747
					ival = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2748
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2749
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2750
				status = isTimeout == "timeout" ? "timeout" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2751
					!jQuery.httpSuccess( xhr ) ? "error" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2752
					s.ifModified && jQuery.httpNotModified( xhr, s.url ) ? "notmodified" :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2753
					"success";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2754
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2755
				if ( status == "success" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2756
					// Watch for, and catch, XML document parse errors
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2757
					try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2758
						// process the data (runs the xml through httpData regardless of callback)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2759
						data = jQuery.httpData( xhr, s.dataType, s.dataFilter );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2760
					} catch(e) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2761
						status = "parsererror";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2762
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2763
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2764
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2765
				// Make sure that the request was successful or notmodified
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2766
				if ( status == "success" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2767
					// Cache Last-Modified header, if ifModified mode.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2768
					var modRes;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2769
					try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2770
						modRes = xhr.getResponseHeader("Last-Modified");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2771
					} catch(e) {} // swallow exception thrown by FF if header is not available
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2772
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2773
					if ( s.ifModified && modRes )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2774
						jQuery.lastModified[s.url] = modRes;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2775
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2776
					// JSONP handles its own success callback
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2777
					if ( !jsonp )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2778
						success();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2779
				} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2780
					jQuery.handleError(s, xhr, status);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2781
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2782
				// Fire the complete handlers
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2783
				complete();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2784
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2785
				// Stop memory leaks
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2786
				if ( s.async )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2787
					xhr = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2788
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2789
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2790
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2791
		if ( s.async ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2792
			// don't attach the handler to the request, just poll it instead
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2793
			var ival = setInterval(onreadystatechange, 13);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2794
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2795
			// Timeout checker
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2796
			if ( s.timeout > 0 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2797
				setTimeout(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2798
					// Check to see if the request is still happening
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2799
					if ( xhr ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2800
						// Cancel the request
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2801
						xhr.abort();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2802
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2803
						if( !requestDone )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2804
							onreadystatechange( "timeout" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2805
					}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2806
				}, s.timeout);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2807
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2808
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2809
		// Send the data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2810
		try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2811
			xhr.send(s.data);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2812
		} catch(e) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2813
			jQuery.handleError(s, xhr, null, e);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2814
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2815
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2816
		// firefox 1.5 doesn't fire statechange for sync requests
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2817
		if ( !s.async )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2818
			onreadystatechange();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2819
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2820
		function success(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2821
			// If a local callback was specified, fire it and pass it the data
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2822
			if ( s.success )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2823
				s.success( data, status );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2824
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2825
			// Fire the global callback
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2826
			if ( s.global )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2827
				jQuery.event.trigger( "ajaxSuccess", [xhr, s] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2828
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2829
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2830
		function complete(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2831
			// Process result
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2832
			if ( s.complete )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2833
				s.complete(xhr, status);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2834
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2835
			// The request was completed
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2836
			if ( s.global )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2837
				jQuery.event.trigger( "ajaxComplete", [xhr, s] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2838
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2839
			// Handle the global AJAX counter
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2840
			if ( s.global && ! --jQuery.active )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2841
				jQuery.event.trigger( "ajaxStop" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2842
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2843
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2844
		// return XMLHttpRequest to allow aborting the request etc.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2845
		return xhr;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2846
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2847
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2848
	handleError: function( s, xhr, status, e ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2849
		// If a local callback was specified, fire it
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2850
		if ( s.error ) s.error( xhr, status, e );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2851
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2852
		// Fire the global callback
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2853
		if ( s.global )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2854
			jQuery.event.trigger( "ajaxError", [xhr, s, e] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2855
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2856
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2857
	// Counter for holding the number of active queries
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2858
	active: 0,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2859
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2860
	// Determines if an XMLHttpRequest was successful or not
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2861
	httpSuccess: function( xhr ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2862
		try {
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2864
			return !xhr.status && location.protocol == "file:" ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2865
				( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223 ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2866
				jQuery.browser.safari && xhr.status == undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2867
		} catch(e){}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2868
		return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2869
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2870
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2871
	// Determines if an XMLHttpRequest returns NotModified
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2872
	httpNotModified: function( xhr, url ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2873
		try {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2874
			var xhrRes = xhr.getResponseHeader("Last-Modified");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2875
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2876
			// Firefox always returns 200. check Last-Modified date
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2877
			return xhr.status == 304 || xhrRes == jQuery.lastModified[url] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2878
				jQuery.browser.safari && xhr.status == undefined;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2879
		} catch(e){}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2880
		return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2881
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2882
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2883
	httpData: function( xhr, type, filter ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2884
		var ct = xhr.getResponseHeader("content-type"),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2885
			xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2886
			data = xml ? xhr.responseXML : xhr.responseText;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2887
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2888
		if ( xml && data.documentElement.tagName == "parsererror" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2889
			throw "parsererror";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2890
			
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2891
		// Allow a pre-filtering function to sanitize the response
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2892
		if( filter )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2893
			data = filter( data, type );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2894
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2895
		// If the type is "script", eval it in global context
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2896
		if ( type == "script" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2897
			jQuery.globalEval( data );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2898
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2899
		// Get the JavaScript object, if JSON is used.
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2900
		if ( type == "json" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2901
			data = eval("(" + data + ")");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2902
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2903
		return data;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2904
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2905
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2906
	// Serialize an array of form elements or a set of
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2907
	// key/values into a query string
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2908
	param: function( a ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2909
		var s = [ ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2910
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2911
		function add( key, value ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2912
			s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2913
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2914
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2915
		// If an array was passed in, assume that it is an array
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2916
		// of form elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2917
		if ( a.constructor == Array || a.jquery )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2918
			// Serialize the form elements
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2919
			jQuery.each( a, function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2920
				add( this.name, this.value );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2921
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2922
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2923
		// Otherwise, assume that it's an object of key/value pairs
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2924
		else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2925
			// Serialize the key/values
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2926
			for ( var j in a )
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2928
				if ( a[j] && a[j].constructor == Array )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2929
					jQuery.each( a[j], function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2930
						add( j, this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2931
					});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2932
				else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2933
					add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2934
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2935
		// Return the resulting serialization
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2936
		return s.join("&").replace(/%20/g, "+");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2937
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2938
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2939
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2940
jQuery.fn.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2941
	show: function(speed,callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2942
		return speed ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2943
			this.animate({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2944
				height: "show", width: "show", opacity: "show"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2945
			}, speed, callback) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2946
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2947
			this.filter(":hidden").each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2948
				this.style.display = this.oldblock || "";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2949
				if ( jQuery.css(this,"display") == "none" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2950
					var elem = jQuery("<" + this.tagName + " />").appendTo("body");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2951
					this.style.display = elem.css("display");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2952
					// handle an edge condition where css is - div { display:none; } or similar
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2953
					if (this.style.display == "none")
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2954
						this.style.display = "block";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2955
					elem.remove();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2956
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2957
			}).end();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2958
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2959
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2960
	hide: function(speed,callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2961
		return speed ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2962
			this.animate({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2963
				height: "hide", width: "hide", opacity: "hide"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2964
			}, speed, callback) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2965
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2966
			this.filter(":visible").each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2967
				this.oldblock = this.oldblock || jQuery.css(this,"display");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2968
				this.style.display = "none";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2969
			}).end();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2970
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2971
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2972
	// Save the old toggle function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2973
	_toggle: jQuery.fn.toggle,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2974
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2975
	toggle: function( fn, fn2 ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2976
		return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2977
			this._toggle.apply( this, arguments ) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2978
			fn ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2979
				this.animate({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2980
					height: "toggle", width: "toggle", opacity: "toggle"
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2981
				}, fn, fn2) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2982
				this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2983
					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2984
				});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2985
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2986
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2987
	slideDown: function(speed,callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2988
		return this.animate({height: "show"}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2989
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2990
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2991
	slideUp: function(speed,callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2992
		return this.animate({height: "hide"}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2993
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2994
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2995
	slideToggle: function(speed, callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2996
		return this.animate({height: "toggle"}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2997
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2998
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  2999
	fadeIn: function(speed, callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3000
		return this.animate({opacity: "show"}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3001
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3002
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3003
	fadeOut: function(speed, callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3004
		return this.animate({opacity: "hide"}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3005
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3006
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3007
	fadeTo: function(speed,to,callback){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3008
		return this.animate({opacity: to}, speed, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3009
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3010
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3011
	animate: function( prop, speed, easing, callback ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3012
		var optall = jQuery.speed(speed, easing, callback);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3013
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3014
		return this[ optall.queue === false ? "each" : "queue" ](function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3015
			if ( this.nodeType != 1)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3016
				return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3017
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3018
			var opt = jQuery.extend({}, optall), p,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3019
				hidden = jQuery(this).is(":hidden"), self = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3020
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3021
			for ( p in prop ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3022
				if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3023
					return opt.complete.call(this);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3024
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3025
				if ( p == "height" || p == "width" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3026
					// Store display property
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3027
					opt.display = jQuery.css(this, "display");
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3028
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3029
					// Make sure that nothing sneaks out
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3030
					opt.overflow = this.style.overflow;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3031
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3032
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3033
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3034
			if ( opt.overflow != null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3035
				this.style.overflow = "hidden";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3036
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3037
			opt.curAnim = jQuery.extend({}, prop);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3038
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3039
			jQuery.each( prop, function(name, val){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3040
				var e = new jQuery.fx( self, opt, name );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3041
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3042
				if ( /toggle|show|hide/.test(val) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3043
					e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3044
				else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3045
					var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3046
						start = e.cur(true) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3047
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3048
					if ( parts ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3049
						var end = parseFloat(parts[2]),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3050
							unit = parts[3] || "px";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3051
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3052
						// We need to compute starting value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3053
						if ( unit != "px" ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3054
							self.style[ name ] = (end || 1) + unit;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3055
							start = ((end || 1) / e.cur(true)) * start;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3056
							self.style[ name ] = start + unit;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3057
						}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3058
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3059
						// If a +=/-= token was provided, we're doing a relative animation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3060
						if ( parts[1] )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3061
							end = ((parts[1] == "-=" ? -1 : 1) * end) + start;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3062
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3063
						e.custom( start, end, unit );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3064
					} else
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3065
						e.custom( start, val, "" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3066
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3067
			});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3068
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3069
			// For JS strict compliance
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3070
			return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3071
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3072
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3073
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3074
	queue: function(type, fn){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3075
		if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3076
			fn = type;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3077
			type = "fx";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3078
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3079
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3080
		if ( !type || (typeof type == "string" && !fn) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3081
			return queue( this[0], type );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3082
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3083
		return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3084
			if ( fn.constructor == Array )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3085
				queue(this, type, fn);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3086
			else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3087
				queue(this, type).push( fn );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3088
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3089
				if ( queue(this, type).length == 1 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3090
					fn.call(this);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3091
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3092
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3093
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3094
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3095
	stop: function(clearQueue, gotoEnd){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3096
		var timers = jQuery.timers;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3097
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3098
		if (clearQueue)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3099
			this.queue([]);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3100
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3101
		this.each(function(){
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3103
			for ( var i = timers.length - 1; i >= 0; i-- )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3104
				if ( timers[i].elem == this ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3105
					if (gotoEnd)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3106
						// force the next step to be the last
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3107
						timers[i](true);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3108
					timers.splice(i, 1);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3109
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3110
		});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3111
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3112
		// start the next in the queue if the last step wasn't forced
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3113
		if (!gotoEnd)
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3114
			this.dequeue();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3115
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3116
		return this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3117
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3118
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3119
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3120
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3121
var queue = function( elem, type, array ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3122
	if ( elem ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3123
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3124
		type = type || "fx";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3125
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3126
		var q = jQuery.data( elem, type + "queue" );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3127
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3128
		if ( !q || array )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3129
			q = jQuery.data( elem, type + "queue", jQuery.makeArray(array) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3130
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3131
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3132
	return q;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3133
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3134
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3135
jQuery.fn.dequeue = function(type){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3136
	type = type || "fx";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3137
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3138
	return this.each(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3139
		var q = queue(this, type);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3140
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3141
		q.shift();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3142
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3143
		if ( q.length )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3144
			q[0].call( this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3145
	});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3146
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3147
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3148
jQuery.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3149
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3150
	speed: function(speed, easing, fn) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3151
		var opt = speed && speed.constructor == Object ? speed : {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3152
			complete: fn || !fn && easing ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3153
				jQuery.isFunction( speed ) && speed,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3154
			duration: speed,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3155
			easing: fn && easing || easing && easing.constructor != Function && easing
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3156
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3157
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3158
		opt.duration = (opt.duration && opt.duration.constructor == Number ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3159
			opt.duration :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3160
			jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds.def;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3161
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3162
		// Queueing
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3163
		opt.old = opt.complete;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3164
		opt.complete = function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3165
			if ( opt.queue !== false )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3166
				jQuery(this).dequeue();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3167
			if ( jQuery.isFunction( opt.old ) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3168
				opt.old.call( this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3169
		};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3170
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3171
		return opt;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3172
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3173
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3174
	easing: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3175
		linear: function( p, n, firstNum, diff ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3176
			return firstNum + diff * p;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3177
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3178
		swing: function( p, n, firstNum, diff ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3179
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3180
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3181
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3182
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3183
	timers: [],
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3184
	timerId: null,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3185
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3186
	fx: function( elem, options, prop ){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3187
		this.options = options;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3188
		this.elem = elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3189
		this.prop = prop;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3190
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3191
		if ( !options.orig )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3192
			options.orig = {};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3193
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3194
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3195
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3196
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3197
jQuery.fx.prototype = {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3198
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3199
	// Simple function for setting a style value
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3200
	update: function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3201
		if ( this.options.step )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3202
			this.options.step.call( this.elem, this.now, this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3203
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3204
		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3205
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3206
		// Set display property to block for height/width animations
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3207
		if ( this.prop == "height" || this.prop == "width" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3208
			this.elem.style.display = "block";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3209
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3210
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3211
	// Get the current size
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3212
	cur: function(force){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3213
		if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3214
			return this.elem[ this.prop ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3215
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3216
		var r = parseFloat(jQuery.css(this.elem, this.prop, force));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3217
		return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3218
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3219
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3220
	// Start an animation from one number to another
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3221
	custom: function(from, to, unit){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3222
		this.startTime = now();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3223
		this.start = from;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3224
		this.end = to;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3225
		this.unit = unit || this.unit || "px";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3226
		this.now = this.start;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3227
		this.pos = this.state = 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3228
		this.update();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3229
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3230
		var self = this;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3231
		function t(gotoEnd){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3232
			return self.step(gotoEnd);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3233
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3234
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3235
		t.elem = this.elem;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3236
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3237
		jQuery.timers.push(t);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3238
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3239
		if ( jQuery.timerId == null ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3240
			jQuery.timerId = setInterval(function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3241
				var timers = jQuery.timers;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3242
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3243
				for ( var i = 0; i < timers.length; i++ )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3244
					if ( !timers[i]() )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3245
						timers.splice(i--, 1);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3246
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3247
				if ( !timers.length ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3248
					clearInterval( jQuery.timerId );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3249
					jQuery.timerId = null;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3250
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3251
			}, 13);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3252
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3253
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3254
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3255
	// Simple 'show' function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3256
	show: function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3257
		// Remember where we started, so that we can go back to it later
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3258
		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3259
		this.options.show = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3260
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3261
		// Begin the animation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3262
		this.custom(0, this.cur());
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3263
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3264
		// Make sure that we start at a small width/height to avoid any
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3265
		// flash of content
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3266
		if ( this.prop == "width" || this.prop == "height" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3267
			this.elem.style[this.prop] = "1px";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3268
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3269
		// Start by showing the element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3270
		jQuery(this.elem).show();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3271
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3272
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3273
	// Simple 'hide' function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3274
	hide: function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3275
		// Remember where we started, so that we can go back to it later
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3276
		this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3277
		this.options.hide = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3278
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3279
		// Begin the animation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3280
		this.custom(this.cur(), 0);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3281
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3282
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3283
	// Each step of an animation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3284
	step: function(gotoEnd){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3285
		var t = now();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3286
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3287
		if ( gotoEnd || t > this.options.duration + this.startTime ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3288
			this.now = this.end;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3289
			this.pos = this.state = 1;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3290
			this.update();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3291
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3292
			this.options.curAnim[ this.prop ] = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3293
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3294
			var done = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3295
			for ( var i in this.options.curAnim )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3296
				if ( this.options.curAnim[i] !== true )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3297
					done = false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3298
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3299
			if ( done ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3300
				if ( this.options.display != null ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3301
					// Reset the overflow
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3302
					this.elem.style.overflow = this.options.overflow;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3303
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3304
					// Reset the display
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3305
					this.elem.style.display = this.options.display;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3306
					if ( jQuery.css(this.elem, "display") == "none" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3307
						this.elem.style.display = "block";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3308
				}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3309
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3310
				// Hide the element if the "hide" operation was done
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3311
				if ( this.options.hide )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3312
					this.elem.style.display = "none";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3313
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3314
				// Reset the properties, if the item has been hidden or shown
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3315
				if ( this.options.hide || this.options.show )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3316
					for ( var p in this.options.curAnim )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3317
						jQuery.attr(this.elem.style, p, this.options.orig[p]);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3318
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3319
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3320
			if ( done )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3321
				// Execute the complete function
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3322
				this.options.complete.call( this.elem );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3323
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3324
			return false;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3325
		} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3326
			var n = t - this.startTime;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3327
			this.state = n / this.options.duration;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3328
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3329
			// Perform the easing function, defaults to swing
1b021d921367 Umordnen
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);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3331
			this.now = this.start + ((this.end - this.start) * this.pos);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3332
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3333
			// Perform the next step of the animation
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3334
			this.update();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3335
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3336
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3337
		return true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3338
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3339
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3340
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3341
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3342
jQuery.extend( jQuery.fx, {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3343
	speeds:{
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3344
		slow: 600,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3345
 		fast: 200,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3346
 		// Default speed
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3347
 		def: 400
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3348
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3349
	step: {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3350
		scrollLeft: function(fx){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3351
			fx.elem.scrollLeft = fx.now;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3352
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3353
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3354
		scrollTop: function(fx){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3355
			fx.elem.scrollTop = fx.now;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3356
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3357
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3358
		opacity: function(fx){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3359
			jQuery.attr(fx.elem.style, "opacity", fx.now);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3360
		},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3361
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3362
		_default: function(fx){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3363
			fx.elem.style[ fx.prop ] = fx.now + fx.unit;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3364
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3365
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3366
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3367
// The Offset Method
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3368
// Originally By Brandon Aaron, part of the Dimension Plugin
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3369
// http://jquery.com/plugins/project/dimensions
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3370
jQuery.fn.offset = function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3371
	var left = 0, top = 0, elem = this[0], results;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3372
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3373
	if ( elem ) with ( jQuery.browser ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3374
		var parent       = elem.parentNode,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3375
		    offsetChild  = elem,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3376
		    offsetParent = elem.offsetParent,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3377
		    doc          = elem.ownerDocument,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3378
		    safari2      = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3379
		    css          = jQuery.curCSS,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3380
		    fixed        = css(elem, "position") == "fixed";
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3381
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3382
		// Use getBoundingClientRect if available
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3383
		if ( !(mozilla && elem == document.body) && elem.getBoundingClientRect ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3384
			var box = elem.getBoundingClientRect();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3385
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3386
			// Add the document scroll offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3387
			add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3388
				box.top  + Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3389
1b021d921367 Umordnen
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
1b021d921367 Umordnen
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; }
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3392
			// IE 7 standards mode, the border is always 2px
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3393
			// This border/offset is typically represented by the clientLeft and clientTop properties
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3395
			// Therefore this method will be off by 2px in IE while in quirksmode
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3396
			add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3397
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3398
		// Otherwise loop through the offsetParents and parentNodes
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3399
		} else {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3400
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3401
			// Initial element offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3402
			add( elem.offsetLeft, elem.offsetTop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3403
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3404
			// Get parent offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3405
			while ( offsetParent ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3406
				// Add offsetParent offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3407
				add( offsetParent.offsetLeft, offsetParent.offsetTop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3408
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3409
				// Mozilla and Safari > 2 does not include the border on offset parents
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3410
				// However Mozilla adds the border for table or table cells
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3411
				if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3412
					border( offsetParent );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3413
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3414
				// Add the document scroll offsets if position is fixed on any offsetParent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3415
				if ( !fixed && css(offsetParent, "position") == "fixed" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3416
					fixed = true;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3417
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3418
				// Set offsetChild to previous offsetParent unless it is the body element
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3419
				offsetChild  = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3420
				// Get next offsetParent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3421
				offsetParent = offsetParent.offsetParent;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3422
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3423
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3424
			// Get parent scroll offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3425
			while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) {
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3427
				if ( !/^inline|table.*$/i.test(css(parent, "display")) )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3428
					// Subtract parent scroll offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3429
					add( -parent.scrollLeft, -parent.scrollTop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3430
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3431
				// Mozilla does not add the border for a parent that has overflow != visible
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3432
				if ( mozilla && css(parent, "overflow") != "visible" )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3433
					border( parent );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3434
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3435
				// Get next parent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3436
				parent = parent.parentNode;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3437
			}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3438
1b021d921367 Umordnen
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
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3440
			// Mozilla doubles body offsets with a non-absolutely positioned offsetChild
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3441
			if ( (safari2 && (fixed || css(offsetChild, "position") == "absolute")) ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3442
				(mozilla && css(offsetChild, "position") != "absolute") )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3443
					add( -doc.body.offsetLeft, -doc.body.offsetTop );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3444
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3445
			// Add the document scroll offsets if position is fixed
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3446
			if ( fixed )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3447
				add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3448
					Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop));
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3449
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3450
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3451
		// Return an object with top and left properties
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3452
		results = { top: top, left: left };
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3453
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3454
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3455
	function border(elem) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3456
		add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3457
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3458
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3459
	function add(l, t) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3460
		left += parseInt(l, 10) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3461
		top += parseInt(t, 10) || 0;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3462
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3463
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3464
	return results;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3465
};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3466
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3467
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3468
jQuery.fn.extend({
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3469
	position: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3470
		var left = 0, top = 0, results;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3471
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3472
		if ( this[0] ) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3473
			// Get *real* offsetParent
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3474
			var offsetParent = this.offsetParent(),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3475
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3476
			// Get correct offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3477
			offset       = this.offset(),
1b021d921367 Umordnen
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();
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3479
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3480
			// Subtract element margins
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3481
			// note: when an element has margin: auto the offsetLeft and marginLeft 
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3482
			// are the same in Safari causing offset.left to incorrectly be 0
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3483
			offset.top  -= num( this, 'marginTop' );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3484
			offset.left -= num( this, 'marginLeft' );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3485
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3486
			// Add offsetParent borders
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3487
			parentOffset.top  += num( offsetParent, 'borderTopWidth' );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3488
			parentOffset.left += num( offsetParent, 'borderLeftWidth' );
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3489
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3490
			// Subtract the two offsets
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3491
			results = {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3492
				top:  offset.top  - parentOffset.top,
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3493
				left: offset.left - parentOffset.left
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3494
			};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3495
		}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3496
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3497
		return results;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3498
	},
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3499
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3500
	offsetParent: function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3501
		var offsetParent = this[0].offsetParent;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3502
		while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3503
			offsetParent = offsetParent.offsetParent;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3504
		return jQuery(offsetParent);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3505
	}
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3506
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3507
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3508
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3509
// Create scrollLeft and scrollTop methods
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3510
jQuery.each( ['Left', 'Top'], function(i, name) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3511
	var method = 'scroll' + name;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3512
	
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3513
	jQuery.fn[ method ] = function(val) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3514
		if (!this[0]) return;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3515
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3516
		return val != undefined ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3517
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3518
			// Set the scroll offset
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3519
			this.each(function() {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3520
				this == window || this == document ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3521
					window.scrollTo(
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3522
						!i ? val : jQuery(window).scrollLeft(),
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3523
						 i ? val : jQuery(window).scrollTop()
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3524
					) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3525
					this[ method ] = val;
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3526
			}) :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3527
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3528
			// Return the scroll offset
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3529
			this[0] == window || this[0] == document ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3530
				self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3531
					jQuery.boxModel && document.documentElement[ method ] ||
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3532
					document.body[ method ] :
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3533
				this[0][ method ];
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3534
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3535
});
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3536
// Create innerHeight, innerWidth, outerHeight and outerWidth methods
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3537
jQuery.each([ "Height", "Width" ], function(i, name){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3538
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3539
	var tl = i ? "Left"  : "Top",  // top or left
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3540
		br = i ? "Right" : "Bottom"; // bottom or right
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3541
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3542
	// innerHeight and innerWidth
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3543
	jQuery.fn["inner" + name] = function(){
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3544
		return this[ name.toLowerCase() ]() +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3545
			num(this, "padding" + tl) +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3546
			num(this, "padding" + br);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3547
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3548
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3549
	// outerHeight and outerWidth
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3550
	jQuery.fn["outer" + name] = function(margin) {
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3551
		return this["inner" + name]() +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3552
			num(this, "border" + tl + "Width") +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3553
			num(this, "border" + br + "Width") +
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3554
			(margin ?
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3555
				num(this, "margin" + tl) + num(this, "margin" + br) : 0);
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3556
	};
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3557
1b021d921367 Umordnen
Bettina Schwarzer <schwarzer@fhi-berlin.mpg.de>
parents:
diff changeset
  3558
});})();