ext/jquery/jquery-1.4.4.js
author Tero Marttila <terom@fixme.fi>
Mon, 10 Jan 2011 18:30:58 +0200
changeset 54 d077f2f60098
parent 22 c68ca09b08b9
permissions -rw-r--r--
cal: page title
22
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
/*!
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
 * jQuery JavaScript Library v1.4.4
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
 * http://jquery.com/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
 *
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
 * Copyright 2010, John Resig
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
 * Dual licensed under the MIT or GPL Version 2 licenses.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
 * http://jquery.org/license
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
 *
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
 * Includes Sizzle.js
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
 * http://sizzlejs.com/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
 * Copyright 2010, The Dojo Foundation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
 * Released under the MIT, BSD, and GPL Licenses.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
 *
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
 * Date: Thu Nov 11 19:04:53 2010 -0500
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
 */
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
(function( window, undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
// Use the correct document accordingly with window argument (sandbox)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
var document = window.document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
var jQuery = (function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
// Define a local copy of jQuery
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
var jQuery = function( selector, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
		// The jQuery object is actually just the init constructor 'enhanced'
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
		return new jQuery.fn.init( selector, context );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
	// Map over jQuery in case of overwrite
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
	_jQuery = window.jQuery,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
	// Map over the $ in case of overwrite
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
	_$ = window.$,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
	// A central reference to the root jQuery(document)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
	rootjQuery,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
	// A simple way to check for HTML strings or ID strings
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
	// (both of which we optimize for)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
	// Is it a simple selector
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
	isSimple = /^.[^:#\[\.,]*$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
	// Check if a string has a non-whitespace character in it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
	rnotwhite = /\S/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
	rwhite = /\s/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
	// Used for trimming whitespace
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
	trimLeft = /^\s+/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
	trimRight = /\s+$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
	// Check for non-word characters
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
	rnonword = /\W/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
	// Check for digits
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
	rdigit = /\d/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
	// Match a standalone tag
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    61
	// JSON RegExp
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
	rvalidchars = /^[\],:{}\s]*$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    64
	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    65
	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    66
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    67
	// Useragent RegExp
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    68
	rwebkit = /(webkit)[ \/]([\w.]+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    69
	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    70
	rmsie = /(msie) ([\w.]+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    71
	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    72
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    73
	// Keep a UserAgent string for use with jQuery.browser
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    74
	userAgent = navigator.userAgent,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    75
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    76
	// For matching the engine and version of the browser
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    77
	browserMatch,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    78
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    79
	// Has the ready events already been bound?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    80
	readyBound = false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    81
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    82
	// The functions to execute on DOM ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    83
	readyList = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    84
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    85
	// The ready event handler
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    86
	DOMContentLoaded,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    87
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    88
	// Save a reference to some core methods
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    89
	toString = Object.prototype.toString,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    90
	hasOwn = Object.prototype.hasOwnProperty,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    91
	push = Array.prototype.push,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    92
	slice = Array.prototype.slice,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    93
	trim = String.prototype.trim,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    94
	indexOf = Array.prototype.indexOf,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    95
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    96
	// [[Class]] -> type pairs
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    97
	class2type = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    98
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    99
jQuery.fn = jQuery.prototype = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   100
	init: function( selector, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   101
		var match, elem, ret, doc;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   102
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   103
		// Handle $(""), $(null), or $(undefined)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   104
		if ( !selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   105
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   106
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   107
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   108
		// Handle $(DOMElement)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   109
		if ( selector.nodeType ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   110
			this.context = this[0] = selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   111
			this.length = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   112
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   113
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   114
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   115
		// The body element only exists once, optimize finding it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   116
		if ( selector === "body" && !context && document.body ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   117
			this.context = document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   118
			this[0] = document.body;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   119
			this.selector = "body";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   120
			this.length = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   121
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   122
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   123
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   124
		// Handle HTML strings
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   125
		if ( typeof selector === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   126
			// Are we dealing with HTML string or an ID?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   127
			match = quickExpr.exec( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   128
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   129
			// Verify a match, and that no context was specified for #id
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   130
			if ( match && (match[1] || !context) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   131
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   132
				// HANDLE: $(html) -> $(array)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   133
				if ( match[1] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   134
					doc = (context ? context.ownerDocument || context : document);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   135
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   136
					// If a single string is passed in and it's a single tag
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   137
					// just do a createElement and skip the rest
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   138
					ret = rsingleTag.exec( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   139
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   140
					if ( ret ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
						if ( jQuery.isPlainObject( context ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   142
							selector = [ document.createElement( ret[1] ) ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   143
							jQuery.fn.attr.call( selector, context, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   144
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   145
						} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   146
							selector = [ doc.createElement( ret[1] ) ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   147
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   148
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   149
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   150
						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   151
						selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   152
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   153
					
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   154
					return jQuery.merge( this, selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   155
					
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   156
				// HANDLE: $("#id")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   157
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   158
					elem = document.getElementById( match[2] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   159
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   160
					// Check parentNode to catch when Blackberry 4.6 returns
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   161
					// nodes that are no longer in the document #6963
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   162
					if ( elem && elem.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   163
						// Handle the case where IE and Opera return items
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   164
						// by name instead of ID
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   165
						if ( elem.id !== match[2] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   166
							return rootjQuery.find( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   167
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   168
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   169
						// Otherwise, we inject the element directly into the jQuery object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   170
						this.length = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   171
						this[0] = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   172
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   173
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   174
					this.context = document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   175
					this.selector = selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   176
					return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   177
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   178
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   179
			// HANDLE: $("TAG")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   180
			} else if ( !context && !rnonword.test( selector ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   181
				this.selector = selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   182
				this.context = document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   183
				selector = document.getElementsByTagName( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   184
				return jQuery.merge( this, selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   185
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   186
			// HANDLE: $(expr, $(...))
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   187
			} else if ( !context || context.jquery ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   188
				return (context || rootjQuery).find( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   189
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   190
			// HANDLE: $(expr, context)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   191
			// (which is just equivalent to: $(context).find(expr)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   192
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   193
				return jQuery( context ).find( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   194
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   195
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   196
		// HANDLE: $(function)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   197
		// Shortcut for document ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   198
		} else if ( jQuery.isFunction( selector ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   199
			return rootjQuery.ready( selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   200
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   201
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   202
		if (selector.selector !== undefined) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   203
			this.selector = selector.selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   204
			this.context = selector.context;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   205
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   206
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   207
		return jQuery.makeArray( selector, this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   208
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   209
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   210
	// Start with an empty selector
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   211
	selector: "",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   212
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   213
	// The current version of jQuery being used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   214
	jquery: "1.4.4",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   215
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   216
	// The default length of a jQuery object is 0
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   217
	length: 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   218
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   219
	// The number of elements contained in the matched element set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   220
	size: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   221
		return this.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   222
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   223
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   224
	toArray: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   225
		return slice.call( this, 0 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   226
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   227
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   228
	// Get the Nth element in the matched element set OR
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   229
	// Get the whole matched element set as a clean array
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   230
	get: function( num ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   231
		return num == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   232
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   233
			// Return a 'clean' array
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   234
			this.toArray() :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   235
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   236
			// Return just the object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   237
			( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   238
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   239
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   240
	// Take an array of elements and push it onto the stack
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   241
	// (returning the new matched element set)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   242
	pushStack: function( elems, name, selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   243
		// Build a new jQuery matched element set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   244
		var ret = jQuery();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   245
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   246
		if ( jQuery.isArray( elems ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   247
			push.apply( ret, elems );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   248
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   249
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   250
			jQuery.merge( ret, elems );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   251
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   252
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   253
		// Add the old object onto the stack (as a reference)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   254
		ret.prevObject = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   255
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   256
		ret.context = this.context;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   257
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   258
		if ( name === "find" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   259
			ret.selector = this.selector + (this.selector ? " " : "") + selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   260
		} else if ( name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   261
			ret.selector = this.selector + "." + name + "(" + selector + ")";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   262
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   263
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   264
		// Return the newly-formed element set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   265
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   266
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   267
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   268
	// Execute a callback for every element in the matched set.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   269
	// (You can seed the arguments with an array of args, but this is
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   270
	// only used internally.)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   271
	each: function( callback, args ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   272
		return jQuery.each( this, callback, args );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   273
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   274
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   275
	ready: function( fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   276
		// Attach the listeners
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   277
		jQuery.bindReady();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   278
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   279
		// If the DOM is already ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   280
		if ( jQuery.isReady ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   281
			// Execute the function immediately
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   282
			fn.call( document, jQuery );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   283
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   284
		// Otherwise, remember the function for later
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   285
		} else if ( readyList ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   286
			// Add the function to the wait list
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   287
			readyList.push( fn );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   288
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   289
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   290
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   291
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   292
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   293
	eq: function( i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   294
		return i === -1 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   295
			this.slice( i ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   296
			this.slice( i, +i + 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   297
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   298
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   299
	first: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   300
		return this.eq( 0 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   301
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   302
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   303
	last: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   304
		return this.eq( -1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   305
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   306
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   307
	slice: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   308
		return this.pushStack( slice.apply( this, arguments ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   309
			"slice", slice.call(arguments).join(",") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   310
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   311
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   312
	map: function( callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   313
		return this.pushStack( jQuery.map(this, function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   314
			return callback.call( elem, i, elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   315
		}));
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   316
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   317
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   318
	end: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   319
		return this.prevObject || jQuery(null);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   320
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   321
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   322
	// For internal use only.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   323
	// Behaves like an Array's method, not like a jQuery method.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   324
	push: push,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   325
	sort: [].sort,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   326
	splice: [].splice
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   327
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   328
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   329
// Give the init function the jQuery prototype for later instantiation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   330
jQuery.fn.init.prototype = jQuery.fn;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   331
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   332
jQuery.extend = jQuery.fn.extend = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   333
	 var options, name, src, copy, copyIsArray, clone,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   334
		target = arguments[0] || {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   335
		i = 1,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   336
		length = arguments.length,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   337
		deep = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   338
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   339
	// Handle a deep copy situation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   340
	if ( typeof target === "boolean" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   341
		deep = target;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   342
		target = arguments[1] || {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   343
		// skip the boolean and the target
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   344
		i = 2;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   345
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   346
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   347
	// Handle case when target is a string or something (possible in deep copy)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   348
	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   349
		target = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   350
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   351
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   352
	// extend jQuery itself if only one argument is passed
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   353
	if ( length === i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   354
		target = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   355
		--i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   356
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   357
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   358
	for ( ; i < length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   359
		// Only deal with non-null/undefined values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   360
		if ( (options = arguments[ i ]) != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   361
			// Extend the base object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   362
			for ( name in options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   363
				src = target[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   364
				copy = options[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   365
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   366
				// Prevent never-ending loop
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   367
				if ( target === copy ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   368
					continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   369
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   370
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   371
				// Recurse if we're merging plain objects or arrays
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   372
				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   373
					if ( copyIsArray ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   374
						copyIsArray = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   375
						clone = src && jQuery.isArray(src) ? src : [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   376
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   377
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   378
						clone = src && jQuery.isPlainObject(src) ? src : {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   379
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   380
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   381
					// Never move original objects, clone them
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   382
					target[ name ] = jQuery.extend( deep, clone, copy );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   383
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   384
				// Don't bring in undefined values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   385
				} else if ( copy !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   386
					target[ name ] = copy;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   387
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   388
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   389
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   390
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   391
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   392
	// Return the modified object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   393
	return target;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   394
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   395
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   396
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   397
	noConflict: function( deep ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   398
		window.$ = _$;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   399
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   400
		if ( deep ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   401
			window.jQuery = _jQuery;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   402
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   403
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   404
		return jQuery;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   405
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   406
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   407
	// Is the DOM ready to be used? Set to true once it occurs.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   408
	isReady: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   409
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   410
	// A counter to track how many items to wait for before
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   411
	// the ready event fires. See #6781
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   412
	readyWait: 1,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   413
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   414
	// Handle when the DOM is ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   415
	ready: function( wait ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   416
		// A third-party is pushing the ready event forwards
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   417
		if ( wait === true ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   418
			jQuery.readyWait--;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   419
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   420
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   421
		// Make sure that the DOM is not already loaded
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   422
		if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   423
			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   424
			if ( !document.body ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   425
				return setTimeout( jQuery.ready, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   426
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   427
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   428
			// Remember that the DOM is ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   429
			jQuery.isReady = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   430
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   431
			// If a normal DOM Ready event fired, decrement, and wait if need be
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   432
			if ( wait !== true && --jQuery.readyWait > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   433
				return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   434
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   435
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   436
			// If there are functions bound, to execute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   437
			if ( readyList ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   438
				// Execute all of them
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   439
				var fn,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   440
					i = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   441
					ready = readyList;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   442
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   443
				// Reset the list of functions
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   444
				readyList = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   445
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   446
				while ( (fn = ready[ i++ ]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   447
					fn.call( document, jQuery );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   448
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   449
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   450
				// Trigger any bound ready events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   451
				if ( jQuery.fn.trigger ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   452
					jQuery( document ).trigger( "ready" ).unbind( "ready" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   453
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   454
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   455
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   456
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   457
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   458
	bindReady: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   459
		if ( readyBound ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   460
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   461
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   462
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   463
		readyBound = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   464
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   465
		// Catch cases where $(document).ready() is called after the
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   466
		// browser event has already occurred.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   467
		if ( document.readyState === "complete" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   468
			// Handle it asynchronously to allow scripts the opportunity to delay ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   469
			return setTimeout( jQuery.ready, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   470
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   471
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   472
		// Mozilla, Opera and webkit nightlies currently support this event
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   473
		if ( document.addEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   474
			// Use the handy event callback
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   475
			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   476
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   477
			// A fallback to window.onload, that will always work
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   478
			window.addEventListener( "load", jQuery.ready, false );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   479
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   480
		// If IE event model is used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   481
		} else if ( document.attachEvent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   482
			// ensure firing before onload,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   483
			// maybe late but safe also for iframes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   484
			document.attachEvent("onreadystatechange", DOMContentLoaded);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   485
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   486
			// A fallback to window.onload, that will always work
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   487
			window.attachEvent( "onload", jQuery.ready );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   488
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   489
			// If IE and not a frame
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   490
			// continually check to see if the document is ready
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   491
			var toplevel = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   492
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   493
			try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   494
				toplevel = window.frameElement == null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   495
			} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   496
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   497
			if ( document.documentElement.doScroll && toplevel ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   498
				doScrollCheck();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   499
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   500
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   501
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   502
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   503
	// See test/unit/core.js for details concerning isFunction.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   504
	// Since version 1.3, DOM methods and functions like alert
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   505
	// aren't supported. They return false on IE (#2968).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   506
	isFunction: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   507
		return jQuery.type(obj) === "function";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   508
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   509
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   510
	isArray: Array.isArray || function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   511
		return jQuery.type(obj) === "array";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   512
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   513
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   514
	// A crude way of determining if an object is a window
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   515
	isWindow: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   516
		return obj && typeof obj === "object" && "setInterval" in obj;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   517
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   518
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   519
	isNaN: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   520
		return obj == null || !rdigit.test( obj ) || isNaN( obj );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   521
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   522
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   523
	type: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   524
		return obj == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   525
			String( obj ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   526
			class2type[ toString.call(obj) ] || "object";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   527
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   528
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   529
	isPlainObject: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   530
		// Must be an Object.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   531
		// Because of IE, we also have to check the presence of the constructor property.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   532
		// Make sure that DOM nodes and window objects don't pass through, as well
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   533
		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   534
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   535
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   536
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   537
		// Not own constructor property must be Object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   538
		if ( obj.constructor &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   539
			!hasOwn.call(obj, "constructor") &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   540
			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   541
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   542
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   543
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   544
		// Own properties are enumerated firstly, so to speed up,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   545
		// if last one is own, then all properties are own.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   546
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   547
		var key;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   548
		for ( key in obj ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   549
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   550
		return key === undefined || hasOwn.call( obj, key );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   551
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   552
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   553
	isEmptyObject: function( obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   554
		for ( var name in obj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   555
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   556
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   557
		return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   558
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   559
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   560
	error: function( msg ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   561
		throw msg;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   562
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   563
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   564
	parseJSON: function( data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   565
		if ( typeof data !== "string" || !data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   566
			return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   567
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   568
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   569
		// Make sure leading/trailing whitespace is removed (IE can't handle it)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   570
		data = jQuery.trim( data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   571
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   572
		// Make sure the incoming data is actual JSON
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   573
		// Logic borrowed from http://json.org/json2.js
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   574
		if ( rvalidchars.test(data.replace(rvalidescape, "@")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   575
			.replace(rvalidtokens, "]")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   576
			.replace(rvalidbraces, "")) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   577
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   578
			// Try to use the native JSON parser first
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   579
			return window.JSON && window.JSON.parse ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   580
				window.JSON.parse( data ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   581
				(new Function("return " + data))();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   582
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   583
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   584
			jQuery.error( "Invalid JSON: " + data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   585
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   586
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   587
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   588
	noop: function() {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   589
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   590
	// Evalulates a script in a global context
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   591
	globalEval: function( data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   592
		if ( data && rnotwhite.test(data) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   593
			// Inspired by code by Andrea Giammarchi
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   594
			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   595
			var head = document.getElementsByTagName("head")[0] || document.documentElement,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   596
				script = document.createElement("script");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   597
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   598
			script.type = "text/javascript";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   600
			if ( jQuery.support.scriptEval ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   601
				script.appendChild( document.createTextNode( data ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   602
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   603
				script.text = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   604
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   605
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   606
			// Use insertBefore instead of appendChild to circumvent an IE6 bug.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   607
			// This arises when a base node is used (#2709).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   608
			head.insertBefore( script, head.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   609
			head.removeChild( script );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   610
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   611
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   612
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   613
	nodeName: function( elem, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   614
		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   615
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   616
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   617
	// args is for internal usage only
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   618
	each: function( object, callback, args ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   619
		var name, i = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   620
			length = object.length,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   621
			isObj = length === undefined || jQuery.isFunction(object);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   622
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   623
		if ( args ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   624
			if ( isObj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   625
				for ( name in object ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   626
					if ( callback.apply( object[ name ], args ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   627
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   628
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   629
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   630
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   631
				for ( ; i < length; ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   632
					if ( callback.apply( object[ i++ ], args ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   633
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   634
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   635
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   636
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   637
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   638
		// A special, fast, case for the most common use of each
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   639
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   640
			if ( isObj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   641
				for ( name in object ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   642
					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   643
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   644
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   645
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   646
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   647
				for ( var value = object[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   648
					i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   649
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   650
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   651
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   652
		return object;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   653
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   654
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   655
	// Use native String.trim function wherever possible
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   656
	trim: trim ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   657
		function( text ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   658
			return text == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   659
				"" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   660
				trim.call( text );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   661
		} :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   662
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   663
		// Otherwise use our own trimming functionality
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   664
		function( text ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   665
			return text == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   666
				"" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   667
				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   668
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   669
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   670
	// results is for internal usage only
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   671
	makeArray: function( array, results ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   672
		var ret = results || [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   673
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   674
		if ( array != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   675
			// The window, strings (and functions) also have 'length'
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   676
			// The extra typeof function check is to prevent crashes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   677
			// in Safari 2 (See: #3039)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   678
			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   679
			var type = jQuery.type(array);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   680
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   681
			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   682
				push.call( ret, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   683
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   684
				jQuery.merge( ret, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   685
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   686
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   687
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   688
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   689
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   690
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   691
	inArray: function( elem, array ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   692
		if ( array.indexOf ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   693
			return array.indexOf( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   694
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   695
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   696
		for ( var i = 0, length = array.length; i < length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   697
			if ( array[ i ] === elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   698
				return i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   699
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   700
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   701
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   702
		return -1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   703
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   704
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   705
	merge: function( first, second ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   706
		var i = first.length,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   707
			j = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   708
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   709
		if ( typeof second.length === "number" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   710
			for ( var l = second.length; j < l; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   711
				first[ i++ ] = second[ j ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   712
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   713
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   714
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   715
			while ( second[j] !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   716
				first[ i++ ] = second[ j++ ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   717
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   718
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   719
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   720
		first.length = i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   721
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   722
		return first;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   723
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   724
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   725
	grep: function( elems, callback, inv ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   726
		var ret = [], retVal;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   727
		inv = !!inv;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   728
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   729
		// Go through the array, only saving the items
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   730
		// that pass the validator function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   731
		for ( var i = 0, length = elems.length; i < length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   732
			retVal = !!callback( elems[ i ], i );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   733
			if ( inv !== retVal ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   734
				ret.push( elems[ i ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   735
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   736
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   737
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   738
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   739
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   740
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   741
	// arg is for internal usage only
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   742
	map: function( elems, callback, arg ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   743
		var ret = [], value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   744
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   745
		// Go through the array, translating each of the items to their
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   746
		// new value (or values).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   747
		for ( var i = 0, length = elems.length; i < length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   748
			value = callback( elems[ i ], i, arg );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   749
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   750
			if ( value != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   751
				ret[ ret.length ] = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   752
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   753
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   754
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   755
		return ret.concat.apply( [], ret );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   756
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   757
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   758
	// A global GUID counter for objects
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   759
	guid: 1,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   760
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   761
	proxy: function( fn, proxy, thisObject ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   762
		if ( arguments.length === 2 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   763
			if ( typeof proxy === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   764
				thisObject = fn;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   765
				fn = thisObject[ proxy ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   766
				proxy = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   767
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   768
			} else if ( proxy && !jQuery.isFunction( proxy ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   769
				thisObject = proxy;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   770
				proxy = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   771
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   772
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   773
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   774
		if ( !proxy && fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   775
			proxy = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   776
				return fn.apply( thisObject || this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   777
			};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   778
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   779
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   780
		// Set the guid of unique handler to the same of original handler, so it can be removed
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   781
		if ( fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   782
			proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   783
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   784
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   785
		// So proxy can be declared as an argument
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   786
		return proxy;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   787
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   788
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   789
	// Mutifunctional method to get and set values to a collection
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   790
	// The value/s can be optionally by executed if its a function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   791
	access: function( elems, key, value, exec, fn, pass ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   792
		var length = elems.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   793
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   794
		// Setting many attributes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   795
		if ( typeof key === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   796
			for ( var k in key ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   797
				jQuery.access( elems, k, key[k], exec, fn, value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   798
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   799
			return elems;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   800
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   801
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   802
		// Setting one attribute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   803
		if ( value !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   804
			// Optionally, function values get executed if exec is true
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   805
			exec = !pass && exec && jQuery.isFunction(value);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   806
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   807
			for ( var i = 0; i < length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   808
				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   809
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   810
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   811
			return elems;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   812
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   813
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   814
		// Getting an attribute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   815
		return length ? fn( elems[0], key ) : undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   816
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   817
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   818
	now: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   819
		return (new Date()).getTime();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   820
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   821
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   822
	// Use of jQuery.browser is frowned upon.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   823
	// More details: http://docs.jquery.com/Utilities/jQuery.browser
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   824
	uaMatch: function( ua ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   825
		ua = ua.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   826
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   827
		var match = rwebkit.exec( ua ) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   828
			ropera.exec( ua ) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   829
			rmsie.exec( ua ) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   830
			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   831
			[];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   832
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   833
		return { browser: match[1] || "", version: match[2] || "0" };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   834
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   835
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   836
	browser: {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   837
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   838
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   839
// Populate the class2type map
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   840
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   841
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   842
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   843
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   844
browserMatch = jQuery.uaMatch( userAgent );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   845
if ( browserMatch.browser ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   846
	jQuery.browser[ browserMatch.browser ] = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   847
	jQuery.browser.version = browserMatch.version;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   848
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   849
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   850
// Deprecated, use jQuery.browser.webkit instead
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   851
if ( jQuery.browser.webkit ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   852
	jQuery.browser.safari = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   853
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   854
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   855
if ( indexOf ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   856
	jQuery.inArray = function( elem, array ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   857
		return indexOf.call( array, elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   858
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   859
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   860
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   861
// Verify that \s matches non-breaking spaces
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   862
// (IE fails on this test)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   863
if ( !rwhite.test( "\xA0" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   864
	trimLeft = /^[\s\xA0]+/;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   865
	trimRight = /[\s\xA0]+$/;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   866
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   867
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   868
// All jQuery objects should point back to these
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   869
rootjQuery = jQuery(document);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   870
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   871
// Cleanup functions for the document ready method
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   872
if ( document.addEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   873
	DOMContentLoaded = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   874
		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   875
		jQuery.ready();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   876
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   877
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   878
} else if ( document.attachEvent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   879
	DOMContentLoaded = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   880
		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   881
		if ( document.readyState === "complete" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   882
			document.detachEvent( "onreadystatechange", DOMContentLoaded );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   883
			jQuery.ready();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   884
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   885
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   886
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   887
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   888
// The DOM ready check for Internet Explorer
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   889
function doScrollCheck() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   890
	if ( jQuery.isReady ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   891
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   892
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   893
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   894
	try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   895
		// If IE is used, use the trick by Diego Perini
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   896
		// http://javascript.nwbox.com/IEContentLoaded/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   897
		document.documentElement.doScroll("left");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   898
	} catch(e) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   899
		setTimeout( doScrollCheck, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   900
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   901
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   902
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   903
	// and execute any waiting functions
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   904
	jQuery.ready();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   905
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   906
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   907
// Expose jQuery to the global object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   908
return (window.jQuery = window.$ = jQuery);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   909
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   910
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   911
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   912
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   913
(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   914
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   915
	jQuery.support = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   916
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   917
	var root = document.documentElement,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   918
		script = document.createElement("script"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   919
		div = document.createElement("div"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   920
		id = "script" + jQuery.now();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   921
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   922
	div.style.display = "none";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   923
	div.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   924
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   925
	var all = div.getElementsByTagName("*"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   926
		a = div.getElementsByTagName("a")[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   927
		select = document.createElement("select"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   928
		opt = select.appendChild( document.createElement("option") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   929
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   930
	// Can't get basic test support
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   931
	if ( !all || !all.length || !a ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   932
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   933
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   934
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   935
	jQuery.support = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   936
		// IE strips leading whitespace when .innerHTML is used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   937
		leadingWhitespace: div.firstChild.nodeType === 3,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   938
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   939
		// Make sure that tbody elements aren't automatically inserted
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   940
		// IE will insert them into empty tables
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   941
		tbody: !div.getElementsByTagName("tbody").length,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   942
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   943
		// Make sure that link elements get serialized correctly by innerHTML
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   944
		// This requires a wrapper element in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   945
		htmlSerialize: !!div.getElementsByTagName("link").length,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   946
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   947
		// Get the style information from getAttribute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   948
		// (IE uses .cssText insted)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   949
		style: /red/.test( a.getAttribute("style") ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   950
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   951
		// Make sure that URLs aren't manipulated
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   952
		// (IE normalizes it by default)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   953
		hrefNormalized: a.getAttribute("href") === "/a",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   954
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   955
		// Make sure that element opacity exists
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   956
		// (IE uses filter instead)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   957
		// Use a regex to work around a WebKit issue. See #5145
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   958
		opacity: /^0.55$/.test( a.style.opacity ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   959
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   960
		// Verify style float existence
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   961
		// (IE uses styleFloat instead of cssFloat)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   962
		cssFloat: !!a.style.cssFloat,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   963
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   964
		// Make sure that if no value is specified for a checkbox
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   965
		// that it defaults to "on".
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   966
		// (WebKit defaults to "" instead)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   967
		checkOn: div.getElementsByTagName("input")[0].value === "on",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   968
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   969
		// Make sure that a selected-by-default option has a working selected property.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   970
		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   971
		optSelected: opt.selected,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   972
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   973
		// Will be defined later
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   974
		deleteExpando: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   975
		optDisabled: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   976
		checkClone: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   977
		scriptEval: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   978
		noCloneEvent: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   979
		boxModel: null,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   980
		inlineBlockNeedsLayout: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   981
		shrinkWrapBlocks: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   982
		reliableHiddenOffsets: true
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   983
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   984
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   985
	// Make sure that the options inside disabled selects aren't marked as disabled
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   986
	// (WebKit marks them as diabled)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   987
	select.disabled = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   988
	jQuery.support.optDisabled = !opt.disabled;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   989
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   990
	script.type = "text/javascript";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   991
	try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   992
		script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   993
	} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   994
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   995
	root.insertBefore( script, root.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   996
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   997
	// Make sure that the execution of code works by injecting a script
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   998
	// tag with appendChild/createTextNode
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   999
	// (IE doesn't support this, fails, and uses .text instead)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1000
	if ( window[ id ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1001
		jQuery.support.scriptEval = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1002
		delete window[ id ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1003
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1004
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1005
	// Test to see if it's possible to delete an expando from an element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1006
	// Fails in Internet Explorer
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1007
	try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1008
		delete script.test;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1009
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1010
	} catch(e) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1011
		jQuery.support.deleteExpando = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1012
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1013
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1014
	root.removeChild( script );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1015
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1016
	if ( div.attachEvent && div.fireEvent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1017
		div.attachEvent("onclick", function click() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1018
			// Cloning a node shouldn't copy over any
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1019
			// bound event handlers (IE does this)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1020
			jQuery.support.noCloneEvent = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1021
			div.detachEvent("onclick", click);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1022
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1023
		div.cloneNode(true).fireEvent("onclick");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1024
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1025
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1026
	div = document.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1027
	div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1028
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1029
	var fragment = document.createDocumentFragment();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1030
	fragment.appendChild( div.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1031
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1032
	// WebKit doesn't clone checked state correctly in fragments
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1033
	jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1034
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1035
	// Figure out if the W3C box model works as expected
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1036
	// document.body must exist before we can do this
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1037
	jQuery(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1038
		var div = document.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1039
		div.style.width = div.style.paddingLeft = "1px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1040
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1041
		document.body.appendChild( div );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1042
		jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1043
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1044
		if ( "zoom" in div.style ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1045
			// Check if natively block-level elements act like inline-block
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1046
			// elements when setting their display to 'inline' and giving
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1047
			// them layout
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1048
			// (IE < 8 does this)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1049
			div.style.display = "inline";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1050
			div.style.zoom = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1051
			jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1052
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1053
			// Check if elements with layout shrink-wrap their children
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1054
			// (IE 6 does this)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1055
			div.style.display = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1056
			div.innerHTML = "<div style='width:4px;'></div>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1057
			jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1058
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1059
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1060
		div.innerHTML = "<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1061
		var tds = div.getElementsByTagName("td");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1062
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1063
		// Check if table cells still have offsetWidth/Height when they are set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1064
		// to display:none and there are still other visible table cells in a
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1065
		// table row; if so, offsetWidth/Height are not reliable for use when
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1066
		// determining if an element has been hidden directly using
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1067
		// display:none (it is still safe to use offsets if a parent element is
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1068
		// hidden; don safety goggles and see bug #4512 for more information).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1069
		// (only IE 8 fails this test)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1070
		jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1071
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1072
		tds[0].style.display = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1073
		tds[1].style.display = "none";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1074
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1075
		// Check if empty table cells still have offsetWidth/Height
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1076
		// (IE < 8 fail this test)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1077
		jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1078
		div.innerHTML = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1079
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1080
		document.body.removeChild( div ).style.display = "none";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1081
		div = tds = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1082
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1083
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1084
	// Technique from Juriy Zaytsev
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1085
	// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1086
	var eventSupported = function( eventName ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1087
		var el = document.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1088
		eventName = "on" + eventName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1089
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1090
		var isSupported = (eventName in el);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1091
		if ( !isSupported ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1092
			el.setAttribute(eventName, "return;");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1093
			isSupported = typeof el[eventName] === "function";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1094
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1095
		el = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1096
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1097
		return isSupported;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1098
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1099
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1100
	jQuery.support.submitBubbles = eventSupported("submit");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1101
	jQuery.support.changeBubbles = eventSupported("change");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1102
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1103
	// release memory in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1104
	root = script = div = all = a = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1105
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1106
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1107
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1108
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1109
var windowData = {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1110
	rbrace = /^(?:\{.*\}|\[.*\])$/;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1111
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1112
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1113
	cache: {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1114
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1115
	// Please use with caution
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1116
	uuid: 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1117
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1118
	// Unique for each copy of jQuery on the page	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1119
	expando: "jQuery" + jQuery.now(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1120
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1121
	// The following elements throw uncatchable exceptions if you
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1122
	// attempt to add expando properties to them.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1123
	noData: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1124
		"embed": true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1125
		// Ban all objects except for Flash (which handle expandos)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1126
		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1127
		"applet": true
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1128
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1129
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1130
	data: function( elem, name, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1131
		if ( !jQuery.acceptData( elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1132
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1133
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1134
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1135
		elem = elem == window ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1136
			windowData :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1137
			elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1138
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1139
		var isNode = elem.nodeType,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1140
			id = isNode ? elem[ jQuery.expando ] : null,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1141
			cache = jQuery.cache, thisCache;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1142
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1143
		if ( isNode && !id && typeof name === "string" && data === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1144
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1145
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1146
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1147
		// Get the data from the object directly
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1148
		if ( !isNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1149
			cache = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1150
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1151
		// Compute a unique ID for the element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1152
		} else if ( !id ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1153
			elem[ jQuery.expando ] = id = ++jQuery.uuid;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1154
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1155
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1156
		// Avoid generating a new cache unless none exists and we
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1157
		// want to manipulate it.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1158
		if ( typeof name === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1159
			if ( isNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1160
				cache[ id ] = jQuery.extend(cache[ id ], name);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1161
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1162
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1163
				jQuery.extend( cache, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1164
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1165
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1166
		} else if ( isNode && !cache[ id ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1167
			cache[ id ] = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1168
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1169
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1170
		thisCache = isNode ? cache[ id ] : cache;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1171
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1172
		// Prevent overriding the named cache with undefined values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1173
		if ( data !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1174
			thisCache[ name ] = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1175
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1176
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1177
		return typeof name === "string" ? thisCache[ name ] : thisCache;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1178
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1179
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1180
	removeData: function( elem, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1181
		if ( !jQuery.acceptData( elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1182
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1183
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1184
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1185
		elem = elem == window ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1186
			windowData :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1187
			elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1188
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1189
		var isNode = elem.nodeType,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1190
			id = isNode ? elem[ jQuery.expando ] : elem,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1191
			cache = jQuery.cache,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1192
			thisCache = isNode ? cache[ id ] : id;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1193
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1194
		// If we want to remove a specific section of the element's data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1195
		if ( name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1196
			if ( thisCache ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1197
				// Remove the section of cache data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1198
				delete thisCache[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1199
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1200
				// If we've removed all the data, remove the element's cache
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1201
				if ( isNode && jQuery.isEmptyObject(thisCache) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1202
					jQuery.removeData( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1203
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1204
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1205
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1206
		// Otherwise, we want to remove all of the element's data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1207
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1208
			if ( isNode && jQuery.support.deleteExpando ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1209
				delete elem[ jQuery.expando ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1210
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1211
			} else if ( elem.removeAttribute ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1212
				elem.removeAttribute( jQuery.expando );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1213
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1214
			// Completely remove the data cache
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1215
			} else if ( isNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1216
				delete cache[ id ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1217
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1218
			// Remove all fields from the object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1219
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1220
				for ( var n in elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1221
					delete elem[ n ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1222
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1223
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1224
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1225
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1226
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1227
	// A method for determining if a DOM node can handle the data expando
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1228
	acceptData: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1229
		if ( elem.nodeName ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1230
			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1231
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1232
			if ( match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1233
				return !(match === true || elem.getAttribute("classid") !== match);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1234
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1235
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1236
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1237
		return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1238
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1239
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1240
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1241
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1242
	data: function( key, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1243
		var data = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1244
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1245
		if ( typeof key === "undefined" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1246
			if ( this.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1247
				var attr = this[0].attributes, name;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1248
				data = jQuery.data( this[0] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1249
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1250
				for ( var i = 0, l = attr.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1251
					name = attr[i].name;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1252
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1253
					if ( name.indexOf( "data-" ) === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1254
						name = name.substr( 5 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1255
						dataAttr( this[0], name, data[ name ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1256
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1257
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1258
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1259
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1260
			return data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1261
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1262
		} else if ( typeof key === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1263
			return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1264
				jQuery.data( this, key );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1265
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1266
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1267
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1268
		var parts = key.split(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1269
		parts[1] = parts[1] ? "." + parts[1] : "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1270
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1271
		if ( value === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1272
			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1273
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1274
			// Try to fetch any internally stored data first
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1275
			if ( data === undefined && this.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1276
				data = jQuery.data( this[0], key );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1277
				data = dataAttr( this[0], key, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1278
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1279
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1280
			return data === undefined && parts[1] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1281
				this.data( parts[0] ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1282
				data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1283
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1284
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1285
			return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1286
				var $this = jQuery( this ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1287
					args = [ parts[0], value ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1288
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1289
				$this.triggerHandler( "setData" + parts[1] + "!", args );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1290
				jQuery.data( this, key, value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1291
				$this.triggerHandler( "changeData" + parts[1] + "!", args );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1292
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1293
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1294
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1295
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1296
	removeData: function( key ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1297
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1298
			jQuery.removeData( this, key );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1299
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1300
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1301
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1302
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1303
function dataAttr( elem, key, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1304
	// If nothing was found internally, try to fetch any
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1305
	// data from the HTML5 data-* attribute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1306
	if ( data === undefined && elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1307
		data = elem.getAttribute( "data-" + key );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1308
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1309
		if ( typeof data === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1310
			try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1311
				data = data === "true" ? true :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1312
				data === "false" ? false :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1313
				data === "null" ? null :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1314
				!jQuery.isNaN( data ) ? parseFloat( data ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1315
					rbrace.test( data ) ? jQuery.parseJSON( data ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1316
					data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1317
			} catch( e ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1318
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1319
			// Make sure we set the data so it isn't changed later
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1320
			jQuery.data( elem, key, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1321
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1322
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1323
			data = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1324
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1325
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1326
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1327
	return data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1328
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1329
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1330
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1331
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1332
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1333
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1334
	queue: function( elem, type, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1335
		if ( !elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1336
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1337
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1338
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1339
		type = (type || "fx") + "queue";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1340
		var q = jQuery.data( elem, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1341
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1342
		// Speed up dequeue by getting out quickly if this is just a lookup
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1343
		if ( !data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1344
			return q || [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1345
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1346
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1347
		if ( !q || jQuery.isArray(data) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1348
			q = jQuery.data( elem, type, jQuery.makeArray(data) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1349
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1350
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1351
			q.push( data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1352
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1353
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1354
		return q;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1355
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1356
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1357
	dequeue: function( elem, type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1358
		type = type || "fx";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1359
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1360
		var queue = jQuery.queue( elem, type ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1361
			fn = queue.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1362
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1363
		// If the fx queue is dequeued, always remove the progress sentinel
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1364
		if ( fn === "inprogress" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1365
			fn = queue.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1366
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1367
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1368
		if ( fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1369
			// Add a progress sentinel to prevent the fx queue from being
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1370
			// automatically dequeued
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1371
			if ( type === "fx" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1372
				queue.unshift("inprogress");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1373
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1374
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1375
			fn.call(elem, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1376
				jQuery.dequeue(elem, type);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1377
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1378
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1379
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1380
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1381
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1382
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1383
	queue: function( type, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1384
		if ( typeof type !== "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1385
			data = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1386
			type = "fx";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1387
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1388
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1389
		if ( data === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1390
			return jQuery.queue( this[0], type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1391
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1392
		return this.each(function( i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1393
			var queue = jQuery.queue( this, type, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1394
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1395
			if ( type === "fx" && queue[0] !== "inprogress" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1396
				jQuery.dequeue( this, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1397
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1398
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1399
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1400
	dequeue: function( type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1401
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1402
			jQuery.dequeue( this, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1403
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1404
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1405
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1406
	// Based off of the plugin by Clint Helfers, with permission.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1407
	// http://blindsignals.com/index.php/2009/07/jquery-delay/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1408
	delay: function( time, type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1409
		time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1410
		type = type || "fx";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1411
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1412
		return this.queue( type, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1413
			var elem = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1414
			setTimeout(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1415
				jQuery.dequeue( elem, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1416
			}, time );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1417
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1418
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1419
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1420
	clearQueue: function( type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1421
		return this.queue( type || "fx", [] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1422
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1423
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1424
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1425
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1426
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1427
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1428
var rclass = /[\n\t]/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1429
	rspaces = /\s+/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1430
	rreturn = /\r/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1431
	rspecialurl = /^(?:href|src|style)$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1432
	rtype = /^(?:button|input)$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1433
	rfocusable = /^(?:button|input|object|select|textarea)$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1434
	rclickable = /^a(?:rea)?$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1435
	rradiocheck = /^(?:radio|checkbox)$/i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1436
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1437
jQuery.props = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1438
	"for": "htmlFor",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1439
	"class": "className",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1440
	readonly: "readOnly",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1441
	maxlength: "maxLength",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1442
	cellspacing: "cellSpacing",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1443
	rowspan: "rowSpan",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1444
	colspan: "colSpan",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1445
	tabindex: "tabIndex",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1446
	usemap: "useMap",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1447
	frameborder: "frameBorder"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1448
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1449
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1450
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1451
	attr: function( name, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1452
		return jQuery.access( this, name, value, true, jQuery.attr );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1453
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1454
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1455
	removeAttr: function( name, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1456
		return this.each(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1457
			jQuery.attr( this, name, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1458
			if ( this.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1459
				this.removeAttribute( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1460
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1461
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1462
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1463
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1464
	addClass: function( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1465
		if ( jQuery.isFunction(value) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1466
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1467
				var self = jQuery(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1468
				self.addClass( value.call(this, i, self.attr("class")) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1469
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1470
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1471
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1472
		if ( value && typeof value === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1473
			var classNames = (value || "").split( rspaces );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1474
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1475
			for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1476
				var elem = this[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1477
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1478
				if ( elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1479
					if ( !elem.className ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1480
						elem.className = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1481
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1482
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1483
						var className = " " + elem.className + " ",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1484
							setClass = elem.className;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1485
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1486
						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1487
							if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1488
								setClass += " " + classNames[c];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1489
							}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1490
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1491
						elem.className = jQuery.trim( setClass );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1492
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1493
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1494
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1495
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1496
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1497
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1498
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1499
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1500
	removeClass: function( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1501
		if ( jQuery.isFunction(value) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1502
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1503
				var self = jQuery(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1504
				self.removeClass( value.call(this, i, self.attr("class")) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1505
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1506
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1507
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1508
		if ( (value && typeof value === "string") || value === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1509
			var classNames = (value || "").split( rspaces );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1510
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1511
			for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1512
				var elem = this[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1513
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1514
				if ( elem.nodeType === 1 && elem.className ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1515
					if ( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1516
						var className = (" " + elem.className + " ").replace(rclass, " ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1517
						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1518
							className = className.replace(" " + classNames[c] + " ", " ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1519
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1520
						elem.className = jQuery.trim( className );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1521
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1522
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1523
						elem.className = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1524
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1525
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1526
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1527
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1528
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1529
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1530
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1531
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1532
	toggleClass: function( value, stateVal ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1533
		var type = typeof value,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1534
			isBool = typeof stateVal === "boolean";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1535
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1536
		if ( jQuery.isFunction( value ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1537
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1538
				var self = jQuery(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1539
				self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1540
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1541
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1542
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1543
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1544
			if ( type === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1545
				// toggle individual class names
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1546
				var className,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1547
					i = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1548
					self = jQuery( this ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1549
					state = stateVal,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1550
					classNames = value.split( rspaces );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1551
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1552
				while ( (className = classNames[ i++ ]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1553
					// check each className given, space seperated list
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1554
					state = isBool ? state : !self.hasClass( className );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1555
					self[ state ? "addClass" : "removeClass" ]( className );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1556
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1557
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1558
			} else if ( type === "undefined" || type === "boolean" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1559
				if ( this.className ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1560
					// store className if set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1561
					jQuery.data( this, "__className__", this.className );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1562
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1563
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1564
				// toggle whole className
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1565
				this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1566
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1567
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1568
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1569
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1570
	hasClass: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1571
		var className = " " + selector + " ";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1572
		for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1573
			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1574
				return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1575
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1576
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1577
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1578
		return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1579
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1580
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1581
	val: function( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1582
		if ( !arguments.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1583
			var elem = this[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1584
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1585
			if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1586
				if ( jQuery.nodeName( elem, "option" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1587
					// attributes.value is undefined in Blackberry 4.7 but
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1588
					// uses .value. See #6932
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1589
					var val = elem.attributes.value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1590
					return !val || val.specified ? elem.value : elem.text;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1591
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1592
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1593
				// We need to handle select boxes special
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1594
				if ( jQuery.nodeName( elem, "select" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1595
					var index = elem.selectedIndex,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1596
						values = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1597
						options = elem.options,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1598
						one = elem.type === "select-one";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1600
					// Nothing was selected
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1601
					if ( index < 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1602
						return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1603
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1604
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1605
					// Loop through all the selected options
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1606
					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1607
						var option = options[ i ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1608
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1609
						// Don't return options that are disabled or in a disabled optgroup
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1610
						if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1611
								(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1612
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1613
							// Get the specific value for the option
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1614
							value = jQuery(option).val();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1615
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1616
							// We don't need an array for one selects
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1617
							if ( one ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1618
								return value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1619
							}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1620
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1621
							// Multi-Selects return an array
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1622
							values.push( value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1623
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1624
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1625
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1626
					return values;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1627
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1628
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1629
				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1630
				if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1631
					return elem.getAttribute("value") === null ? "on" : elem.value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1632
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1633
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1634
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1635
				// Everything else, we just grab the value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1636
				return (elem.value || "").replace(rreturn, "");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1637
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1638
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1639
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1640
			return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1641
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1642
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1643
		var isFunction = jQuery.isFunction(value);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1644
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1645
		return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1646
			var self = jQuery(this), val = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1647
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1648
			if ( this.nodeType !== 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1649
				return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1650
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1651
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1652
			if ( isFunction ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1653
				val = value.call(this, i, self.val());
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1654
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1655
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1656
			// Treat null/undefined as ""; convert numbers to string
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1657
			if ( val == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1658
				val = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1659
			} else if ( typeof val === "number" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1660
				val += "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1661
			} else if ( jQuery.isArray(val) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1662
				val = jQuery.map(val, function (value) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1663
					return value == null ? "" : value + "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1664
				});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1665
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1666
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1667
			if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1668
				this.checked = jQuery.inArray( self.val(), val ) >= 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1669
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1670
			} else if ( jQuery.nodeName( this, "select" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1671
				var values = jQuery.makeArray(val);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1672
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1673
				jQuery( "option", this ).each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1674
					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1675
				});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1676
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1677
				if ( !values.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1678
					this.selectedIndex = -1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1679
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1680
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1681
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1682
				this.value = val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1683
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1684
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1685
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1686
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1687
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1688
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1689
	attrFn: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1690
		val: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1691
		css: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1692
		html: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1693
		text: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1694
		data: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1695
		width: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1696
		height: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1697
		offset: true
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1698
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1699
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1700
	attr: function( elem, name, value, pass ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1701
		// don't set attributes on text and comment nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1702
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1703
			return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1704
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1705
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1706
		if ( pass && name in jQuery.attrFn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1707
			return jQuery(elem)[name](value);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1708
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1709
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1710
		var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1711
			// Whether we are setting (or getting)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1712
			set = value !== undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1713
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1714
		// Try to normalize/fix the name
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1715
		name = notxml && jQuery.props[ name ] || name;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1716
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1717
		// These attributes require special treatment
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1718
		var special = rspecialurl.test( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1719
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1720
		// Safari mis-reports the default selected property of an option
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1721
		// Accessing the parent's selectedIndex property fixes it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1722
		if ( name === "selected" && !jQuery.support.optSelected ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1723
			var parent = elem.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1724
			if ( parent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1725
				parent.selectedIndex;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1726
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1727
				// Make sure that it also works with optgroups, see #5701
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1728
				if ( parent.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1729
					parent.parentNode.selectedIndex;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1730
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1731
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1732
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1733
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1734
		// If applicable, access the attribute via the DOM 0 way
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1735
		// 'in' checks fail in Blackberry 4.7 #6931
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1736
		if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1737
			if ( set ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1738
				// We can't allow the type property to be changed (since it causes problems in IE)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1739
				if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1740
					jQuery.error( "type property can't be changed" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1741
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1742
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1743
				if ( value === null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1744
					if ( elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1745
						elem.removeAttribute( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1746
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1747
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1748
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1749
					elem[ name ] = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1750
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1751
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1752
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1753
			// browsers index elements by id/name on forms, give priority to attributes.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1754
			if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1755
				return elem.getAttributeNode( name ).nodeValue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1756
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1757
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1758
			// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1759
			// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1760
			if ( name === "tabIndex" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1761
				var attributeNode = elem.getAttributeNode( "tabIndex" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1762
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1763
				return attributeNode && attributeNode.specified ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1764
					attributeNode.value :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1765
					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1766
						0 :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1767
						undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1768
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1769
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1770
			return elem[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1771
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1772
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1773
		if ( !jQuery.support.style && notxml && name === "style" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1774
			if ( set ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1775
				elem.style.cssText = "" + value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1776
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1777
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1778
			return elem.style.cssText;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1779
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1780
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1781
		if ( set ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1782
			// convert the value to a string (all browsers do this but IE) see #1070
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1783
			elem.setAttribute( name, "" + value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1784
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1785
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1786
		// Ensure that missing attributes return undefined
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1787
		// Blackberry 4.7 returns "" from getAttribute #6938
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1788
		if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1789
			return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1790
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1791
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1792
		var attr = !jQuery.support.hrefNormalized && notxml && special ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1793
				// Some attributes require a special call on IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1794
				elem.getAttribute( name, 2 ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1795
				elem.getAttribute( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1796
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1797
		// Non-existent attributes return null, we normalize to undefined
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1798
		return attr === null ? undefined : attr;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1799
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1800
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1801
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1802
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1803
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1804
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1805
var rnamespaces = /\.(.*)$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1806
	rformElems = /^(?:textarea|input|select)$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1807
	rperiod = /\./g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1808
	rspace = / /g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1809
	rescape = /[^\w\s.|`]/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1810
	fcleanup = function( nm ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1811
		return nm.replace(rescape, "\\$&");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1812
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1813
	focusCounts = { focusin: 0, focusout: 0 };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1814
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1815
/*
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1816
 * A number of helper functions used for managing events.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1817
 * Many of the ideas behind this code originated from
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1818
 * Dean Edwards' addEvent library.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1819
 */
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1820
jQuery.event = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1821
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1822
	// Bind an event to an element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1823
	// Original by Dean Edwards
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1824
	add: function( elem, types, handler, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1825
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1826
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1827
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1828
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1829
		// For whatever reason, IE has trouble passing the window object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1830
		// around, causing it to be cloned in the process
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1831
		if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1832
			elem = window;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1833
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1834
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1835
		if ( handler === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1836
			handler = returnFalse;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1837
		} else if ( !handler ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1838
			// Fixes bug #7229. Fix recommended by jdalton
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1839
		  return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1840
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1841
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1842
		var handleObjIn, handleObj;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1843
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1844
		if ( handler.handler ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1845
			handleObjIn = handler;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1846
			handler = handleObjIn.handler;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1847
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1848
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1849
		// Make sure that the function being executed has a unique ID
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1850
		if ( !handler.guid ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1851
			handler.guid = jQuery.guid++;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1852
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1853
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1854
		// Init the element's event structure
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1855
		var elemData = jQuery.data( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1856
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1857
		// If no elemData is found then we must be trying to bind to one of the
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1858
		// banned noData elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1859
		if ( !elemData ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1860
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1861
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1862
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1863
		// Use a key less likely to result in collisions for plain JS objects.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1864
		// Fixes bug #7150.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1865
		var eventKey = elem.nodeType ? "events" : "__events__",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1866
			events = elemData[ eventKey ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1867
			eventHandle = elemData.handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1868
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1869
		if ( typeof events === "function" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1870
			// On plain objects events is a fn that holds the the data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1871
			// which prevents this data from being JSON serialized
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1872
			// the function does not need to be called, it just contains the data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1873
			eventHandle = events.handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1874
			events = events.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1875
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1876
		} else if ( !events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1877
			if ( !elem.nodeType ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1878
				// On plain objects, create a fn that acts as the holder
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1879
				// of the values to avoid JSON serialization of event data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1880
				elemData[ eventKey ] = elemData = function(){};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1881
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1882
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1883
			elemData.events = events = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1884
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1885
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1886
		if ( !eventHandle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1887
			elemData.handle = eventHandle = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1888
				// Handle the second event of a trigger and when
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1889
				// an event is called after a page has unloaded
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1890
				return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1891
					jQuery.event.handle.apply( eventHandle.elem, arguments ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1892
					undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1893
			};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1894
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1895
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1896
		// Add elem as a property of the handle function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1897
		// This is to prevent a memory leak with non-native events in IE.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1898
		eventHandle.elem = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1899
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1900
		// Handle multiple events separated by a space
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1901
		// jQuery(...).bind("mouseover mouseout", fn);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1902
		types = types.split(" ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1903
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1904
		var type, i = 0, namespaces;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1905
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1906
		while ( (type = types[ i++ ]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1907
			handleObj = handleObjIn ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1908
				jQuery.extend({}, handleObjIn) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1909
				{ handler: handler, data: data };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1910
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1911
			// Namespaced event handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1912
			if ( type.indexOf(".") > -1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1913
				namespaces = type.split(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1914
				type = namespaces.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1915
				handleObj.namespace = namespaces.slice(0).sort().join(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1916
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1917
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1918
				namespaces = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1919
				handleObj.namespace = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1920
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1921
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1922
			handleObj.type = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1923
			if ( !handleObj.guid ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1924
				handleObj.guid = handler.guid;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1925
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1926
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1927
			// Get the current list of functions bound to this event
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1928
			var handlers = events[ type ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1929
				special = jQuery.event.special[ type ] || {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1930
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1931
			// Init the event handler queue
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1932
			if ( !handlers ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1933
				handlers = events[ type ] = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1934
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1935
				// Check for a special event handler
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1936
				// Only use addEventListener/attachEvent if the special
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1937
				// events handler returns false
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1938
				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1939
					// Bind the global event handler to the element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1940
					if ( elem.addEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1941
						elem.addEventListener( type, eventHandle, false );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1942
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1943
					} else if ( elem.attachEvent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1944
						elem.attachEvent( "on" + type, eventHandle );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1945
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1946
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1947
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1948
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1949
			if ( special.add ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1950
				special.add.call( elem, handleObj ); 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1951
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1952
				if ( !handleObj.handler.guid ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1953
					handleObj.handler.guid = handler.guid;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1954
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1955
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1956
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1957
			// Add the function to the element's handler list
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1958
			handlers.push( handleObj );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1959
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1960
			// Keep track of which events have been used, for global triggering
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1961
			jQuery.event.global[ type ] = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1962
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1963
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1964
		// Nullify elem to prevent memory leaks in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1965
		elem = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1966
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1967
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1968
	global: {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1969
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1970
	// Detach an event or set of events from an element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1971
	remove: function( elem, types, handler, pos ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1972
		// don't do events on text and comment nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1973
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1974
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1975
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1976
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1977
		if ( handler === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1978
			handler = returnFalse;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1979
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1980
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1981
		var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1982
			eventKey = elem.nodeType ? "events" : "__events__",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1983
			elemData = jQuery.data( elem ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1984
			events = elemData && elemData[ eventKey ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1985
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1986
		if ( !elemData || !events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1987
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1988
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1989
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1990
		if ( typeof events === "function" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1991
			elemData = events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1992
			events = events.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1993
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1994
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1995
		// types is actually an event object here
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1996
		if ( types && types.type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1997
			handler = types.handler;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1998
			types = types.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  1999
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2000
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2001
		// Unbind all events for the element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2002
		if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2003
			types = types || "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2004
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2005
			for ( type in events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2006
				jQuery.event.remove( elem, type + types );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2007
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2008
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2009
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2010
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2011
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2012
		// Handle multiple events separated by a space
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2013
		// jQuery(...).unbind("mouseover mouseout", fn);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2014
		types = types.split(" ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2015
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2016
		while ( (type = types[ i++ ]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2017
			origType = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2018
			handleObj = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2019
			all = type.indexOf(".") < 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2020
			namespaces = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2021
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2022
			if ( !all ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2023
				// Namespaced event handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2024
				namespaces = type.split(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2025
				type = namespaces.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2026
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2027
				namespace = new RegExp("(^|\\.)" + 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2028
					jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2029
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2030
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2031
			eventType = events[ type ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2032
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2033
			if ( !eventType ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2034
				continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2035
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2036
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2037
			if ( !handler ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2038
				for ( j = 0; j < eventType.length; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2039
					handleObj = eventType[ j ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2040
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2041
					if ( all || namespace.test( handleObj.namespace ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2042
						jQuery.event.remove( elem, origType, handleObj.handler, j );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2043
						eventType.splice( j--, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2044
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2045
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2046
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2047
				continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2048
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2049
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2050
			special = jQuery.event.special[ type ] || {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2051
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2052
			for ( j = pos || 0; j < eventType.length; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2053
				handleObj = eventType[ j ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2054
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2055
				if ( handler.guid === handleObj.guid ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2056
					// remove the given handler for the given type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2057
					if ( all || namespace.test( handleObj.namespace ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2058
						if ( pos == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2059
							eventType.splice( j--, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2060
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2061
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2062
						if ( special.remove ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2063
							special.remove.call( elem, handleObj );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2064
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2065
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2066
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2067
					if ( pos != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2068
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2069
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2070
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2071
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2072
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2073
			// remove generic event handler if no more handlers exist
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2074
			if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2075
				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2076
					jQuery.removeEvent( elem, type, elemData.handle );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2077
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2078
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2079
				ret = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2080
				delete events[ type ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2081
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2082
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2083
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2084
		// Remove the expando if it's no longer used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2085
		if ( jQuery.isEmptyObject( events ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2086
			var handle = elemData.handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2087
			if ( handle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2088
				handle.elem = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2089
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2090
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2091
			delete elemData.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2092
			delete elemData.handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2093
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2094
			if ( typeof elemData === "function" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2095
				jQuery.removeData( elem, eventKey );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2096
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2097
			} else if ( jQuery.isEmptyObject( elemData ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2098
				jQuery.removeData( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2099
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2100
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2101
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2102
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2103
	// bubbling is internal
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2104
	trigger: function( event, data, elem /*, bubbling */ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2105
		// Event object or event type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2106
		var type = event.type || event,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2107
			bubbling = arguments[3];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2108
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2109
		if ( !bubbling ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2110
			event = typeof event === "object" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2111
				// jQuery.Event object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2112
				event[ jQuery.expando ] ? event :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2113
				// Object literal
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2114
				jQuery.extend( jQuery.Event(type), event ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2115
				// Just the event type (string)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2116
				jQuery.Event(type);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2117
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2118
			if ( type.indexOf("!") >= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2119
				event.type = type = type.slice(0, -1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2120
				event.exclusive = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2121
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2122
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2123
			// Handle a global trigger
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2124
			if ( !elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2125
				// Don't bubble custom events when global (to avoid too much overhead)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2126
				event.stopPropagation();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2127
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2128
				// Only trigger if we've ever bound an event for it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2129
				if ( jQuery.event.global[ type ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2130
					jQuery.each( jQuery.cache, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2131
						if ( this.events && this.events[type] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2132
							jQuery.event.trigger( event, data, this.handle.elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2133
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2134
					});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2135
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2136
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2137
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2138
			// Handle triggering a single element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2139
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2140
			// don't do events on text and comment nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2141
			if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2142
				return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2143
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2144
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2145
			// Clean up in case it is reused
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2146
			event.result = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2147
			event.target = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2148
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2149
			// Clone the incoming data, if any
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2150
			data = jQuery.makeArray( data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2151
			data.unshift( event );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2152
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2153
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2154
		event.currentTarget = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2155
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2156
		// Trigger the event, it is assumed that "handle" is a function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2157
		var handle = elem.nodeType ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2158
			jQuery.data( elem, "handle" ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2159
			(jQuery.data( elem, "__events__" ) || {}).handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2160
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2161
		if ( handle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2162
			handle.apply( elem, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2163
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2164
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2165
		var parent = elem.parentNode || elem.ownerDocument;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2166
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2167
		// Trigger an inline bound script
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2168
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2169
			if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2170
				if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2171
					event.result = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2172
					event.preventDefault();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2173
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2174
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2175
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2176
		// prevent IE from throwing an error for some elements with some event types, see #3533
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2177
		} catch (inlineError) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2178
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2179
		if ( !event.isPropagationStopped() && parent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2180
			jQuery.event.trigger( event, data, parent, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2181
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2182
		} else if ( !event.isDefaultPrevented() ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2183
			var old,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2184
				target = event.target,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2185
				targetType = type.replace( rnamespaces, "" ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2186
				isClick = jQuery.nodeName( target, "a" ) && targetType === "click",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2187
				special = jQuery.event.special[ targetType ] || {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2188
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2189
			if ( (!special._default || special._default.call( elem, event ) === false) && 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2190
				!isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2191
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2192
				try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2193
					if ( target[ targetType ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2194
						// Make sure that we don't accidentally re-trigger the onFOO events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2195
						old = target[ "on" + targetType ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2196
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2197
						if ( old ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2198
							target[ "on" + targetType ] = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2199
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2200
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2201
						jQuery.event.triggered = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2202
						target[ targetType ]();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2203
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2204
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2205
				// prevent IE from throwing an error for some elements with some event types, see #3533
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2206
				} catch (triggerError) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2207
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2208
				if ( old ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2209
					target[ "on" + targetType ] = old;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2210
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2211
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2212
				jQuery.event.triggered = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2213
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2214
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2215
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2216
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2217
	handle: function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2218
		var all, handlers, namespaces, namespace_re, events,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2219
			namespace_sort = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2220
			args = jQuery.makeArray( arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2221
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2222
		event = args[0] = jQuery.event.fix( event || window.event );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2223
		event.currentTarget = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2224
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2225
		// Namespaced event handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2226
		all = event.type.indexOf(".") < 0 && !event.exclusive;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2227
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2228
		if ( !all ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2229
			namespaces = event.type.split(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2230
			event.type = namespaces.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2231
			namespace_sort = namespaces.slice(0).sort();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2232
			namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2233
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2234
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2235
		event.namespace = event.namespace || namespace_sort.join(".");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2236
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2237
		events = jQuery.data(this, this.nodeType ? "events" : "__events__");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2238
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2239
		if ( typeof events === "function" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2240
			events = events.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2241
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2242
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2243
		handlers = (events || {})[ event.type ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2244
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2245
		if ( events && handlers ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2246
			// Clone the handlers to prevent manipulation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2247
			handlers = handlers.slice(0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2248
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2249
			for ( var j = 0, l = handlers.length; j < l; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2250
				var handleObj = handlers[ j ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2251
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2252
				// Filter the functions by class
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2253
				if ( all || namespace_re.test( handleObj.namespace ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2254
					// Pass in a reference to the handler function itself
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2255
					// So that we can later remove it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2256
					event.handler = handleObj.handler;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2257
					event.data = handleObj.data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2258
					event.handleObj = handleObj;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2259
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2260
					var ret = handleObj.handler.apply( this, args );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2261
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2262
					if ( ret !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2263
						event.result = ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2264
						if ( ret === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2265
							event.preventDefault();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2266
							event.stopPropagation();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2267
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2268
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2269
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2270
					if ( event.isImmediatePropagationStopped() ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2271
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2272
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2273
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2274
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2275
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2276
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2277
		return event.result;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2278
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2279
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2280
	props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2281
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2282
	fix: function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2283
		if ( event[ jQuery.expando ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2284
			return event;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2285
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2286
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2287
		// store a copy of the original event object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2288
		// and "clone" to set read-only properties
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2289
		var originalEvent = event;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2290
		event = jQuery.Event( originalEvent );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2291
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2292
		for ( var i = this.props.length, prop; i; ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2293
			prop = this.props[ --i ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2294
			event[ prop ] = originalEvent[ prop ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2295
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2296
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2297
		// Fix target property, if necessary
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2298
		if ( !event.target ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2299
			// Fixes #1925 where srcElement might not be defined either
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2300
			event.target = event.srcElement || document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2301
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2302
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2303
		// check if target is a textnode (safari)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2304
		if ( event.target.nodeType === 3 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2305
			event.target = event.target.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2306
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2307
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2308
		// Add relatedTarget, if necessary
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2309
		if ( !event.relatedTarget && event.fromElement ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2310
			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2311
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2312
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2313
		// Calculate pageX/Y if missing and clientX/Y available
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2314
		if ( event.pageX == null && event.clientX != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2315
			var doc = document.documentElement,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2316
				body = document.body;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2317
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2318
			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2319
			event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2320
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2321
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2322
		// Add which for key events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2323
		if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2324
			event.which = event.charCode != null ? event.charCode : event.keyCode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2325
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2326
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2327
		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2328
		if ( !event.metaKey && event.ctrlKey ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2329
			event.metaKey = event.ctrlKey;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2330
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2331
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2332
		// Add which for click: 1 === left; 2 === middle; 3 === right
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2333
		// Note: button is not normalized, so don't use it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2334
		if ( !event.which && event.button !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2335
			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2336
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2337
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2338
		return event;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2339
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2340
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2341
	// Deprecated, use jQuery.guid instead
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2342
	guid: 1E8,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2343
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2344
	// Deprecated, use jQuery.proxy instead
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2345
	proxy: jQuery.proxy,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2346
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2347
	special: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2348
		ready: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2349
			// Make sure the ready event is setup
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2350
			setup: jQuery.bindReady,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2351
			teardown: jQuery.noop
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2352
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2353
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2354
		live: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2355
			add: function( handleObj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2356
				jQuery.event.add( this,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2357
					liveConvert( handleObj.origType, handleObj.selector ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2358
					jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) ); 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2359
			},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2360
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2361
			remove: function( handleObj ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2362
				jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2363
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2364
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2365
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2366
		beforeunload: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2367
			setup: function( data, namespaces, eventHandle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2368
				// We only want to do this special case on windows
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2369
				if ( jQuery.isWindow( this ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2370
					this.onbeforeunload = eventHandle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2371
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2372
			},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2373
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2374
			teardown: function( namespaces, eventHandle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2375
				if ( this.onbeforeunload === eventHandle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2376
					this.onbeforeunload = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2377
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2378
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2379
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2380
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2381
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2382
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2383
jQuery.removeEvent = document.removeEventListener ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2384
	function( elem, type, handle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2385
		if ( elem.removeEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2386
			elem.removeEventListener( type, handle, false );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2387
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2388
	} : 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2389
	function( elem, type, handle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2390
		if ( elem.detachEvent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2391
			elem.detachEvent( "on" + type, handle );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2392
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2393
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2394
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2395
jQuery.Event = function( src ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2396
	// Allow instantiation without the 'new' keyword
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2397
	if ( !this.preventDefault ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2398
		return new jQuery.Event( src );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2399
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2400
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2401
	// Event object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2402
	if ( src && src.type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2403
		this.originalEvent = src;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2404
		this.type = src.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2405
	// Event type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2406
	} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2407
		this.type = src;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2408
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2409
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2410
	// timeStamp is buggy for some events on Firefox(#3843)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2411
	// So we won't rely on the native value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2412
	this.timeStamp = jQuery.now();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2413
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2414
	// Mark it as fixed
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2415
	this[ jQuery.expando ] = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2416
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2417
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2418
function returnFalse() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2419
	return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2420
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2421
function returnTrue() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2422
	return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2423
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2424
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2425
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2426
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2427
jQuery.Event.prototype = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2428
	preventDefault: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2429
		this.isDefaultPrevented = returnTrue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2430
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2431
		var e = this.originalEvent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2432
		if ( !e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2433
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2434
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2435
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2436
		// if preventDefault exists run it on the original event
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2437
		if ( e.preventDefault ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2438
			e.preventDefault();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2439
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2440
		// otherwise set the returnValue property of the original event to false (IE)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2441
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2442
			e.returnValue = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2443
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2444
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2445
	stopPropagation: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2446
		this.isPropagationStopped = returnTrue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2447
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2448
		var e = this.originalEvent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2449
		if ( !e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2450
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2451
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2452
		// if stopPropagation exists run it on the original event
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2453
		if ( e.stopPropagation ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2454
			e.stopPropagation();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2455
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2456
		// otherwise set the cancelBubble property of the original event to true (IE)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2457
		e.cancelBubble = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2458
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2459
	stopImmediatePropagation: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2460
		this.isImmediatePropagationStopped = returnTrue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2461
		this.stopPropagation();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2462
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2463
	isDefaultPrevented: returnFalse,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2464
	isPropagationStopped: returnFalse,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2465
	isImmediatePropagationStopped: returnFalse
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2466
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2467
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2468
// Checks if an event happened on an element within another element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2469
// Used in jQuery.event.special.mouseenter and mouseleave handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2470
var withinElement = function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2471
	// Check if mouse(over|out) are still within the same parent element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2472
	var parent = event.relatedTarget;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2473
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2474
	// Firefox sometimes assigns relatedTarget a XUL element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2475
	// which we cannot access the parentNode property of
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2476
	try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2477
		// Traverse up the tree
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2478
		while ( parent && parent !== this ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2479
			parent = parent.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2480
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2481
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2482
		if ( parent !== this ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2483
			// set the correct event type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2484
			event.type = event.data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2485
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2486
			// handle event if we actually just moused on to a non sub-element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2487
			jQuery.event.handle.apply( this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2488
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2489
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2490
	// assuming we've left the element since we most likely mousedover a xul element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2491
	} catch(e) { }
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2492
},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2493
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2494
// In case of event delegation, we only need to rename the event.type,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2495
// liveHandler will take care of the rest.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2496
delegate = function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2497
	event.type = event.data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2498
	jQuery.event.handle.apply( this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2499
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2500
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2501
// Create mouseenter and mouseleave events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2502
jQuery.each({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2503
	mouseenter: "mouseover",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2504
	mouseleave: "mouseout"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2505
}, function( orig, fix ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2506
	jQuery.event.special[ orig ] = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2507
		setup: function( data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2508
			jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2509
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2510
		teardown: function( data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2511
			jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2512
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2513
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2514
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2515
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2516
// submit delegation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2517
if ( !jQuery.support.submitBubbles ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2518
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2519
	jQuery.event.special.submit = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2520
		setup: function( data, namespaces ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2521
			if ( this.nodeName.toLowerCase() !== "form" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2522
				jQuery.event.add(this, "click.specialSubmit", function( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2523
					var elem = e.target,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2524
						type = elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2525
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2526
					if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2527
						e.liveFired = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2528
						return trigger( "submit", this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2529
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2530
				});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2531
	 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2532
				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2533
					var elem = e.target,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2534
						type = elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2535
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2536
					if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2537
						e.liveFired = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2538
						return trigger( "submit", this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2539
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2540
				});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2541
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2542
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2543
				return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2544
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2545
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2546
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2547
		teardown: function( namespaces ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2548
			jQuery.event.remove( this, ".specialSubmit" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2549
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2550
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2551
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2552
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2553
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2554
// change delegation, happens here so we have bind.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2555
if ( !jQuery.support.changeBubbles ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2556
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2557
	var changeFilters,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2558
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2559
	getVal = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2560
		var type = elem.type, val = elem.value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2561
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2562
		if ( type === "radio" || type === "checkbox" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2563
			val = elem.checked;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2564
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2565
		} else if ( type === "select-multiple" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2566
			val = elem.selectedIndex > -1 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2567
				jQuery.map( elem.options, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2568
					return elem.selected;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2569
				}).join("-") :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2570
				"";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2571
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2572
		} else if ( elem.nodeName.toLowerCase() === "select" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2573
			val = elem.selectedIndex;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2574
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2575
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2576
		return val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2577
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2578
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2579
	testChange = function testChange( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2580
		var elem = e.target, data, val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2581
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2582
		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2583
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2584
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2585
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2586
		data = jQuery.data( elem, "_change_data" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2587
		val = getVal(elem);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2588
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2589
		// the current data will be also retrieved by beforeactivate
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2590
		if ( e.type !== "focusout" || elem.type !== "radio" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2591
			jQuery.data( elem, "_change_data", val );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2592
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2593
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2594
		if ( data === undefined || val === data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2595
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2596
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2597
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2598
		if ( data != null || val ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2599
			e.type = "change";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2600
			e.liveFired = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2601
			return jQuery.event.trigger( e, arguments[1], elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2602
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2603
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2604
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2605
	jQuery.event.special.change = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2606
		filters: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2607
			focusout: testChange, 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2608
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2609
			beforedeactivate: testChange,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2610
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2611
			click: function( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2612
				var elem = e.target, type = elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2613
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2614
				if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2615
					return testChange.call( this, e );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2616
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2617
			},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2618
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2619
			// Change has to be called before submit
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2620
			// Keydown will be called before keypress, which is used in submit-event delegation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2621
			keydown: function( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2622
				var elem = e.target, type = elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2623
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2624
				if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2625
					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2626
					type === "select-multiple" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2627
					return testChange.call( this, e );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2628
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2629
			},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2630
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2631
			// Beforeactivate happens also before the previous element is blurred
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2632
			// with this event you can't trigger a change event, but you can store
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2633
			// information
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2634
			beforeactivate: function( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2635
				var elem = e.target;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2636
				jQuery.data( elem, "_change_data", getVal(elem) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2637
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2638
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2639
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2640
		setup: function( data, namespaces ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2641
			if ( this.type === "file" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2642
				return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2643
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2644
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2645
			for ( var type in changeFilters ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2646
				jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2647
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2648
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2649
			return rformElems.test( this.nodeName );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2650
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2651
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2652
		teardown: function( namespaces ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2653
			jQuery.event.remove( this, ".specialChange" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2654
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2655
			return rformElems.test( this.nodeName );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2656
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2657
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2658
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2659
	changeFilters = jQuery.event.special.change.filters;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2660
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2661
	// Handle when the input is .focus()'d
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2662
	changeFilters.focus = changeFilters.beforeactivate;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2663
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2664
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2665
function trigger( type, elem, args ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2666
	args[0].type = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2667
	return jQuery.event.handle.apply( elem, args );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2668
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2669
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2670
// Create "bubbling" focus and blur events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2671
if ( document.addEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2672
	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2673
		jQuery.event.special[ fix ] = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2674
			setup: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2675
				if ( focusCounts[fix]++ === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2676
					document.addEventListener( orig, handler, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2677
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2678
			}, 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2679
			teardown: function() { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2680
				if ( --focusCounts[fix] === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2681
					document.removeEventListener( orig, handler, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2682
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2683
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2684
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2685
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2686
		function handler( e ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2687
			e = jQuery.event.fix( e );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2688
			e.type = fix;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2689
			return jQuery.event.trigger( e, null, e.target );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2690
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2691
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2692
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2693
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2694
jQuery.each(["bind", "one"], function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2695
	jQuery.fn[ name ] = function( type, data, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2696
		// Handle object literals
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2697
		if ( typeof type === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2698
			for ( var key in type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2699
				this[ name ](key, data, type[key], fn);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2700
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2701
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2702
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2703
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2704
		if ( jQuery.isFunction( data ) || data === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2705
			fn = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2706
			data = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2707
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2708
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2709
		var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2710
			jQuery( this ).unbind( event, handler );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2711
			return fn.apply( this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2712
		}) : fn;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2713
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2714
		if ( type === "unload" && name !== "one" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2715
			this.one( type, data, fn );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2716
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2717
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2718
			for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2719
				jQuery.event.add( this[i], type, handler, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2720
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2721
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2722
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2723
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2724
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2725
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2726
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2727
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2728
	unbind: function( type, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2729
		// Handle object literals
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2730
		if ( typeof type === "object" && !type.preventDefault ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2731
			for ( var key in type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2732
				this.unbind(key, type[key]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2733
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2734
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2735
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2736
			for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2737
				jQuery.event.remove( this[i], type, fn );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2738
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2739
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2740
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2741
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2742
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2743
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2744
	delegate: function( selector, types, data, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2745
		return this.live( types, data, fn, selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2746
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2747
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2748
	undelegate: function( selector, types, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2749
		if ( arguments.length === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2750
				return this.unbind( "live" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2751
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2752
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2753
			return this.die( types, null, fn, selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2754
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2755
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2756
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2757
	trigger: function( type, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2758
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2759
			jQuery.event.trigger( type, data, this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2760
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2761
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2762
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2763
	triggerHandler: function( type, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2764
		if ( this[0] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2765
			var event = jQuery.Event( type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2766
			event.preventDefault();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2767
			event.stopPropagation();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2768
			jQuery.event.trigger( event, data, this[0] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2769
			return event.result;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2770
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2771
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2772
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2773
	toggle: function( fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2774
		// Save reference to arguments for access in closure
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2775
		var args = arguments,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2776
			i = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2777
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2778
		// link all the functions, so any of them can unbind this click handler
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2779
		while ( i < args.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2780
			jQuery.proxy( fn, args[ i++ ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2781
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2782
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2783
		return this.click( jQuery.proxy( fn, function( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2784
			// Figure out which function to execute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2785
			var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2786
			jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2787
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2788
			// Make sure that clicks stop
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2789
			event.preventDefault();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2790
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2791
			// and execute the function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2792
			return args[ lastToggle ].apply( this, arguments ) || false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2793
		}));
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2794
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2795
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2796
	hover: function( fnOver, fnOut ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2797
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2798
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2799
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2800
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2801
var liveMap = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2802
	focus: "focusin",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2803
	blur: "focusout",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2804
	mouseenter: "mouseover",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2805
	mouseleave: "mouseout"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2806
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2807
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2808
jQuery.each(["live", "die"], function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2809
	jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2810
		var type, i = 0, match, namespaces, preType,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2811
			selector = origSelector || this.selector,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2812
			context = origSelector ? this : jQuery( this.context );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2813
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2814
		if ( typeof types === "object" && !types.preventDefault ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2815
			for ( var key in types ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2816
				context[ name ]( key, data, types[key], selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2817
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2818
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2819
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2820
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2821
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2822
		if ( jQuery.isFunction( data ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2823
			fn = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2824
			data = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2825
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2826
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2827
		types = (types || "").split(" ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2828
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2829
		while ( (type = types[ i++ ]) != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2830
			match = rnamespaces.exec( type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2831
			namespaces = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2832
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2833
			if ( match )  {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2834
				namespaces = match[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2835
				type = type.replace( rnamespaces, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2836
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2837
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2838
			if ( type === "hover" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2839
				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2840
				continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2841
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2842
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2843
			preType = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2844
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2845
			if ( type === "focus" || type === "blur" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2846
				types.push( liveMap[ type ] + namespaces );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2847
				type = type + namespaces;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2848
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2849
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2850
				type = (liveMap[ type ] || type) + namespaces;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2851
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2852
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2853
			if ( name === "live" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2854
				// bind live handler
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2855
				for ( var j = 0, l = context.length; j < l; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2856
					jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2857
						{ data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2858
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2859
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2860
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2861
				// unbind live handler
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2862
				context.unbind( "live." + liveConvert( type, selector ), fn );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2863
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2864
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2865
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2866
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2867
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2868
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2869
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2870
function liveHandler( event ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2871
	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2872
		elems = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2873
		selectors = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2874
		events = jQuery.data( this, this.nodeType ? "events" : "__events__" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2875
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2876
	if ( typeof events === "function" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2877
		events = events.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2878
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2879
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2880
	// Make sure we avoid non-left-click bubbling in Firefox (#3861)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2881
	if ( event.liveFired === this || !events || !events.live || event.button && event.type === "click" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2882
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2883
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2884
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2885
	if ( event.namespace ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2886
		namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2887
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2888
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2889
	event.liveFired = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2890
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2891
	var live = events.live.slice(0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2892
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2893
	for ( j = 0; j < live.length; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2894
		handleObj = live[j];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2895
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2896
		if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2897
			selectors.push( handleObj.selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2898
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2899
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2900
			live.splice( j--, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2901
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2902
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2903
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2904
	match = jQuery( event.target ).closest( selectors, event.currentTarget );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2905
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2906
	for ( i = 0, l = match.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2907
		close = match[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2908
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2909
		for ( j = 0; j < live.length; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2910
			handleObj = live[j];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2911
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2912
			if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2913
				elem = close.elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2914
				related = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2915
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2916
				// Those two events require additional checking
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2917
				if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2918
					event.type = handleObj.preType;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2919
					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2920
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2921
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2922
				if ( !related || related !== elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2923
					elems.push({ elem: elem, handleObj: handleObj, level: close.level });
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2924
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2925
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2926
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2927
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2928
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2929
	for ( i = 0, l = elems.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2930
		match = elems[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2931
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2932
		if ( maxLevel && match.level > maxLevel ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2933
			break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2934
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2935
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2936
		event.currentTarget = match.elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2937
		event.data = match.handleObj.data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2938
		event.handleObj = match.handleObj;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2939
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2940
		ret = match.handleObj.origHandler.apply( match.elem, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2941
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2942
		if ( ret === false || event.isPropagationStopped() ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2943
			maxLevel = match.level;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2944
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2945
			if ( ret === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2946
				stop = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2947
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2948
			if ( event.isImmediatePropagationStopped() ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2949
				break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2950
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2951
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2952
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2953
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2954
	return stop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2955
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2956
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2957
function liveConvert( type, selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2958
	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2959
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2960
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2961
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2962
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2963
	"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2964
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2965
	// Handle event binding
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2966
	jQuery.fn[ name ] = function( data, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2967
		if ( fn == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2968
			fn = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2969
			data = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2970
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2971
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2972
		return arguments.length > 0 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2973
			this.bind( name, data, fn ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2974
			this.trigger( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2975
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2976
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2977
	if ( jQuery.attrFn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2978
		jQuery.attrFn[ name ] = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2979
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2980
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2981
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2982
// Prevent memory leaks in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2983
// Window isn't included so as not to unbind existing unload events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2984
// More info:
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2985
//  - http://isaacschlueter.com/2006/10/msie-memory-leaks/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2986
if ( window.attachEvent && !window.addEventListener ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2987
	jQuery(window).bind("unload", function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2988
		for ( var id in jQuery.cache ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2989
			if ( jQuery.cache[ id ].handle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2990
				// Try/Catch is to handle iframes being unloaded, see #4280
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2991
				try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2992
					jQuery.event.remove( jQuery.cache[ id ].handle.elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2993
				} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2994
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2995
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2996
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2997
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2998
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  2999
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3000
/*!
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3001
 * Sizzle CSS Selector Engine - v1.0
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3002
 *  Copyright 2009, The Dojo Foundation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3003
 *  Released under the MIT, BSD, and GPL Licenses.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3004
 *  More information: http://sizzlejs.com/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3005
 */
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3006
(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3007
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3008
var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3009
	done = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3010
	toString = Object.prototype.toString,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3011
	hasDuplicate = false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3012
	baseHasDuplicate = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3013
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3014
// Here we check if the JavaScript engine is using some sort of
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3015
// optimization where it does not always call our comparision
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3016
// function. If that is the case, discard the hasDuplicate value.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3017
//   Thus far that includes Google Chrome.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3018
[0, 0].sort(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3019
	baseHasDuplicate = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3020
	return 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3021
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3022
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3023
var Sizzle = function( selector, context, results, seed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3024
	results = results || [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3025
	context = context || document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3026
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3027
	var origContext = context;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3028
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3029
	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3030
		return [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3031
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3032
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3033
	if ( !selector || typeof selector !== "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3034
		return results;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3035
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3036
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3037
	var m, set, checkSet, extra, ret, cur, pop, i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3038
		prune = true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3039
		contextXML = Sizzle.isXML( context ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3040
		parts = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3041
		soFar = selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3042
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3043
	// Reset the position of the chunker regexp (start from head)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3044
	do {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3045
		chunker.exec( "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3046
		m = chunker.exec( soFar );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3047
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3048
		if ( m ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3049
			soFar = m[3];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3050
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3051
			parts.push( m[1] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3052
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3053
			if ( m[2] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3054
				extra = m[3];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3055
				break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3056
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3057
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3058
	} while ( m );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3059
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3060
	if ( parts.length > 1 && origPOS.exec( selector ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3061
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3062
		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3063
			set = posProcess( parts[0] + parts[1], context );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3064
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3065
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3066
			set = Expr.relative[ parts[0] ] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3067
				[ context ] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3068
				Sizzle( parts.shift(), context );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3069
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3070
			while ( parts.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3071
				selector = parts.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3072
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3073
				if ( Expr.relative[ selector ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3074
					selector += parts.shift();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3075
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3076
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3077
				set = posProcess( selector, set );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3078
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3079
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3080
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3081
	} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3082
		// Take a shortcut and set the context if the root selector is an ID
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3083
		// (but not if it'll be faster if the inner selector is an ID)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3084
		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3085
				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3086
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3087
			ret = Sizzle.find( parts.shift(), context, contextXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3088
			context = ret.expr ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3089
				Sizzle.filter( ret.expr, ret.set )[0] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3090
				ret.set[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3091
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3092
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3093
		if ( context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3094
			ret = seed ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3095
				{ expr: parts.pop(), set: makeArray(seed) } :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3096
				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3097
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3098
			set = ret.expr ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3099
				Sizzle.filter( ret.expr, ret.set ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3100
				ret.set;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3101
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3102
			if ( parts.length > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3103
				checkSet = makeArray( set );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3104
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3105
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3106
				prune = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3107
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3108
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3109
			while ( parts.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3110
				cur = parts.pop();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3111
				pop = cur;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3112
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3113
				if ( !Expr.relative[ cur ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3114
					cur = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3115
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3116
					pop = parts.pop();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3117
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3118
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3119
				if ( pop == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3120
					pop = context;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3121
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3122
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3123
				Expr.relative[ cur ]( checkSet, pop, contextXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3124
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3125
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3126
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3127
			checkSet = parts = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3128
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3129
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3130
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3131
	if ( !checkSet ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3132
		checkSet = set;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3133
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3134
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3135
	if ( !checkSet ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3136
		Sizzle.error( cur || selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3137
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3138
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3139
	if ( toString.call(checkSet) === "[object Array]" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3140
		if ( !prune ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3141
			results.push.apply( results, checkSet );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3142
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3143
		} else if ( context && context.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3144
			for ( i = 0; checkSet[i] != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3145
				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3146
					results.push( set[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3147
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3148
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3149
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3150
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3151
			for ( i = 0; checkSet[i] != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3152
				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3153
					results.push( set[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3154
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3155
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3156
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3157
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3158
	} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3159
		makeArray( checkSet, results );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3160
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3161
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3162
	if ( extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3163
		Sizzle( extra, origContext, results, seed );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3164
		Sizzle.uniqueSort( results );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3165
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3166
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3167
	return results;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3168
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3169
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3170
Sizzle.uniqueSort = function( results ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3171
	if ( sortOrder ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3172
		hasDuplicate = baseHasDuplicate;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3173
		results.sort( sortOrder );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3174
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3175
		if ( hasDuplicate ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3176
			for ( var i = 1; i < results.length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3177
				if ( results[i] === results[ i - 1 ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3178
					results.splice( i--, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3179
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3180
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3181
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3182
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3183
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3184
	return results;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3185
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3186
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3187
Sizzle.matches = function( expr, set ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3188
	return Sizzle( expr, null, null, set );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3189
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3190
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3191
Sizzle.matchesSelector = function( node, expr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3192
	return Sizzle( expr, null, null, [node] ).length > 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3193
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3194
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3195
Sizzle.find = function( expr, context, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3196
	var set;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3197
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3198
	if ( !expr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3199
		return [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3200
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3201
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3202
	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3203
		var match,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3204
			type = Expr.order[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3205
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3206
		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3207
			var left = match[1];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3208
			match.splice( 1, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3209
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3210
			if ( left.substr( left.length - 1 ) !== "\\" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3211
				match[1] = (match[1] || "").replace(/\\/g, "");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3212
				set = Expr.find[ type ]( match, context, isXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3213
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3214
				if ( set != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3215
					expr = expr.replace( Expr.match[ type ], "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3216
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3217
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3218
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3219
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3220
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3221
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3222
	if ( !set ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3223
		set = context.getElementsByTagName( "*" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3224
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3225
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3226
	return { set: set, expr: expr };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3227
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3228
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3229
Sizzle.filter = function( expr, set, inplace, not ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3230
	var match, anyFound,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3231
		old = expr,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3232
		result = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3233
		curLoop = set,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3234
		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3235
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3236
	while ( expr && set.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3237
		for ( var type in Expr.filter ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3238
			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3239
				var found, item,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3240
					filter = Expr.filter[ type ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3241
					left = match[1];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3242
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3243
				anyFound = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3244
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3245
				match.splice(1,1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3246
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3247
				if ( left.substr( left.length - 1 ) === "\\" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3248
					continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3249
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3250
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3251
				if ( curLoop === result ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3252
					result = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3253
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3254
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3255
				if ( Expr.preFilter[ type ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3256
					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3257
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3258
					if ( !match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3259
						anyFound = found = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3260
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3261
					} else if ( match === true ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3262
						continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3263
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3264
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3265
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3266
				if ( match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3267
					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3268
						if ( item ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3269
							found = filter( item, match, i, curLoop );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3270
							var pass = not ^ !!found;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3271
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3272
							if ( inplace && found != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3273
								if ( pass ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3274
									anyFound = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3275
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3276
								} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3277
									curLoop[i] = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3278
								}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3279
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3280
							} else if ( pass ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3281
								result.push( item );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3282
								anyFound = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3283
							}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3284
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3285
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3286
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3287
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3288
				if ( found !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3289
					if ( !inplace ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3290
						curLoop = result;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3291
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3292
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3293
					expr = expr.replace( Expr.match[ type ], "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3294
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3295
					if ( !anyFound ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3296
						return [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3297
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3298
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3299
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3300
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3301
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3302
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3303
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3304
		// Improper expression
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3305
		if ( expr === old ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3306
			if ( anyFound == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3307
				Sizzle.error( expr );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3308
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3309
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3310
				break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3311
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3312
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3313
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3314
		old = expr;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3315
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3316
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3317
	return curLoop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3318
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3319
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3320
Sizzle.error = function( msg ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3321
	throw "Syntax error, unrecognized expression: " + msg;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3322
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3323
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3324
var Expr = Sizzle.selectors = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3325
	order: [ "ID", "NAME", "TAG" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3326
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3327
	match: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3328
		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3329
		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3330
		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3331
		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3332
		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3333
		CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3334
		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3335
		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3336
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3337
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3338
	leftMatch: {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3339
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3340
	attrMap: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3341
		"class": "className",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3342
		"for": "htmlFor"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3343
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3344
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3345
	attrHandle: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3346
		href: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3347
			return elem.getAttribute( "href" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3348
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3349
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3350
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3351
	relative: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3352
		"+": function(checkSet, part){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3353
			var isPartStr = typeof part === "string",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3354
				isTag = isPartStr && !/\W/.test( part ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3355
				isPartStrNotTag = isPartStr && !isTag;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3356
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3357
			if ( isTag ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3358
				part = part.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3359
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3360
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3361
			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3362
				if ( (elem = checkSet[i]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3363
					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3364
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3365
					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3366
						elem || false :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3367
						elem === part;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3368
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3369
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3370
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3371
			if ( isPartStrNotTag ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3372
				Sizzle.filter( part, checkSet, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3373
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3374
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3375
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3376
		">": function( checkSet, part ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3377
			var elem,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3378
				isPartStr = typeof part === "string",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3379
				i = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3380
				l = checkSet.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3381
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3382
			if ( isPartStr && !/\W/.test( part ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3383
				part = part.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3384
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3385
				for ( ; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3386
					elem = checkSet[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3387
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3388
					if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3389
						var parent = elem.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3390
						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3391
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3392
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3393
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3394
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3395
				for ( ; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3396
					elem = checkSet[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3397
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3398
					if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3399
						checkSet[i] = isPartStr ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3400
							elem.parentNode :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3401
							elem.parentNode === part;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3402
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3403
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3404
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3405
				if ( isPartStr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3406
					Sizzle.filter( part, checkSet, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3407
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3408
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3409
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3410
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3411
		"": function(checkSet, part, isXML){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3412
			var nodeCheck,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3413
				doneName = done++,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3414
				checkFn = dirCheck;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3415
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3416
			if ( typeof part === "string" && !/\W/.test(part) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3417
				part = part.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3418
				nodeCheck = part;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3419
				checkFn = dirNodeCheck;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3420
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3421
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3422
			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3423
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3424
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3425
		"~": function( checkSet, part, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3426
			var nodeCheck,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3427
				doneName = done++,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3428
				checkFn = dirCheck;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3429
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3430
			if ( typeof part === "string" && !/\W/.test( part ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3431
				part = part.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3432
				nodeCheck = part;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3433
				checkFn = dirNodeCheck;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3434
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3435
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3436
			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3437
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3438
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3439
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3440
	find: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3441
		ID: function( match, context, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3442
			if ( typeof context.getElementById !== "undefined" && !isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3443
				var m = context.getElementById(match[1]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3444
				// Check parentNode to catch when Blackberry 4.6 returns
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3445
				// nodes that are no longer in the document #6963
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3446
				return m && m.parentNode ? [m] : [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3447
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3448
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3449
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3450
		NAME: function( match, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3451
			if ( typeof context.getElementsByName !== "undefined" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3452
				var ret = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3453
					results = context.getElementsByName( match[1] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3454
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3455
				for ( var i = 0, l = results.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3456
					if ( results[i].getAttribute("name") === match[1] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3457
						ret.push( results[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3458
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3459
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3460
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3461
				return ret.length === 0 ? null : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3462
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3463
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3464
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3465
		TAG: function( match, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3466
			return context.getElementsByTagName( match[1] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3467
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3468
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3469
	preFilter: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3470
		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3471
			match = " " + match[1].replace(/\\/g, "") + " ";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3472
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3473
			if ( isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3474
				return match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3475
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3476
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3477
			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3478
				if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3479
					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3480
						if ( !inplace ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3481
							result.push( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3482
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3483
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3484
					} else if ( inplace ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3485
						curLoop[i] = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3486
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3487
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3488
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3489
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3490
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3491
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3492
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3493
		ID: function( match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3494
			return match[1].replace(/\\/g, "");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3495
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3496
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3497
		TAG: function( match, curLoop ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3498
			return match[1].toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3499
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3500
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3501
		CHILD: function( match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3502
			if ( match[1] === "nth" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3503
				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3504
				var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3505
					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3506
					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3507
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3508
				// calculate the numbers (first)n+(last) including if they are negative
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3509
				match[2] = (test[1] + (test[2] || 1)) - 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3510
				match[3] = test[3] - 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3511
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3512
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3513
			// TODO: Move to normal caching system
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3514
			match[0] = done++;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3515
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3516
			return match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3517
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3518
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3519
		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3520
			var name = match[1].replace(/\\/g, "");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3521
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3522
			if ( !isXML && Expr.attrMap[name] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3523
				match[1] = Expr.attrMap[name];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3524
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3525
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3526
			if ( match[2] === "~=" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3527
				match[4] = " " + match[4] + " ";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3528
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3529
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3530
			return match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3531
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3532
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3533
		PSEUDO: function( match, curLoop, inplace, result, not ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3534
			if ( match[1] === "not" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3535
				// If we're dealing with a complex expression, or a simple one
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3536
				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3537
					match[3] = Sizzle(match[3], null, null, curLoop);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3538
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3539
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3540
					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3541
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3542
					if ( !inplace ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3543
						result.push.apply( result, ret );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3544
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3545
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3546
					return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3547
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3548
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3549
			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3550
				return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3551
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3552
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3553
			return match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3554
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3555
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3556
		POS: function( match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3557
			match.unshift( true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3558
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3559
			return match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3560
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3561
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3562
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3563
	filters: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3564
		enabled: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3565
			return elem.disabled === false && elem.type !== "hidden";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3566
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3567
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3568
		disabled: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3569
			return elem.disabled === true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3570
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3571
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3572
		checked: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3573
			return elem.checked === true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3574
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3575
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3576
		selected: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3577
			// Accessing this property makes selected-by-default
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3578
			// options in Safari work properly
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3579
			elem.parentNode.selectedIndex;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3580
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3581
			return elem.selected === true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3582
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3583
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3584
		parent: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3585
			return !!elem.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3586
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3587
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3588
		empty: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3589
			return !elem.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3590
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3591
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3592
		has: function( elem, i, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3593
			return !!Sizzle( match[3], elem ).length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3594
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3595
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3596
		header: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3597
			return (/h\d/i).test( elem.nodeName );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3598
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3600
		text: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3601
			return "text" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3602
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3603
		radio: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3604
			return "radio" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3605
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3606
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3607
		checkbox: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3608
			return "checkbox" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3609
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3610
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3611
		file: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3612
			return "file" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3613
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3614
		password: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3615
			return "password" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3616
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3617
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3618
		submit: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3619
			return "submit" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3620
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3621
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3622
		image: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3623
			return "image" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3624
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3625
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3626
		reset: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3627
			return "reset" === elem.type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3628
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3629
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3630
		button: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3631
			return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3632
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3633
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3634
		input: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3635
			return (/input|select|textarea|button/i).test( elem.nodeName );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3636
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3637
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3638
	setFilters: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3639
		first: function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3640
			return i === 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3641
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3642
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3643
		last: function( elem, i, match, array ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3644
			return i === array.length - 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3645
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3646
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3647
		even: function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3648
			return i % 2 === 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3649
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3650
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3651
		odd: function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3652
			return i % 2 === 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3653
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3654
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3655
		lt: function( elem, i, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3656
			return i < match[3] - 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3657
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3658
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3659
		gt: function( elem, i, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3660
			return i > match[3] - 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3661
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3662
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3663
		nth: function( elem, i, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3664
			return match[3] - 0 === i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3665
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3666
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3667
		eq: function( elem, i, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3668
			return match[3] - 0 === i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3669
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3670
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3671
	filter: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3672
		PSEUDO: function( elem, match, i, array ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3673
			var name = match[1],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3674
				filter = Expr.filters[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3675
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3676
			if ( filter ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3677
				return filter( elem, i, match, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3678
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3679
			} else if ( name === "contains" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3680
				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3681
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3682
			} else if ( name === "not" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3683
				var not = match[3];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3684
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3685
				for ( var j = 0, l = not.length; j < l; j++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3686
					if ( not[j] === elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3687
						return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3688
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3689
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3690
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3691
				return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3692
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3693
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3694
				Sizzle.error( "Syntax error, unrecognized expression: " + name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3695
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3696
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3697
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3698
		CHILD: function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3699
			var type = match[1],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3700
				node = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3701
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3702
			switch ( type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3703
				case "only":
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3704
				case "first":
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3705
					while ( (node = node.previousSibling) )	 {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3706
						if ( node.nodeType === 1 ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3707
							return false; 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3708
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3709
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3710
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3711
					if ( type === "first" ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3712
						return true; 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3713
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3714
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3715
					node = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3716
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3717
				case "last":
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3718
					while ( (node = node.nextSibling) )	 {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3719
						if ( node.nodeType === 1 ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3720
							return false; 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3721
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3722
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3723
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3724
					return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3725
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3726
				case "nth":
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3727
					var first = match[2],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3728
						last = match[3];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3729
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3730
					if ( first === 1 && last === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3731
						return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3732
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3733
					
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3734
					var doneName = match[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3735
						parent = elem.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3736
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3737
					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3738
						var count = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3739
						
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3740
						for ( node = parent.firstChild; node; node = node.nextSibling ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3741
							if ( node.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3742
								node.nodeIndex = ++count;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3743
							}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3744
						} 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3745
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3746
						parent.sizcache = doneName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3747
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3748
					
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3749
					var diff = elem.nodeIndex - last;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3750
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3751
					if ( first === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3752
						return diff === 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3753
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3754
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3755
						return ( diff % first === 0 && diff / first >= 0 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3756
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3757
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3758
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3759
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3760
		ID: function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3761
			return elem.nodeType === 1 && elem.getAttribute("id") === match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3762
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3763
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3764
		TAG: function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3765
			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3766
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3767
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3768
		CLASS: function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3769
			return (" " + (elem.className || elem.getAttribute("class")) + " ")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3770
				.indexOf( match ) > -1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3771
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3772
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3773
		ATTR: function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3774
			var name = match[1],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3775
				result = Expr.attrHandle[ name ] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3776
					Expr.attrHandle[ name ]( elem ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3777
					elem[ name ] != null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3778
						elem[ name ] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3779
						elem.getAttribute( name ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3780
				value = result + "",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3781
				type = match[2],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3782
				check = match[4];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3783
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3784
			return result == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3785
				type === "!=" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3786
				type === "=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3787
				value === check :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3788
				type === "*=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3789
				value.indexOf(check) >= 0 :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3790
				type === "~=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3791
				(" " + value + " ").indexOf(check) >= 0 :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3792
				!check ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3793
				value && result !== false :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3794
				type === "!=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3795
				value !== check :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3796
				type === "^=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3797
				value.indexOf(check) === 0 :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3798
				type === "$=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3799
				value.substr(value.length - check.length) === check :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3800
				type === "|=" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3801
				value === check || value.substr(0, check.length + 1) === check + "-" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3802
				false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3803
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3804
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3805
		POS: function( elem, match, i, array ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3806
			var name = match[2],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3807
				filter = Expr.setFilters[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3808
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3809
			if ( filter ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3810
				return filter( elem, i, match, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3811
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3812
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3813
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3814
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3815
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3816
var origPOS = Expr.match.POS,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3817
	fescape = function(all, num){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3818
		return "\\" + (num - 0 + 1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3819
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3820
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3821
for ( var type in Expr.match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3822
	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3823
	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3824
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3825
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3826
var makeArray = function( array, results ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3827
	array = Array.prototype.slice.call( array, 0 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3828
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3829
	if ( results ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3830
		results.push.apply( results, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3831
		return results;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3832
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3833
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3834
	return array;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3835
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3836
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3837
// Perform a simple check to determine if the browser is capable of
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3838
// converting a NodeList to an array using builtin methods.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3839
// Also verifies that the returned array holds DOM nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3840
// (which is not the case in the Blackberry browser)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3841
try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3842
	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3843
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3844
// Provide a fallback method if it does not work
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3845
} catch( e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3846
	makeArray = function( array, results ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3847
		var i = 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3848
			ret = results || [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3849
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3850
		if ( toString.call(array) === "[object Array]" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3851
			Array.prototype.push.apply( ret, array );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3852
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3853
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3854
			if ( typeof array.length === "number" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3855
				for ( var l = array.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3856
					ret.push( array[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3857
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3858
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3859
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3860
				for ( ; array[i]; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3861
					ret.push( array[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3862
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3863
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3864
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3865
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3866
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3867
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3868
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3869
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3870
var sortOrder, siblingCheck;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3871
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3872
if ( document.documentElement.compareDocumentPosition ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3873
	sortOrder = function( a, b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3874
		if ( a === b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3875
			hasDuplicate = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3876
			return 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3877
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3878
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3879
		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3880
			return a.compareDocumentPosition ? -1 : 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3881
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3882
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3883
		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3884
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3885
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3886
} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3887
	sortOrder = function( a, b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3888
		var al, bl,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3889
			ap = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3890
			bp = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3891
			aup = a.parentNode,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3892
			bup = b.parentNode,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3893
			cur = aup;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3894
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3895
		// The nodes are identical, we can exit early
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3896
		if ( a === b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3897
			hasDuplicate = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3898
			return 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3899
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3900
		// If the nodes are siblings (or identical) we can do a quick check
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3901
		} else if ( aup === bup ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3902
			return siblingCheck( a, b );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3903
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3904
		// If no parents were found then the nodes are disconnected
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3905
		} else if ( !aup ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3906
			return -1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3907
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3908
		} else if ( !bup ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3909
			return 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3910
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3911
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3912
		// Otherwise they're somewhere else in the tree so we need
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3913
		// to build up a full list of the parentNodes for comparison
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3914
		while ( cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3915
			ap.unshift( cur );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3916
			cur = cur.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3917
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3918
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3919
		cur = bup;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3920
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3921
		while ( cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3922
			bp.unshift( cur );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3923
			cur = cur.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3924
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3925
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3926
		al = ap.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3927
		bl = bp.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3928
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3929
		// Start walking down the tree looking for a discrepancy
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3930
		for ( var i = 0; i < al && i < bl; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3931
			if ( ap[i] !== bp[i] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3932
				return siblingCheck( ap[i], bp[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3933
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3934
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3935
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3936
		// We ended someplace up the tree so do a sibling check
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3937
		return i === al ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3938
			siblingCheck( a, bp[i], -1 ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3939
			siblingCheck( ap[i], b, 1 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3940
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3941
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3942
	siblingCheck = function( a, b, ret ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3943
		if ( a === b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3944
			return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3945
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3946
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3947
		var cur = a.nextSibling;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3948
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3949
		while ( cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3950
			if ( cur === b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3951
				return -1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3952
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3953
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3954
			cur = cur.nextSibling;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3955
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3956
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3957
		return 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3958
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3959
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3960
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3961
// Utility function for retreiving the text value of an array of DOM nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3962
Sizzle.getText = function( elems ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3963
	var ret = "", elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3964
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3965
	for ( var i = 0; elems[i]; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3966
		elem = elems[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3967
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3968
		// Get the text from text nodes and CDATA nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3969
		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3970
			ret += elem.nodeValue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3971
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3972
		// Traverse everything else, except comment nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3973
		} else if ( elem.nodeType !== 8 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3974
			ret += Sizzle.getText( elem.childNodes );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3975
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3976
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3977
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3978
	return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3979
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3980
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3981
// Check to see if the browser returns elements by name when
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3982
// querying by getElementById (and provide a workaround)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3983
(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3984
	// We're going to inject a fake input element with a specified name
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3985
	var form = document.createElement("div"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3986
		id = "script" + (new Date()).getTime(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3987
		root = document.documentElement;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3988
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3989
	form.innerHTML = "<a name='" + id + "'/>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3990
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3991
	// Inject it into the root element, check its status, and remove it quickly
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3992
	root.insertBefore( form, root.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3993
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3994
	// The workaround has to do additional checks after a getElementById
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3995
	// Which slows things down for other browsers (hence the branching)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3996
	if ( document.getElementById( id ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3997
		Expr.find.ID = function( match, context, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3998
			if ( typeof context.getElementById !== "undefined" && !isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  3999
				var m = context.getElementById(match[1]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4000
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4001
				return m ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4002
					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4003
						[m] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4004
						undefined :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4005
					[];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4006
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4007
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4008
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4009
		Expr.filter.ID = function( elem, match ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4010
			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4011
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4012
			return elem.nodeType === 1 && node && node.nodeValue === match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4013
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4014
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4015
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4016
	root.removeChild( form );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4017
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4018
	// release memory in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4019
	root = form = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4020
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4021
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4022
(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4023
	// Check to see if the browser returns only elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4024
	// when doing getElementsByTagName("*")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4025
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4026
	// Create a fake element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4027
	var div = document.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4028
	div.appendChild( document.createComment("") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4029
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4030
	// Make sure no comments are found
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4031
	if ( div.getElementsByTagName("*").length > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4032
		Expr.find.TAG = function( match, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4033
			var results = context.getElementsByTagName( match[1] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4034
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4035
			// Filter out possible comments
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4036
			if ( match[1] === "*" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4037
				var tmp = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4038
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4039
				for ( var i = 0; results[i]; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4040
					if ( results[i].nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4041
						tmp.push( results[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4042
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4043
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4044
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4045
				results = tmp;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4046
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4047
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4048
			return results;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4049
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4050
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4051
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4052
	// Check to see if an attribute returns normalized href attributes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4053
	div.innerHTML = "<a href='#'></a>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4054
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4055
	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4056
			div.firstChild.getAttribute("href") !== "#" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4057
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4058
		Expr.attrHandle.href = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4059
			return elem.getAttribute( "href", 2 );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4060
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4061
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4062
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4063
	// release memory in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4064
	div = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4065
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4066
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4067
if ( document.querySelectorAll ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4068
	(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4069
		var oldSizzle = Sizzle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4070
			div = document.createElement("div"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4071
			id = "__sizzle__";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4072
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4073
		div.innerHTML = "<p class='TEST'></p>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4074
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4075
		// Safari can't handle uppercase or unicode characters when
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4076
		// in quirks mode.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4077
		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4078
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4079
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4080
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4081
		Sizzle = function( query, context, extra, seed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4082
			context = context || document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4083
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4084
			// Make sure that attribute selectors are quoted
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4085
			query = query.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4086
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4087
			// Only use querySelectorAll on non-XML documents
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4088
			// (ID selectors don't work in non-HTML documents)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4089
			if ( !seed && !Sizzle.isXML(context) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4090
				if ( context.nodeType === 9 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4091
					try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4092
						return makeArray( context.querySelectorAll(query), extra );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4093
					} catch(qsaError) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4094
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4095
				// qSA works strangely on Element-rooted queries
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4096
				// We can work around this by specifying an extra ID on the root
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4097
				// and working up from there (Thanks to Andrew Dupont for the technique)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4098
				// IE 8 doesn't work on object elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4099
				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4100
					var old = context.getAttribute( "id" ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4101
						nid = old || id;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4102
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4103
					if ( !old ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4104
						context.setAttribute( "id", nid );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4105
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4106
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4107
					try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4108
						return makeArray( context.querySelectorAll( "#" + nid + " " + query ), extra );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4109
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4110
					} catch(pseudoError) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4111
					} finally {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4112
						if ( !old ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4113
							context.removeAttribute( "id" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4114
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4115
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4116
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4117
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4118
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4119
			return oldSizzle(query, context, extra, seed);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4120
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4121
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4122
		for ( var prop in oldSizzle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4123
			Sizzle[ prop ] = oldSizzle[ prop ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4124
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4125
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4126
		// release memory in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4127
		div = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4128
	})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4129
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4130
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4131
(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4132
	var html = document.documentElement,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4133
		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4134
		pseudoWorks = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4135
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4136
	try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4137
		// This should fail with an exception
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4138
		// Gecko does not error, returns false instead
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4139
		matches.call( document.documentElement, "[test!='']:sizzle" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4140
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4141
	} catch( pseudoError ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4142
		pseudoWorks = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4143
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4144
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4145
	if ( matches ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4146
		Sizzle.matchesSelector = function( node, expr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4147
			// Make sure that attribute selectors are quoted
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4148
			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4149
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4150
			if ( !Sizzle.isXML( node ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4151
				try { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4152
					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4153
						return matches.call( node, expr );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4154
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4155
				} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4156
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4157
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4158
			return Sizzle(expr, null, null, [node]).length > 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4159
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4160
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4161
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4162
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4163
(function(){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4164
	var div = document.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4165
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4166
	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4167
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4168
	// Opera can't find a second classname (in 9.6)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4169
	// Also, make sure that getElementsByClassName actually exists
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4170
	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4171
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4172
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4173
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4174
	// Safari caches class attributes, doesn't catch changes (in 3.2)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4175
	div.lastChild.className = "e";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4176
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4177
	if ( div.getElementsByClassName("e").length === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4178
		return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4179
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4180
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4181
	Expr.order.splice(1, 0, "CLASS");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4182
	Expr.find.CLASS = function( match, context, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4183
		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4184
			return context.getElementsByClassName(match[1]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4185
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4186
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4187
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4188
	// release memory in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4189
	div = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4190
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4191
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4192
function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4193
	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4194
		var elem = checkSet[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4195
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4196
		if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4197
			var match = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4198
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4199
			elem = elem[dir];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4200
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4201
			while ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4202
				if ( elem.sizcache === doneName ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4203
					match = checkSet[elem.sizset];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4204
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4205
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4206
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4207
				if ( elem.nodeType === 1 && !isXML ){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4208
					elem.sizcache = doneName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4209
					elem.sizset = i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4210
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4211
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4212
				if ( elem.nodeName.toLowerCase() === cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4213
					match = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4214
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4215
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4216
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4217
				elem = elem[dir];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4218
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4219
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4220
			checkSet[i] = match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4221
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4222
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4223
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4224
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4225
function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4226
	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4227
		var elem = checkSet[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4228
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4229
		if ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4230
			var match = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4231
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4232
			elem = elem[dir];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4233
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4234
			while ( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4235
				if ( elem.sizcache === doneName ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4236
					match = checkSet[elem.sizset];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4237
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4238
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4239
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4240
				if ( elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4241
					if ( !isXML ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4242
						elem.sizcache = doneName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4243
						elem.sizset = i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4244
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4245
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4246
					if ( typeof cur !== "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4247
						if ( elem === cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4248
							match = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4249
							break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4250
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4251
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4252
					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4253
						match = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4254
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4255
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4256
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4257
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4258
				elem = elem[dir];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4259
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4260
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4261
			checkSet[i] = match;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4262
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4263
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4264
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4265
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4266
if ( document.documentElement.contains ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4267
	Sizzle.contains = function( a, b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4268
		return a !== b && (a.contains ? a.contains(b) : true);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4269
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4270
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4271
} else if ( document.documentElement.compareDocumentPosition ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4272
	Sizzle.contains = function( a, b ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4273
		return !!(a.compareDocumentPosition(b) & 16);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4274
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4275
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4276
} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4277
	Sizzle.contains = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4278
		return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4279
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4280
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4281
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4282
Sizzle.isXML = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4283
	// documentElement is verified for cases where it doesn't yet exist
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4284
	// (such as loading iframes in IE - #4833) 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4285
	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4286
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4287
	return documentElement ? documentElement.nodeName !== "HTML" : false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4288
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4289
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4290
var posProcess = function( selector, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4291
	var match,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4292
		tmpSet = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4293
		later = "",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4294
		root = context.nodeType ? [context] : context;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4295
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4296
	// Position selectors must be done after the filter
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4297
	// And so must :not(positional) so we move all PSEUDOs to the end
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4298
	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4299
		later += match[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4300
		selector = selector.replace( Expr.match.PSEUDO, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4301
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4302
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4303
	selector = Expr.relative[selector] ? selector + "*" : selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4304
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4305
	for ( var i = 0, l = root.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4306
		Sizzle( selector, root[i], tmpSet );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4307
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4308
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4309
	return Sizzle.filter( later, tmpSet );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4310
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4311
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4312
// EXPOSE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4313
jQuery.find = Sizzle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4314
jQuery.expr = Sizzle.selectors;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4315
jQuery.expr[":"] = jQuery.expr.filters;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4316
jQuery.unique = Sizzle.uniqueSort;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4317
jQuery.text = Sizzle.getText;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4318
jQuery.isXMLDoc = Sizzle.isXML;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4319
jQuery.contains = Sizzle.contains;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4320
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4321
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4322
})();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4323
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4324
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4325
var runtil = /Until$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4326
	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4327
	// Note: This RegExp should be improved, or likely pulled from Sizzle
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4328
	rmultiselector = /,/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4329
	isSimple = /^.[^:#\[\.,]*$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4330
	slice = Array.prototype.slice,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4331
	POS = jQuery.expr.match.POS;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4332
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4333
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4334
	find: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4335
		var ret = this.pushStack( "", "find", selector ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4336
			length = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4337
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4338
		for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4339
			length = ret.length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4340
			jQuery.find( selector, this[i], ret );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4341
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4342
			if ( i > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4343
				// Make sure that the results are unique
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4344
				for ( var n = length; n < ret.length; n++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4345
					for ( var r = 0; r < length; r++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4346
						if ( ret[r] === ret[n] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4347
							ret.splice(n--, 1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4348
							break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4349
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4350
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4351
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4352
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4353
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4354
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4355
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4356
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4357
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4358
	has: function( target ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4359
		var targets = jQuery( target );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4360
		return this.filter(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4361
			for ( var i = 0, l = targets.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4362
				if ( jQuery.contains( this, targets[i] ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4363
					return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4364
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4365
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4366
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4367
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4368
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4369
	not: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4370
		return this.pushStack( winnow(this, selector, false), "not", selector);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4371
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4372
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4373
	filter: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4374
		return this.pushStack( winnow(this, selector, true), "filter", selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4375
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4376
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4377
	is: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4378
		return !!selector && jQuery.filter( selector, this ).length > 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4379
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4380
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4381
	closest: function( selectors, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4382
		var ret = [], i, l, cur = this[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4383
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4384
		if ( jQuery.isArray( selectors ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4385
			var match, selector,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4386
				matches = {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4387
				level = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4388
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4389
			if ( cur && selectors.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4390
				for ( i = 0, l = selectors.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4391
					selector = selectors[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4392
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4393
					if ( !matches[selector] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4394
						matches[selector] = jQuery.expr.match.POS.test( selector ) ? 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4395
							jQuery( selector, context || this.context ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4396
							selector;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4397
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4398
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4399
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4400
				while ( cur && cur.ownerDocument && cur !== context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4401
					for ( selector in matches ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4402
						match = matches[selector];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4403
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4404
						if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4405
							ret.push({ selector: selector, elem: cur, level: level });
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4406
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4407
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4408
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4409
					cur = cur.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4410
					level++;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4411
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4412
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4413
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4414
			return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4415
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4416
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4417
		var pos = POS.test( selectors ) ? 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4418
			jQuery( selectors, context || this.context ) : null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4419
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4420
		for ( i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4421
			cur = this[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4422
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4423
			while ( cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4424
				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4425
					ret.push( cur );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4426
					break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4427
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4428
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4429
					cur = cur.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4430
					if ( !cur || !cur.ownerDocument || cur === context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4431
						break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4432
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4433
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4434
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4435
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4436
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4437
		ret = ret.length > 1 ? jQuery.unique(ret) : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4438
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4439
		return this.pushStack( ret, "closest", selectors );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4440
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4441
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4442
	// Determine the position of an element within
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4443
	// the matched set of elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4444
	index: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4445
		if ( !elem || typeof elem === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4446
			return jQuery.inArray( this[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4447
				// If it receives a string, the selector is used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4448
				// If it receives nothing, the siblings are used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4449
				elem ? jQuery( elem ) : this.parent().children() );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4450
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4451
		// Locate the position of the desired element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4452
		return jQuery.inArray(
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4453
			// If it receives a jQuery object, the first element is used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4454
			elem.jquery ? elem[0] : elem, this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4455
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4456
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4457
	add: function( selector, context ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4458
		var set = typeof selector === "string" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4459
				jQuery( selector, context || this.context ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4460
				jQuery.makeArray( selector ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4461
			all = jQuery.merge( this.get(), set );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4462
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4463
		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4464
			all :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4465
			jQuery.unique( all ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4466
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4467
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4468
	andSelf: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4469
		return this.add( this.prevObject );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4470
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4471
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4472
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4473
// A painfully simple check to see if an element is disconnected
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4474
// from a document (should be improved, where feasible).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4475
function isDisconnected( node ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4476
	return !node || !node.parentNode || node.parentNode.nodeType === 11;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4477
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4478
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4479
jQuery.each({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4480
	parent: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4481
		var parent = elem.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4482
		return parent && parent.nodeType !== 11 ? parent : null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4483
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4484
	parents: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4485
		return jQuery.dir( elem, "parentNode" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4486
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4487
	parentsUntil: function( elem, i, until ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4488
		return jQuery.dir( elem, "parentNode", until );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4489
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4490
	next: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4491
		return jQuery.nth( elem, 2, "nextSibling" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4492
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4493
	prev: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4494
		return jQuery.nth( elem, 2, "previousSibling" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4495
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4496
	nextAll: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4497
		return jQuery.dir( elem, "nextSibling" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4498
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4499
	prevAll: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4500
		return jQuery.dir( elem, "previousSibling" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4501
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4502
	nextUntil: function( elem, i, until ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4503
		return jQuery.dir( elem, "nextSibling", until );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4504
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4505
	prevUntil: function( elem, i, until ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4506
		return jQuery.dir( elem, "previousSibling", until );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4507
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4508
	siblings: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4509
		return jQuery.sibling( elem.parentNode.firstChild, elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4510
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4511
	children: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4512
		return jQuery.sibling( elem.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4513
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4514
	contents: function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4515
		return jQuery.nodeName( elem, "iframe" ) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4516
			elem.contentDocument || elem.contentWindow.document :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4517
			jQuery.makeArray( elem.childNodes );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4518
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4519
}, function( name, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4520
	jQuery.fn[ name ] = function( until, selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4521
		var ret = jQuery.map( this, fn, until );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4522
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4523
		if ( !runtil.test( name ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4524
			selector = until;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4525
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4526
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4527
		if ( selector && typeof selector === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4528
			ret = jQuery.filter( selector, ret );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4529
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4530
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4531
		ret = this.length > 1 ? jQuery.unique( ret ) : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4532
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4533
		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4534
			ret = ret.reverse();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4535
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4536
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4537
		return this.pushStack( ret, name, slice.call(arguments).join(",") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4538
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4539
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4540
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4541
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4542
	filter: function( expr, elems, not ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4543
		if ( not ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4544
			expr = ":not(" + expr + ")";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4545
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4546
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4547
		return elems.length === 1 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4548
			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4549
			jQuery.find.matches(expr, elems);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4550
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4551
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4552
	dir: function( elem, dir, until ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4553
		var matched = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4554
			cur = elem[ dir ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4555
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4556
		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4557
			if ( cur.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4558
				matched.push( cur );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4559
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4560
			cur = cur[dir];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4561
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4562
		return matched;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4563
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4564
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4565
	nth: function( cur, result, dir, elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4566
		result = result || 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4567
		var num = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4568
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4569
		for ( ; cur; cur = cur[dir] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4570
			if ( cur.nodeType === 1 && ++num === result ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4571
				break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4572
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4573
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4574
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4575
		return cur;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4576
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4577
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4578
	sibling: function( n, elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4579
		var r = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4580
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4581
		for ( ; n; n = n.nextSibling ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4582
			if ( n.nodeType === 1 && n !== elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4583
				r.push( n );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4584
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4585
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4586
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4587
		return r;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4588
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4589
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4590
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4591
// Implement the identical functionality for filter and not
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4592
function winnow( elements, qualifier, keep ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4593
	if ( jQuery.isFunction( qualifier ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4594
		return jQuery.grep(elements, function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4595
			var retVal = !!qualifier.call( elem, i, elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4596
			return retVal === keep;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4597
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4598
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4599
	} else if ( qualifier.nodeType ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4600
		return jQuery.grep(elements, function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4601
			return (elem === qualifier) === keep;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4602
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4603
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4604
	} else if ( typeof qualifier === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4605
		var filtered = jQuery.grep(elements, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4606
			return elem.nodeType === 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4607
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4608
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4609
		if ( isSimple.test( qualifier ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4610
			return jQuery.filter(qualifier, filtered, !keep);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4611
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4612
			qualifier = jQuery.filter( qualifier, filtered );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4613
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4614
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4615
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4616
	return jQuery.grep(elements, function( elem, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4617
		return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4618
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4619
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4620
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4621
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4622
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4623
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4624
var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4625
	rleadingWhitespace = /^\s+/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4626
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4627
	rtagName = /<([\w:]+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4628
	rtbody = /<tbody/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4629
	rhtml = /<|&#?\w+;/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4630
	rnocache = /<(?:script|object|embed|option|style)/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4631
	// checked="checked" or checked (html5)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4632
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4633
	raction = /\=([^="'>\s]+\/)>/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4634
	wrapMap = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4635
		option: [ 1, "<select multiple='multiple'>", "</select>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4636
		legend: [ 1, "<fieldset>", "</fieldset>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4637
		thead: [ 1, "<table>", "</table>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4638
		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4639
		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4640
		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4641
		area: [ 1, "<map>", "</map>" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4642
		_default: [ 0, "", "" ]
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4643
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4644
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4645
wrapMap.optgroup = wrapMap.option;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4646
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4647
wrapMap.th = wrapMap.td;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4648
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4649
// IE can't serialize <link> and <script> tags normally
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4650
if ( !jQuery.support.htmlSerialize ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4651
	wrapMap._default = [ 1, "div<div>", "</div>" ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4652
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4653
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4654
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4655
	text: function( text ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4656
		if ( jQuery.isFunction(text) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4657
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4658
				var self = jQuery( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4659
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4660
				self.text( text.call(this, i, self.text()) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4661
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4662
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4663
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4664
		if ( typeof text !== "object" && text !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4665
			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4666
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4667
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4668
		return jQuery.text( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4669
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4670
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4671
	wrapAll: function( html ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4672
		if ( jQuery.isFunction( html ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4673
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4674
				jQuery(this).wrapAll( html.call(this, i) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4675
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4676
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4677
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4678
		if ( this[0] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4679
			// The elements to wrap the target around
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4680
			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4681
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4682
			if ( this[0].parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4683
				wrap.insertBefore( this[0] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4684
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4685
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4686
			wrap.map(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4687
				var elem = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4688
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4689
				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4690
					elem = elem.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4691
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4692
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4693
				return elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4694
			}).append(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4695
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4696
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4697
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4698
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4699
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4700
	wrapInner: function( html ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4701
		if ( jQuery.isFunction( html ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4702
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4703
				jQuery(this).wrapInner( html.call(this, i) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4704
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4705
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4706
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4707
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4708
			var self = jQuery( this ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4709
				contents = self.contents();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4710
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4711
			if ( contents.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4712
				contents.wrapAll( html );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4713
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4714
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4715
				self.append( html );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4716
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4717
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4718
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4719
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4720
	wrap: function( html ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4721
		return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4722
			jQuery( this ).wrapAll( html );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4723
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4724
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4725
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4726
	unwrap: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4727
		return this.parent().each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4728
			if ( !jQuery.nodeName( this, "body" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4729
				jQuery( this ).replaceWith( this.childNodes );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4730
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4731
		}).end();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4732
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4733
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4734
	append: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4735
		return this.domManip(arguments, true, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4736
			if ( this.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4737
				this.appendChild( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4738
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4739
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4740
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4741
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4742
	prepend: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4743
		return this.domManip(arguments, true, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4744
			if ( this.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4745
				this.insertBefore( elem, this.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4746
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4747
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4748
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4749
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4750
	before: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4751
		if ( this[0] && this[0].parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4752
			return this.domManip(arguments, false, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4753
				this.parentNode.insertBefore( elem, this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4754
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4755
		} else if ( arguments.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4756
			var set = jQuery(arguments[0]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4757
			set.push.apply( set, this.toArray() );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4758
			return this.pushStack( set, "before", arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4759
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4760
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4761
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4762
	after: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4763
		if ( this[0] && this[0].parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4764
			return this.domManip(arguments, false, function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4765
				this.parentNode.insertBefore( elem, this.nextSibling );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4766
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4767
		} else if ( arguments.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4768
			var set = this.pushStack( this, "after", arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4769
			set.push.apply( set, jQuery(arguments[0]).toArray() );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4770
			return set;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4771
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4772
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4773
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4774
	// keepData is for internal use only--do not document
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4775
	remove: function( selector, keepData ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4776
		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4777
			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4778
				if ( !keepData && elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4779
					jQuery.cleanData( elem.getElementsByTagName("*") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4780
					jQuery.cleanData( [ elem ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4781
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4782
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4783
				if ( elem.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4784
					 elem.parentNode.removeChild( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4785
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4786
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4787
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4788
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4789
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4790
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4791
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4792
	empty: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4793
		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4794
			// Remove element nodes and prevent memory leaks
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4795
			if ( elem.nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4796
				jQuery.cleanData( elem.getElementsByTagName("*") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4797
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4798
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4799
			// Remove any remaining nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4800
			while ( elem.firstChild ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4801
				elem.removeChild( elem.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4802
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4803
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4804
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4805
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4806
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4807
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4808
	clone: function( events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4809
		// Do the clone
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4810
		var ret = this.map(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4811
			if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4812
				// IE copies events bound via attachEvent when
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4813
				// using cloneNode. Calling detachEvent on the
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4814
				// clone will also remove the events from the orignal
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4815
				// In order to get around this, we use innerHTML.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4816
				// Unfortunately, this means some modifications to
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4817
				// attributes in IE that are actually only stored
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4818
				// as properties will not be copied (such as the
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4819
				// the name attribute on an input).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4820
				var html = this.outerHTML,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4821
					ownerDocument = this.ownerDocument;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4822
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4823
				if ( !html ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4824
					var div = ownerDocument.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4825
					div.appendChild( this.cloneNode(true) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4826
					html = div.innerHTML;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4827
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4828
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4829
				return jQuery.clean([html.replace(rinlinejQuery, "")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4830
					// Handle the case in IE 8 where action=/test/> self-closes a tag
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4831
					.replace(raction, '="$1">')
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4832
					.replace(rleadingWhitespace, "")], ownerDocument)[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4833
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4834
				return this.cloneNode(true);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4835
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4836
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4837
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4838
		// Copy the events from the original to the clone
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4839
		if ( events === true ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4840
			cloneCopyEvent( this, ret );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4841
			cloneCopyEvent( this.find("*"), ret.find("*") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4842
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4843
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4844
		// Return the cloned set
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4845
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4846
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4847
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4848
	html: function( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4849
		if ( value === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4850
			return this[0] && this[0].nodeType === 1 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4851
				this[0].innerHTML.replace(rinlinejQuery, "") :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4852
				null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4853
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4854
		// See if we can take a shortcut and just use innerHTML
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4855
		} else if ( typeof value === "string" && !rnocache.test( value ) &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4856
			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4857
			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4858
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4859
			value = value.replace(rxhtmlTag, "<$1></$2>");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4860
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4861
			try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4862
				for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4863
					// Remove element nodes and prevent memory leaks
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4864
					if ( this[i].nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4865
						jQuery.cleanData( this[i].getElementsByTagName("*") );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4866
						this[i].innerHTML = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4867
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4868
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4869
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4870
			// If using innerHTML throws an exception, use the fallback method
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4871
			} catch(e) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4872
				this.empty().append( value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4873
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4874
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4875
		} else if ( jQuery.isFunction( value ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4876
			this.each(function(i){
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4877
				var self = jQuery( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4878
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4879
				self.html( value.call(this, i, self.html()) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4880
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4881
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4882
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4883
			this.empty().append( value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4884
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4885
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4886
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4887
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4888
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4889
	replaceWith: function( value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4890
		if ( this[0] && this[0].parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4891
			// Make sure that the elements are removed from the DOM before they are inserted
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4892
			// this can help fix replacing a parent with child elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4893
			if ( jQuery.isFunction( value ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4894
				return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4895
					var self = jQuery(this), old = self.html();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4896
					self.replaceWith( value.call( this, i, old ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4897
				});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4898
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4899
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4900
			if ( typeof value !== "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4901
				value = jQuery( value ).detach();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4902
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4903
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4904
			return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4905
				var next = this.nextSibling,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4906
					parent = this.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4907
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4908
				jQuery( this ).remove();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4909
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4910
				if ( next ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4911
					jQuery(next).before( value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4912
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4913
					jQuery(parent).append( value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4914
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4915
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4916
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4917
			return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4918
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4919
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4920
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4921
	detach: function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4922
		return this.remove( selector, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4923
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4924
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4925
	domManip: function( args, table, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4926
		var results, first, fragment, parent,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4927
			value = args[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4928
			scripts = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4929
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4930
		// We can't cloneNode fragments that contain checked, in WebKit
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4931
		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4932
			return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4933
				jQuery(this).domManip( args, table, callback, true );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4934
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4935
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4936
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4937
		if ( jQuery.isFunction(value) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4938
			return this.each(function(i) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4939
				var self = jQuery(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4940
				args[0] = value.call(this, i, table ? self.html() : undefined);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4941
				self.domManip( args, table, callback );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4942
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4943
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4944
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4945
		if ( this[0] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4946
			parent = value && value.parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4947
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4948
			// If we're in a fragment, just use that instead of building a new one
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4949
			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4950
				results = { fragment: parent };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4951
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4952
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4953
				results = jQuery.buildFragment( args, this, scripts );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4954
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4955
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4956
			fragment = results.fragment;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4957
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4958
			if ( fragment.childNodes.length === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4959
				first = fragment = fragment.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4960
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4961
				first = fragment.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4962
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4963
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4964
			if ( first ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4965
				table = table && jQuery.nodeName( first, "tr" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4966
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4967
				for ( var i = 0, l = this.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4968
					callback.call(
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4969
						table ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4970
							root(this[i], first) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4971
							this[i],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4972
						i > 0 || results.cacheable || this.length > 1  ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4973
							fragment.cloneNode(true) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4974
							fragment
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4975
					);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4976
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4977
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4978
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4979
			if ( scripts.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4980
				jQuery.each( scripts, evalScript );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4981
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4982
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4983
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4984
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4985
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4986
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4987
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4988
function root( elem, cur ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4989
	return jQuery.nodeName(elem, "table") ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4990
		(elem.getElementsByTagName("tbody")[0] ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4991
		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4992
		elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4993
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4994
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4995
function cloneCopyEvent(orig, ret) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4996
	var i = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4997
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4998
	ret.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  4999
		if ( this.nodeName !== (orig[i] && orig[i].nodeName) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5000
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5001
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5002
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5003
		var oldData = jQuery.data( orig[i++] ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5004
			curData = jQuery.data( this, oldData ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5005
			events = oldData && oldData.events;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5006
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5007
		if ( events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5008
			delete curData.handle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5009
			curData.events = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5010
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5011
			for ( var type in events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5012
				for ( var handler in events[ type ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5013
					jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5014
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5015
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5016
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5017
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5018
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5019
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5020
jQuery.buildFragment = function( args, nodes, scripts ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5021
	var fragment, cacheable, cacheresults,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5022
		doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5023
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5024
	// Only cache "small" (1/2 KB) strings that are associated with the main document
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5025
	// Cloning options loses the selected state, so don't cache them
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5026
	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5027
	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5028
	if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5029
		!rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5030
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5031
		cacheable = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5032
		cacheresults = jQuery.fragments[ args[0] ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5033
		if ( cacheresults ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5034
			if ( cacheresults !== 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5035
				fragment = cacheresults;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5036
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5037
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5038
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5039
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5040
	if ( !fragment ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5041
		fragment = doc.createDocumentFragment();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5042
		jQuery.clean( args, doc, fragment, scripts );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5043
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5044
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5045
	if ( cacheable ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5046
		jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5047
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5048
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5049
	return { fragment: fragment, cacheable: cacheable };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5050
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5051
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5052
jQuery.fragments = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5053
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5054
jQuery.each({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5055
	appendTo: "append",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5056
	prependTo: "prepend",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5057
	insertBefore: "before",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5058
	insertAfter: "after",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5059
	replaceAll: "replaceWith"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5060
}, function( name, original ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5061
	jQuery.fn[ name ] = function( selector ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5062
		var ret = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5063
			insert = jQuery( selector ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5064
			parent = this.length === 1 && this[0].parentNode;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5065
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5066
		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5067
			insert[ original ]( this[0] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5068
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5069
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5070
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5071
			for ( var i = 0, l = insert.length; i < l; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5072
				var elems = (i > 0 ? this.clone(true) : this).get();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5073
				jQuery( insert[i] )[ original ]( elems );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5074
				ret = ret.concat( elems );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5075
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5076
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5077
			return this.pushStack( ret, name, insert.selector );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5078
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5079
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5080
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5081
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5082
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5083
	clean: function( elems, context, fragment, scripts ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5084
		context = context || document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5085
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5086
		// !context.createElement fails in IE with an error but returns typeof 'object'
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5087
		if ( typeof context.createElement === "undefined" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5088
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5089
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5090
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5091
		var ret = [];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5092
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5093
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5094
			if ( typeof elem === "number" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5095
				elem += "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5096
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5097
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5098
			if ( !elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5099
				continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5100
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5101
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5102
			// Convert html string into DOM nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5103
			if ( typeof elem === "string" && !rhtml.test( elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5104
				elem = context.createTextNode( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5105
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5106
			} else if ( typeof elem === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5107
				// Fix "XHTML"-style tags in all browsers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5108
				elem = elem.replace(rxhtmlTag, "<$1></$2>");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5109
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5110
				// Trim whitespace, otherwise indexOf won't work as expected
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5111
				var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5112
					wrap = wrapMap[ tag ] || wrapMap._default,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5113
					depth = wrap[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5114
					div = context.createElement("div");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5115
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5116
				// Go to html and back, then peel off extra wrappers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5117
				div.innerHTML = wrap[1] + elem + wrap[2];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5118
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5119
				// Move to the right depth
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5120
				while ( depth-- ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5121
					div = div.lastChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5122
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5123
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5124
				// Remove IE's autoinserted <tbody> from table fragments
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5125
				if ( !jQuery.support.tbody ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5126
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5127
					// String was a <table>, *may* have spurious <tbody>
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5128
					var hasBody = rtbody.test(elem),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5129
						tbody = tag === "table" && !hasBody ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5130
							div.firstChild && div.firstChild.childNodes :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5131
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5132
							// String was a bare <thead> or <tfoot>
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5133
							wrap[1] === "<table>" && !hasBody ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5134
								div.childNodes :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5135
								[];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5136
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5137
					for ( var j = tbody.length - 1; j >= 0 ; --j ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5138
						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5139
							tbody[ j ].parentNode.removeChild( tbody[ j ] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5140
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5141
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5142
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5143
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5144
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5145
				// IE completely kills leading whitespace when innerHTML is used
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5146
				if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5147
					div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5148
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5149
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5150
				elem = div.childNodes;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5151
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5152
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5153
			if ( elem.nodeType ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5154
				ret.push( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5155
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5156
				ret = jQuery.merge( ret, elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5157
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5158
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5159
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5160
		if ( fragment ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5161
			for ( i = 0; ret[i]; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5162
				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5163
					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5164
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5165
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5166
					if ( ret[i].nodeType === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5167
						ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5168
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5169
					fragment.appendChild( ret[i] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5170
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5171
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5172
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5173
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5174
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5175
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5176
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5177
	cleanData: function( elems ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5178
		var data, id, cache = jQuery.cache,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5179
			special = jQuery.event.special,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5180
			deleteExpando = jQuery.support.deleteExpando;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5181
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5182
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5183
			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5184
				continue;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5185
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5186
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5187
			id = elem[ jQuery.expando ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5188
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5189
			if ( id ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5190
				data = cache[ id ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5191
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5192
				if ( data && data.events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5193
					for ( var type in data.events ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5194
						if ( special[ type ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5195
							jQuery.event.remove( elem, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5196
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5197
						} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5198
							jQuery.removeEvent( elem, type, data.handle );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5199
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5200
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5201
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5202
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5203
				if ( deleteExpando ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5204
					delete elem[ jQuery.expando ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5205
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5206
				} else if ( elem.removeAttribute ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5207
					elem.removeAttribute( jQuery.expando );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5208
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5209
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5210
				delete cache[ id ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5211
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5212
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5213
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5214
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5215
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5216
function evalScript( i, elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5217
	if ( elem.src ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5218
		jQuery.ajax({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5219
			url: elem.src,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5220
			async: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5221
			dataType: "script"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5222
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5223
	} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5224
		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5225
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5226
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5227
	if ( elem.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5228
		elem.parentNode.removeChild( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5229
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5230
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5231
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5232
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5233
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5234
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5235
var ralpha = /alpha\([^)]*\)/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5236
	ropacity = /opacity=([^)]*)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5237
	rdashAlpha = /-([a-z])/ig,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5238
	rupper = /([A-Z])/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5239
	rnumpx = /^-?\d+(?:px)?$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5240
	rnum = /^-?\d/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5241
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5242
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5243
	cssWidth = [ "Left", "Right" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5244
	cssHeight = [ "Top", "Bottom" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5245
	curCSS,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5246
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5247
	getComputedStyle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5248
	currentStyle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5249
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5250
	fcamelCase = function( all, letter ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5251
		return letter.toUpperCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5252
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5253
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5254
jQuery.fn.css = function( name, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5255
	// Setting 'undefined' is a no-op
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5256
	if ( arguments.length === 2 && value === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5257
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5258
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5259
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5260
	return jQuery.access( this, name, value, true, function( elem, name, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5261
		return value !== undefined ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5262
			jQuery.style( elem, name, value ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5263
			jQuery.css( elem, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5264
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5265
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5266
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5267
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5268
	// Add in style property hooks for overriding the default
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5269
	// behavior of getting and setting a style property
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5270
	cssHooks: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5271
		opacity: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5272
			get: function( elem, computed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5273
				if ( computed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5274
					// We should always get a number back from opacity
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5275
					var ret = curCSS( elem, "opacity", "opacity" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5276
					return ret === "" ? "1" : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5277
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5278
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5279
					return elem.style.opacity;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5280
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5281
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5282
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5283
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5284
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5285
	// Exclude the following css properties to add px
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5286
	cssNumber: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5287
		"zIndex": true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5288
		"fontWeight": true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5289
		"opacity": true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5290
		"zoom": true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5291
		"lineHeight": true
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5292
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5293
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5294
	// Add in properties whose names you wish to fix before
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5295
	// setting or getting the value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5296
	cssProps: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5297
		// normalize float css property
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5298
		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5299
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5300
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5301
	// Get and set the style property on a DOM Node
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5302
	style: function( elem, name, value, extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5303
		// Don't set styles on text and comment nodes
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5304
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5305
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5306
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5307
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5308
		// Make sure that we're working with the right name
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5309
		var ret, origName = jQuery.camelCase( name ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5310
			style = elem.style, hooks = jQuery.cssHooks[ origName ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5311
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5312
		name = jQuery.cssProps[ origName ] || origName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5313
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5314
		// Check if we're setting a value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5315
		if ( value !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5316
			// Make sure that NaN and null values aren't set. See: #7116
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5317
			if ( typeof value === "number" && isNaN( value ) || value == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5318
				return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5319
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5320
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5321
			// If a number was passed in, add 'px' to the (except for certain CSS properties)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5322
			if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5323
				value += "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5324
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5325
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5326
			// If a hook was provided, use that value, otherwise just set the specified value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5327
			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5328
				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5329
				// Fixes bug #5509
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5330
				try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5331
					style[ name ] = value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5332
				} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5333
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5334
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5335
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5336
			// If a hook was provided get the non-computed value from there
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5337
			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5338
				return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5339
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5340
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5341
			// Otherwise just get the value from the style object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5342
			return style[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5343
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5344
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5345
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5346
	css: function( elem, name, extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5347
		// Make sure that we're working with the right name
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5348
		var ret, origName = jQuery.camelCase( name ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5349
			hooks = jQuery.cssHooks[ origName ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5350
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5351
		name = jQuery.cssProps[ origName ] || origName;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5352
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5353
		// If a hook was provided get the computed value from there
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5354
		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5355
			return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5356
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5357
		// Otherwise, if a way to get the computed value exists, use that
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5358
		} else if ( curCSS ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5359
			return curCSS( elem, name, origName );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5360
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5361
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5362
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5363
	// A method for quickly swapping in/out CSS properties to get correct calculations
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5364
	swap: function( elem, options, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5365
		var old = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5366
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5367
		// Remember the old values, and insert the new ones
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5368
		for ( var name in options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5369
			old[ name ] = elem.style[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5370
			elem.style[ name ] = options[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5371
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5372
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5373
		callback.call( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5374
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5375
		// Revert the old values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5376
		for ( name in options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5377
			elem.style[ name ] = old[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5378
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5379
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5380
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5381
	camelCase: function( string ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5382
		return string.replace( rdashAlpha, fcamelCase );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5383
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5384
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5385
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5386
// DEPRECATED, Use jQuery.css() instead
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5387
jQuery.curCSS = jQuery.css;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5388
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5389
jQuery.each(["height", "width"], function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5390
	jQuery.cssHooks[ name ] = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5391
		get: function( elem, computed, extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5392
			var val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5393
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5394
			if ( computed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5395
				if ( elem.offsetWidth !== 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5396
					val = getWH( elem, name, extra );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5397
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5398
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5399
					jQuery.swap( elem, cssShow, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5400
						val = getWH( elem, name, extra );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5401
					});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5402
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5403
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5404
				if ( val <= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5405
					val = curCSS( elem, name, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5406
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5407
					if ( val === "0px" && currentStyle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5408
						val = currentStyle( elem, name, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5409
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5410
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5411
					if ( val != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5412
						// Should return "auto" instead of 0, use 0 for
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5413
						// temporary backwards-compat
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5414
						return val === "" || val === "auto" ? "0px" : val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5415
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5416
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5417
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5418
				if ( val < 0 || val == null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5419
					val = elem.style[ name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5420
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5421
					// Should return "auto" instead of 0, use 0 for
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5422
					// temporary backwards-compat
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5423
					return val === "" || val === "auto" ? "0px" : val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5424
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5425
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5426
				return typeof val === "string" ? val : val + "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5427
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5428
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5429
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5430
		set: function( elem, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5431
			if ( rnumpx.test( value ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5432
				// ignore negative width and height values #1599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5433
				value = parseFloat(value);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5434
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5435
				if ( value >= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5436
					return value + "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5437
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5438
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5439
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5440
				return value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5441
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5442
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5443
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5444
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5445
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5446
if ( !jQuery.support.opacity ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5447
	jQuery.cssHooks.opacity = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5448
		get: function( elem, computed ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5449
			// IE uses filters for opacity
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5450
			return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5451
				(parseFloat(RegExp.$1) / 100) + "" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5452
				computed ? "1" : "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5453
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5454
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5455
		set: function( elem, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5456
			var style = elem.style;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5457
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5458
			// IE has trouble with opacity if it does not have layout
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5459
			// Force it by setting the zoom level
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5460
			style.zoom = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5461
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5462
			// Set the alpha filter to set the opacity
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5463
			var opacity = jQuery.isNaN(value) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5464
				"" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5465
				"alpha(opacity=" + value * 100 + ")",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5466
				filter = style.filter || "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5467
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5468
			style.filter = ralpha.test(filter) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5469
				filter.replace(ralpha, opacity) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5470
				style.filter + ' ' + opacity;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5471
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5472
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5473
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5474
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5475
if ( document.defaultView && document.defaultView.getComputedStyle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5476
	getComputedStyle = function( elem, newName, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5477
		var ret, defaultView, computedStyle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5478
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5479
		name = name.replace( rupper, "-$1" ).toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5480
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5481
		if ( !(defaultView = elem.ownerDocument.defaultView) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5482
			return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5483
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5484
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5485
		if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5486
			ret = computedStyle.getPropertyValue( name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5487
			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5488
				ret = jQuery.style( elem, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5489
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5490
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5491
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5492
		return ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5493
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5494
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5495
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5496
if ( document.documentElement.currentStyle ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5497
	currentStyle = function( elem, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5498
		var left, rsLeft,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5499
			ret = elem.currentStyle && elem.currentStyle[ name ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5500
			style = elem.style;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5501
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5502
		// From the awesome hack by Dean Edwards
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5503
		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5504
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5505
		// If we're not dealing with a regular pixel number
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5506
		// but a number that has a weird ending, we need to convert it to pixels
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5507
		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5508
			// Remember the original values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5509
			left = style.left;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5510
			rsLeft = elem.runtimeStyle.left;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5511
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5512
			// Put in the new values to get a computed value out
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5513
			elem.runtimeStyle.left = elem.currentStyle.left;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5514
			style.left = name === "fontSize" ? "1em" : (ret || 0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5515
			ret = style.pixelLeft + "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5516
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5517
			// Revert the changed values
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5518
			style.left = left;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5519
			elem.runtimeStyle.left = rsLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5520
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5521
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5522
		return ret === "" ? "auto" : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5523
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5524
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5525
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5526
curCSS = getComputedStyle || currentStyle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5527
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5528
function getWH( elem, name, extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5529
	var which = name === "width" ? cssWidth : cssHeight,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5530
		val = name === "width" ? elem.offsetWidth : elem.offsetHeight;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5531
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5532
	if ( extra === "border" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5533
		return val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5534
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5535
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5536
	jQuery.each( which, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5537
		if ( !extra ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5538
			val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5539
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5540
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5541
		if ( extra === "margin" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5542
			val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5543
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5544
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5545
			val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5546
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5547
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5548
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5549
	return val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5550
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5551
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5552
if ( jQuery.expr && jQuery.expr.filters ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5553
	jQuery.expr.filters.hidden = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5554
		var width = elem.offsetWidth,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5555
			height = elem.offsetHeight;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5556
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5557
		return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5558
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5559
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5560
	jQuery.expr.filters.visible = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5561
		return !jQuery.expr.filters.hidden( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5562
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5563
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5564
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5565
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5566
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5567
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5568
var jsc = jQuery.now(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5569
	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5570
	rselectTextarea = /^(?:select|textarea)/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5571
	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5572
	rnoContent = /^(?:GET|HEAD)$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5573
	rbracket = /\[\]$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5574
	jsre = /\=\?(&|$)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5575
	rquery = /\?/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5576
	rts = /([?&])_=[^&]*/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5577
	rurl = /^(\w+:)?\/\/([^\/?#]+)/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5578
	r20 = /%20/g,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5579
	rhash = /#.*$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5580
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5581
	// Keep a copy of the old load method
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5582
	_load = jQuery.fn.load;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5583
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5584
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5585
	load: function( url, params, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5586
		if ( typeof url !== "string" && _load ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5587
			return _load.apply( this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5588
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5589
		// Don't do a request if no elements are being requested
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5590
		} else if ( !this.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5591
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5592
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5593
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5594
		var off = url.indexOf(" ");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5595
		if ( off >= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5596
			var selector = url.slice(off, url.length);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5597
			url = url.slice(0, off);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5598
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5600
		// Default to a GET request
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5601
		var type = "GET";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5602
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5603
		// If the second parameter was provided
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5604
		if ( params ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5605
			// If it's a function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5606
			if ( jQuery.isFunction( params ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5607
				// We assume that it's the callback
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5608
				callback = params;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5609
				params = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5610
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5611
			// Otherwise, build a param string
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5612
			} else if ( typeof params === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5613
				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5614
				type = "POST";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5615
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5616
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5617
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5618
		var self = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5619
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5620
		// Request the remote document
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5621
		jQuery.ajax({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5622
			url: url,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5623
			type: type,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5624
			dataType: "html",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5625
			data: params,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5626
			complete: function( res, status ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5627
				// If successful, inject the HTML into all the matched elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5628
				if ( status === "success" || status === "notmodified" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5629
					// See if a selector was specified
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5630
					self.html( selector ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5631
						// Create a dummy div to hold the results
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5632
						jQuery("<div>")
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5633
							// inject the contents of the document in, removing the scripts
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5634
							// to avoid any 'Permission Denied' errors in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5635
							.append(res.responseText.replace(rscript, ""))
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5636
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5637
							// Locate the specified elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5638
							.find(selector) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5639
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5640
						// If not, just inject the full result
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5641
						res.responseText );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5642
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5643
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5644
				if ( callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5645
					self.each( callback, [res.responseText, status, res] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5646
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5647
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5648
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5649
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5650
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5651
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5652
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5653
	serialize: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5654
		return jQuery.param(this.serializeArray());
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5655
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5656
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5657
	serializeArray: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5658
		return this.map(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5659
			return this.elements ? jQuery.makeArray(this.elements) : this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5660
		})
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5661
		.filter(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5662
			return this.name && !this.disabled &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5663
				(this.checked || rselectTextarea.test(this.nodeName) ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5664
					rinput.test(this.type));
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5665
		})
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5666
		.map(function( i, elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5667
			var val = jQuery(this).val();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5668
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5669
			return val == null ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5670
				null :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5671
				jQuery.isArray(val) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5672
					jQuery.map( val, function( val, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5673
						return { name: elem.name, value: val };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5674
					}) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5675
					{ name: elem.name, value: val };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5676
		}).get();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5677
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5678
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5679
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5680
// Attach a bunch of functions for handling common AJAX events
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5681
jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function( i, o ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5682
	jQuery.fn[o] = function( f ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5683
		return this.bind(o, f);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5684
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5685
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5686
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5687
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5688
	get: function( url, data, callback, type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5689
		// shift arguments if data argument was omited
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5690
		if ( jQuery.isFunction( data ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5691
			type = type || callback;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5692
			callback = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5693
			data = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5694
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5695
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5696
		return jQuery.ajax({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5697
			type: "GET",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5698
			url: url,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5699
			data: data,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5700
			success: callback,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5701
			dataType: type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5702
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5703
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5704
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5705
	getScript: function( url, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5706
		return jQuery.get(url, null, callback, "script");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5707
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5708
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5709
	getJSON: function( url, data, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5710
		return jQuery.get(url, data, callback, "json");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5711
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5712
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5713
	post: function( url, data, callback, type ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5714
		// shift arguments if data argument was omited
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5715
		if ( jQuery.isFunction( data ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5716
			type = type || callback;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5717
			callback = data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5718
			data = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5719
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5720
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5721
		return jQuery.ajax({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5722
			type: "POST",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5723
			url: url,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5724
			data: data,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5725
			success: callback,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5726
			dataType: type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5727
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5728
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5729
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5730
	ajaxSetup: function( settings ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5731
		jQuery.extend( jQuery.ajaxSettings, settings );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5732
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5733
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5734
	ajaxSettings: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5735
		url: location.href,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5736
		global: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5737
		type: "GET",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5738
		contentType: "application/x-www-form-urlencoded",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5739
		processData: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5740
		async: true,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5741
		/*
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5742
		timeout: 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5743
		data: null,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5744
		username: null,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5745
		password: null,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5746
		traditional: false,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5747
		*/
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5748
		// This function can be overriden by calling jQuery.ajaxSetup
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5749
		xhr: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5750
			return new window.XMLHttpRequest();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5751
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5752
		accepts: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5753
			xml: "application/xml, text/xml",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5754
			html: "text/html",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5755
			script: "text/javascript, application/javascript",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5756
			json: "application/json, text/javascript",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5757
			text: "text/plain",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5758
			_default: "*/*"
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5759
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5760
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5761
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5762
	ajax: function( origSettings ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5763
		var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5764
			jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5765
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5766
		s.url = s.url.replace( rhash, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5767
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5768
		// Use original (not extended) context object if it was provided
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5769
		s.context = origSettings && origSettings.context != null ? origSettings.context : s;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5770
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5771
		// convert data if not already a string
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5772
		if ( s.data && s.processData && typeof s.data !== "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5773
			s.data = jQuery.param( s.data, s.traditional );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5774
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5775
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5776
		// Handle JSONP Parameter Callbacks
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5777
		if ( s.dataType === "jsonp" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5778
			if ( type === "GET" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5779
				if ( !jsre.test( s.url ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5780
					s.url += (rquery.test( s.url ) ? "&" : "?") + (s.jsonp || "callback") + "=?";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5781
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5782
			} else if ( !s.data || !jsre.test(s.data) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5783
				s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5784
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5785
			s.dataType = "json";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5786
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5787
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5788
		// Build temporary JSONP function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5789
		if ( s.dataType === "json" && (s.data && jsre.test(s.data) || jsre.test(s.url)) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5790
			jsonp = s.jsonpCallback || ("jsonp" + jsc++);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5791
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5792
			// Replace the =? sequence both in the query string and the data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5793
			if ( s.data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5794
				s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5795
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5796
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5797
			s.url = s.url.replace(jsre, "=" + jsonp + "$1");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5798
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5799
			// We need to make sure
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5800
			// that a JSONP style response is executed properly
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5801
			s.dataType = "script";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5802
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5803
			// Handle JSONP-style loading
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5804
			var customJsonp = window[ jsonp ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5805
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5806
			window[ jsonp ] = function( tmp ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5807
				if ( jQuery.isFunction( customJsonp ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5808
					customJsonp( tmp );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5809
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5810
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5811
					// Garbage collect
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5812
					window[ jsonp ] = undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5813
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5814
					try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5815
						delete window[ jsonp ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5816
					} catch( jsonpError ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5817
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5818
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5819
				data = tmp;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5820
				jQuery.handleSuccess( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5821
				jQuery.handleComplete( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5822
				
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5823
				if ( head ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5824
					head.removeChild( script );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5825
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5826
			};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5827
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5828
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5829
		if ( s.dataType === "script" && s.cache === null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5830
			s.cache = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5831
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5832
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5833
		if ( s.cache === false && noContent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5834
			var ts = jQuery.now();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5835
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5836
			// try replacing _= if it is there
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5837
			var ret = s.url.replace(rts, "$1_=" + ts);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5838
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5839
			// if nothing was replaced, add timestamp to the end
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5840
			s.url = ret + ((ret === s.url) ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : "");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5841
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5842
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5843
		// If data is available, append data to url for GET/HEAD requests
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5844
		if ( s.data && noContent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5845
			s.url += (rquery.test(s.url) ? "&" : "?") + s.data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5846
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5847
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5848
		// Watch for a new set of requests
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5849
		if ( s.global && jQuery.active++ === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5850
			jQuery.event.trigger( "ajaxStart" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5851
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5852
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5853
		// Matches an absolute URL, and saves the domain
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5854
		var parts = rurl.exec( s.url ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5855
			remote = parts && (parts[1] && parts[1].toLowerCase() !== location.protocol || parts[2].toLowerCase() !== location.host);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5856
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5857
		// If we're requesting a remote document
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5858
		// and trying to load JSON or Script with a GET
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5859
		if ( s.dataType === "script" && type === "GET" && remote ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5860
			var head = document.getElementsByTagName("head")[0] || document.documentElement;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5861
			var script = document.createElement("script");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5862
			if ( s.scriptCharset ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5863
				script.charset = s.scriptCharset;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5864
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5865
			script.src = s.url;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5866
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5867
			// Handle Script loading
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5868
			if ( !jsonp ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5869
				var done = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5870
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5871
				// Attach handlers for all browsers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5872
				script.onload = script.onreadystatechange = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5873
					if ( !done && (!this.readyState ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5874
							this.readyState === "loaded" || this.readyState === "complete") ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5875
						done = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5876
						jQuery.handleSuccess( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5877
						jQuery.handleComplete( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5878
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5879
						// Handle memory leak in IE
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5880
						script.onload = script.onreadystatechange = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5881
						if ( head && script.parentNode ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5882
							head.removeChild( script );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5883
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5884
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5885
				};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5886
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5887
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5888
			// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5889
			// This arises when a base node is used (#2709 and #4378).
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5890
			head.insertBefore( script, head.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5891
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5892
			// We handle everything using the script element injection
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5893
			return undefined;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5894
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5895
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5896
		var requestDone = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5897
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5898
		// Create the request object
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5899
		var xhr = s.xhr();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5900
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5901
		if ( !xhr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5902
			return;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5903
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5904
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5905
		// Open the socket
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5906
		// Passing null username, generates a login popup on Opera (#2865)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5907
		if ( s.username ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5908
			xhr.open(type, s.url, s.async, s.username, s.password);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5909
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5910
			xhr.open(type, s.url, s.async);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5911
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5912
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5913
		// Need an extra try/catch for cross domain requests in Firefox 3
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5914
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5915
			// Set content-type if data specified and content-body is valid for this type
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5916
			if ( (s.data != null && !noContent) || (origSettings && origSettings.contentType) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5917
				xhr.setRequestHeader("Content-Type", s.contentType);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5918
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5919
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5920
			// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5921
			if ( s.ifModified ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5922
				if ( jQuery.lastModified[s.url] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5923
					xhr.setRequestHeader("If-Modified-Since", jQuery.lastModified[s.url]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5924
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5925
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5926
				if ( jQuery.etag[s.url] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5927
					xhr.setRequestHeader("If-None-Match", jQuery.etag[s.url]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5928
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5929
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5930
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5931
			// Set header so the called script knows that it's an XMLHttpRequest
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5932
			// Only send the header if it's not a remote XHR
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5933
			if ( !remote ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5934
				xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5935
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5936
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5937
			// Set the Accepts header for the server, depending on the dataType
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5938
			xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5939
				s.accepts[ s.dataType ] + ", */*; q=0.01" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5940
				s.accepts._default );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5941
		} catch( headerError ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5942
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5943
		// Allow custom headers/mimetypes and early abort
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5944
		if ( s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5945
			// Handle the global AJAX counter
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5946
			if ( s.global && jQuery.active-- === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5947
				jQuery.event.trigger( "ajaxStop" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5948
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5949
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5950
			// close opended socket
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5951
			xhr.abort();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5952
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5953
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5954
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5955
		if ( s.global ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5956
			jQuery.triggerGlobal( s, "ajaxSend", [xhr, s] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5957
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5958
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5959
		// Wait for a response to come back
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5960
		var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5961
			// The request was aborted
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5962
			if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5963
				// Opera doesn't call onreadystatechange before this point
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5964
				// so we simulate the call
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5965
				if ( !requestDone ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5966
					jQuery.handleComplete( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5967
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5968
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5969
				requestDone = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5970
				if ( xhr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5971
					xhr.onreadystatechange = jQuery.noop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5972
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5973
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5974
			// The transfer is complete and the data is available, or the request timed out
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5975
			} else if ( !requestDone && xhr && (xhr.readyState === 4 || isTimeout === "timeout") ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5976
				requestDone = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5977
				xhr.onreadystatechange = jQuery.noop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5978
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5979
				status = isTimeout === "timeout" ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5980
					"timeout" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5981
					!jQuery.httpSuccess( xhr ) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5982
						"error" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5983
						s.ifModified && jQuery.httpNotModified( xhr, s.url ) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5984
							"notmodified" :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5985
							"success";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5986
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5987
				var errMsg;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5988
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5989
				if ( status === "success" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5990
					// Watch for, and catch, XML document parse errors
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5991
					try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5992
						// process the data (runs the xml through httpData regardless of callback)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5993
						data = jQuery.httpData( xhr, s.dataType, s );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5994
					} catch( parserError ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5995
						status = "parsererror";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5996
						errMsg = parserError;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5997
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5998
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  5999
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6000
				// Make sure that the request was successful or notmodified
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6001
				if ( status === "success" || status === "notmodified" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6002
					// JSONP handles its own success callback
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6003
					if ( !jsonp ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6004
						jQuery.handleSuccess( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6005
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6006
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6007
					jQuery.handleError( s, xhr, status, errMsg );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6008
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6009
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6010
				// Fire the complete handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6011
				if ( !jsonp ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6012
					jQuery.handleComplete( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6013
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6014
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6015
				if ( isTimeout === "timeout" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6016
					xhr.abort();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6017
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6018
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6019
				// Stop memory leaks
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6020
				if ( s.async ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6021
					xhr = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6022
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6023
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6024
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6025
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6026
		// Override the abort handler, if we can (IE 6 doesn't allow it, but that's OK)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6027
		// Opera doesn't fire onreadystatechange at all on abort
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6028
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6029
			var oldAbort = xhr.abort;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6030
			xhr.abort = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6031
				if ( xhr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6032
					// oldAbort has no call property in IE7 so
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6033
					// just do it this way, which works in all
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6034
					// browsers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6035
					Function.prototype.call.call( oldAbort, xhr );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6036
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6037
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6038
				onreadystatechange( "abort" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6039
			};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6040
		} catch( abortError ) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6041
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6042
		// Timeout checker
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6043
		if ( s.async && s.timeout > 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6044
			setTimeout(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6045
				// Check to see if the request is still happening
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6046
				if ( xhr && !requestDone ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6047
					onreadystatechange( "timeout" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6048
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6049
			}, s.timeout);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6050
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6051
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6052
		// Send the data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6053
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6054
			xhr.send( noContent || s.data == null ? null : s.data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6055
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6056
		} catch( sendError ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6057
			jQuery.handleError( s, xhr, null, sendError );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6058
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6059
			// Fire the complete handlers
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6060
			jQuery.handleComplete( s, xhr, status, data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6061
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6062
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6063
		// firefox 1.5 doesn't fire statechange for sync requests
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6064
		if ( !s.async ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6065
			onreadystatechange();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6066
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6067
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6068
		// return XMLHttpRequest to allow aborting the request etc.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6069
		return xhr;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6070
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6071
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6072
	// Serialize an array of form elements or a set of
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6073
	// key/values into a query string
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6074
	param: function( a, traditional ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6075
		var s = [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6076
			add = function( key, value ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6077
				// If value is a function, invoke it and return its value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6078
				value = jQuery.isFunction(value) ? value() : value;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6079
				s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6080
			};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6081
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6082
		// Set traditional to true for jQuery <= 1.3.2 behavior.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6083
		if ( traditional === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6084
			traditional = jQuery.ajaxSettings.traditional;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6085
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6086
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6087
		// If an array was passed in, assume that it is an array of form elements.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6088
		if ( jQuery.isArray(a) || a.jquery ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6089
			// Serialize the form elements
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6090
			jQuery.each( a, function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6091
				add( this.name, this.value );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6092
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6093
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6094
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6095
			// If traditional, encode the "old" way (the way 1.3.2 or older
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6096
			// did it), otherwise encode params recursively.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6097
			for ( var prefix in a ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6098
				buildParams( prefix, a[prefix], traditional, add );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6099
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6100
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6101
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6102
		// Return the resulting serialization
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6103
		return s.join("&").replace(r20, "+");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6104
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6105
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6106
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6107
function buildParams( prefix, obj, traditional, add ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6108
	if ( jQuery.isArray(obj) && obj.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6109
		// Serialize array item.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6110
		jQuery.each( obj, function( i, v ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6111
			if ( traditional || rbracket.test( prefix ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6112
				// Treat each array item as a scalar.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6113
				add( prefix, v );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6114
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6115
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6116
				// If array item is non-scalar (array or object), encode its
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6117
				// numeric index to resolve deserialization ambiguity issues.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6118
				// Note that rack (as of 1.0.0) can't currently deserialize
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6119
				// nested arrays properly, and attempting to do so may cause
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6120
				// a server error. Possible fixes are to modify rack's
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6121
				// deserialization algorithm or to provide an option or flag
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6122
				// to force array serialization to be shallow.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6123
				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6124
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6125
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6126
			
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6127
	} else if ( !traditional && obj != null && typeof obj === "object" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6128
		if ( jQuery.isEmptyObject( obj ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6129
			add( prefix, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6130
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6131
		// Serialize object item.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6132
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6133
			jQuery.each( obj, function( k, v ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6134
				buildParams( prefix + "[" + k + "]", v, traditional, add );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6135
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6136
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6137
					
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6138
	} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6139
		// Serialize scalar item.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6140
		add( prefix, obj );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6141
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6142
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6143
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6144
// This is still on the jQuery object... for now
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6145
// Want to move this to jQuery.ajax some day
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6146
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6147
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6148
	// Counter for holding the number of active queries
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6149
	active: 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6150
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6151
	// Last-Modified header cache for next request
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6152
	lastModified: {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6153
	etag: {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6154
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6155
	handleError: function( s, xhr, status, e ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6156
		// If a local callback was specified, fire it
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6157
		if ( s.error ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6158
			s.error.call( s.context, xhr, status, e );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6159
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6160
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6161
		// Fire the global callback
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6162
		if ( s.global ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6163
			jQuery.triggerGlobal( s, "ajaxError", [xhr, s, e] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6164
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6165
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6166
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6167
	handleSuccess: function( s, xhr, status, data ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6168
		// If a local callback was specified, fire it and pass it the data
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6169
		if ( s.success ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6170
			s.success.call( s.context, data, status, xhr );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6171
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6172
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6173
		// Fire the global callback
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6174
		if ( s.global ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6175
			jQuery.triggerGlobal( s, "ajaxSuccess", [xhr, s] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6176
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6177
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6178
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6179
	handleComplete: function( s, xhr, status ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6180
		// Process result
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6181
		if ( s.complete ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6182
			s.complete.call( s.context, xhr, status );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6183
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6184
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6185
		// The request was completed
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6186
		if ( s.global ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6187
			jQuery.triggerGlobal( s, "ajaxComplete", [xhr, s] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6188
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6189
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6190
		// Handle the global AJAX counter
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6191
		if ( s.global && jQuery.active-- === 1 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6192
			jQuery.event.trigger( "ajaxStop" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6193
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6194
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6195
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6196
	triggerGlobal: function( s, type, args ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6197
		(s.context && s.context.url == null ? jQuery(s.context) : jQuery.event).trigger(type, args);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6198
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6199
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6200
	// Determines if an XMLHttpRequest was successful or not
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6201
	httpSuccess: function( xhr ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6202
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6203
			// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6204
			return !xhr.status && location.protocol === "file:" ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6205
				xhr.status >= 200 && xhr.status < 300 ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6206
				xhr.status === 304 || xhr.status === 1223;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6207
		} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6208
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6209
		return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6210
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6211
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6212
	// Determines if an XMLHttpRequest returns NotModified
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6213
	httpNotModified: function( xhr, url ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6214
		var lastModified = xhr.getResponseHeader("Last-Modified"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6215
			etag = xhr.getResponseHeader("Etag");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6216
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6217
		if ( lastModified ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6218
			jQuery.lastModified[url] = lastModified;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6219
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6220
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6221
		if ( etag ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6222
			jQuery.etag[url] = etag;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6223
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6224
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6225
		return xhr.status === 304;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6226
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6227
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6228
	httpData: function( xhr, type, s ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6229
		var ct = xhr.getResponseHeader("content-type") || "",
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6230
			xml = type === "xml" || !type && ct.indexOf("xml") >= 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6231
			data = xml ? xhr.responseXML : xhr.responseText;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6232
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6233
		if ( xml && data.documentElement.nodeName === "parsererror" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6234
			jQuery.error( "parsererror" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6235
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6236
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6237
		// Allow a pre-filtering function to sanitize the response
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6238
		// s is checked to keep backwards compatibility
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6239
		if ( s && s.dataFilter ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6240
			data = s.dataFilter( data, type );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6241
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6242
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6243
		// The filter can actually parse the response
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6244
		if ( typeof data === "string" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6245
			// Get the JavaScript object, if JSON is used.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6246
			if ( type === "json" || !type && ct.indexOf("json") >= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6247
				data = jQuery.parseJSON( data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6248
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6249
			// If the type is "script", eval it in global context
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6250
			} else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6251
				jQuery.globalEval( data );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6252
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6253
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6254
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6255
		return data;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6256
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6257
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6258
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6259
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6260
/*
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6261
 * Create the request object; Microsoft failed to properly
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6262
 * implement the XMLHttpRequest in IE7 (can't request local files),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6263
 * so we use the ActiveXObject when it is available
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6264
 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6265
 * we need a fallback.
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6266
 */
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6267
if ( window.ActiveXObject ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6268
	jQuery.ajaxSettings.xhr = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6269
		if ( window.location.protocol !== "file:" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6270
			try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6271
				return new window.XMLHttpRequest();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6272
			} catch(xhrError) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6273
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6274
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6275
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6276
			return new window.ActiveXObject("Microsoft.XMLHTTP");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6277
		} catch(activeError) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6278
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6279
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6280
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6281
// Does this browser support XHR requests?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6282
jQuery.support.ajax = !!jQuery.ajaxSettings.xhr();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6283
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6284
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6285
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6286
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6287
var elemdisplay = {},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6288
	rfxtypes = /^(?:toggle|show|hide)$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6289
	rfxnum = /^([+\-]=)?([\d+.\-]+)(.*)$/,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6290
	timerId,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6291
	fxAttrs = [
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6292
		// height animations
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6293
		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6294
		// width animations
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6295
		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6296
		// opacity animations
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6297
		[ "opacity" ]
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6298
	];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6299
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6300
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6301
	show: function( speed, easing, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6302
		var elem, display;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6303
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6304
		if ( speed || speed === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6305
			return this.animate( genFx("show", 3), speed, easing, callback);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6306
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6307
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6308
			for ( var i = 0, j = this.length; i < j; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6309
				elem = this[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6310
				display = elem.style.display;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6311
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6312
				// Reset the inline display of this element to learn if it is
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6313
				// being hidden by cascaded rules or not
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6314
				if ( !jQuery.data(elem, "olddisplay") && display === "none" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6315
					display = elem.style.display = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6316
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6317
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6318
				// Set elements which have been overridden with display: none
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6319
				// in a stylesheet to whatever the default browser style is
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6320
				// for such an element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6321
				if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6322
					jQuery.data(elem, "olddisplay", defaultDisplay(elem.nodeName));
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6323
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6324
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6325
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6326
			// Set the display of most of the elements in a second loop
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6327
			// to avoid the constant reflow
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6328
			for ( i = 0; i < j; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6329
				elem = this[i];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6330
				display = elem.style.display;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6331
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6332
				if ( display === "" || display === "none" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6333
					elem.style.display = jQuery.data(elem, "olddisplay") || "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6334
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6335
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6336
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6337
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6338
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6339
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6340
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6341
	hide: function( speed, easing, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6342
		if ( speed || speed === 0 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6343
			return this.animate( genFx("hide", 3), speed, easing, callback);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6344
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6345
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6346
			for ( var i = 0, j = this.length; i < j; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6347
				var display = jQuery.css( this[i], "display" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6348
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6349
				if ( display !== "none" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6350
					jQuery.data( this[i], "olddisplay", display );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6351
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6352
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6353
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6354
			// Set the display of the elements in a second loop
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6355
			// to avoid the constant reflow
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6356
			for ( i = 0; i < j; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6357
				this[i].style.display = "none";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6358
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6359
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6360
			return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6361
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6362
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6363
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6364
	// Save the old toggle function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6365
	_toggle: jQuery.fn.toggle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6366
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6367
	toggle: function( fn, fn2, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6368
		var bool = typeof fn === "boolean";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6369
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6370
		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6371
			this._toggle.apply( this, arguments );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6372
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6373
		} else if ( fn == null || bool ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6374
			this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6375
				var state = bool ? fn : jQuery(this).is(":hidden");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6376
				jQuery(this)[ state ? "show" : "hide" ]();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6377
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6378
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6379
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6380
			this.animate(genFx("toggle", 3), fn, fn2, callback);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6381
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6382
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6383
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6384
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6385
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6386
	fadeTo: function( speed, to, easing, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6387
		return this.filter(":hidden").css("opacity", 0).show().end()
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6388
					.animate({opacity: to}, speed, easing, callback);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6389
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6390
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6391
	animate: function( prop, speed, easing, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6392
		var optall = jQuery.speed(speed, easing, callback);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6393
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6394
		if ( jQuery.isEmptyObject( prop ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6395
			return this.each( optall.complete );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6396
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6397
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6398
		return this[ optall.queue === false ? "each" : "queue" ](function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6399
			// XXX 'this' does not always have a nodeName when running the
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6400
			// test suite
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6401
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6402
			var opt = jQuery.extend({}, optall), p,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6403
				isElement = this.nodeType === 1,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6404
				hidden = isElement && jQuery(this).is(":hidden"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6405
				self = this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6406
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6407
			for ( p in prop ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6408
				var name = jQuery.camelCase( p );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6409
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6410
				if ( p !== name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6411
					prop[ name ] = prop[ p ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6412
					delete prop[ p ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6413
					p = name;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6414
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6415
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6416
				if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6417
					return opt.complete.call(this);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6418
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6419
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6420
				if ( isElement && ( p === "height" || p === "width" ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6421
					// Make sure that nothing sneaks out
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6422
					// Record all 3 overflow attributes because IE does not
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6423
					// change the overflow attribute when overflowX and
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6424
					// overflowY are set to the same value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6425
					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6426
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6427
					// Set display property to inline-block for height/width
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6428
					// animations on inline elements that are having width/height
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6429
					// animated
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6430
					if ( jQuery.css( this, "display" ) === "inline" &&
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6431
							jQuery.css( this, "float" ) === "none" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6432
						if ( !jQuery.support.inlineBlockNeedsLayout ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6433
							this.style.display = "inline-block";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6434
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6435
						} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6436
							var display = defaultDisplay(this.nodeName);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6437
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6438
							// inline-level elements accept inline-block;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6439
							// block-level elements need to be inline with layout
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6440
							if ( display === "inline" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6441
								this.style.display = "inline-block";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6442
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6443
							} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6444
								this.style.display = "inline";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6445
								this.style.zoom = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6446
							}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6447
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6448
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6449
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6450
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6451
				if ( jQuery.isArray( prop[p] ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6452
					// Create (if needed) and add to specialEasing
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6453
					(opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6454
					prop[p] = prop[p][0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6455
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6456
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6457
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6458
			if ( opt.overflow != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6459
				this.style.overflow = "hidden";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6460
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6461
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6462
			opt.curAnim = jQuery.extend({}, prop);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6463
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6464
			jQuery.each( prop, function( name, val ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6465
				var e = new jQuery.fx( self, opt, name );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6466
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6467
				if ( rfxtypes.test(val) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6468
					e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6469
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6470
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6471
					var parts = rfxnum.exec(val),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6472
						start = e.cur() || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6473
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6474
					if ( parts ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6475
						var end = parseFloat( parts[2] ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6476
							unit = parts[3] || "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6477
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6478
						// We need to compute starting value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6479
						if ( unit !== "px" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6480
							jQuery.style( self, name, (end || 1) + unit);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6481
							start = ((end || 1) / e.cur()) * start;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6482
							jQuery.style( self, name, start + unit);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6483
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6484
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6485
						// If a +=/-= token was provided, we're doing a relative animation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6486
						if ( parts[1] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6487
							end = ((parts[1] === "-=" ? -1 : 1) * end) + start;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6488
						}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6489
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6490
						e.custom( start, end, unit );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6491
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6492
					} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6493
						e.custom( start, val, "" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6494
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6495
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6496
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6497
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6498
			// For JS strict compliance
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6499
			return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6500
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6501
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6502
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6503
	stop: function( clearQueue, gotoEnd ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6504
		var timers = jQuery.timers;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6505
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6506
		if ( clearQueue ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6507
			this.queue([]);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6508
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6509
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6510
		this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6511
			// go in reverse order so anything added to the queue during the loop is ignored
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6512
			for ( var i = timers.length - 1; i >= 0; i-- ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6513
				if ( timers[i].elem === this ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6514
					if (gotoEnd) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6515
						// force the next step to be the last
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6516
						timers[i](true);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6517
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6518
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6519
					timers.splice(i, 1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6520
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6521
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6522
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6523
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6524
		// start the next in the queue if the last step wasn't forced
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6525
		if ( !gotoEnd ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6526
			this.dequeue();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6527
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6528
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6529
		return this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6530
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6531
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6532
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6533
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6534
function genFx( type, num ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6535
	var obj = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6536
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6537
	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6538
		obj[ this ] = type;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6539
	});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6540
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6541
	return obj;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6542
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6543
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6544
// Generate shortcuts for custom animations
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6545
jQuery.each({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6546
	slideDown: genFx("show", 1),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6547
	slideUp: genFx("hide", 1),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6548
	slideToggle: genFx("toggle", 1),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6549
	fadeIn: { opacity: "show" },
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6550
	fadeOut: { opacity: "hide" },
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6551
	fadeToggle: { opacity: "toggle" }
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6552
}, function( name, props ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6553
	jQuery.fn[ name ] = function( speed, easing, callback ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6554
		return this.animate( props, speed, easing, callback );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6555
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6556
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6557
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6558
jQuery.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6559
	speed: function( speed, easing, fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6560
		var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6561
			complete: fn || !fn && easing ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6562
				jQuery.isFunction( speed ) && speed,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6563
			duration: speed,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6564
			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6565
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6566
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6567
		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6568
			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6569
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6570
		// Queueing
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6571
		opt.old = opt.complete;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6572
		opt.complete = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6573
			if ( opt.queue !== false ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6574
				jQuery(this).dequeue();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6575
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6576
			if ( jQuery.isFunction( opt.old ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6577
				opt.old.call( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6578
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6579
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6580
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6581
		return opt;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6582
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6583
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6584
	easing: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6585
		linear: function( p, n, firstNum, diff ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6586
			return firstNum + diff * p;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6587
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6588
		swing: function( p, n, firstNum, diff ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6589
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6590
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6591
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6592
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6593
	timers: [],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6594
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6595
	fx: function( elem, options, prop ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6596
		this.options = options;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6597
		this.elem = elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6598
		this.prop = prop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6599
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6600
		if ( !options.orig ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6601
			options.orig = {};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6602
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6603
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6604
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6605
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6606
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6607
jQuery.fx.prototype = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6608
	// Simple function for setting a style value
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6609
	update: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6610
		if ( this.options.step ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6611
			this.options.step.call( this.elem, this.now, this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6612
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6613
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6614
		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6615
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6616
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6617
	// Get the current size
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6618
	cur: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6619
		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6620
			return this.elem[ this.prop ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6621
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6622
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6623
		var r = parseFloat( jQuery.css( this.elem, this.prop ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6624
		return r && r > -10000 ? r : 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6625
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6626
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6627
	// Start an animation from one number to another
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6628
	custom: function( from, to, unit ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6629
		var self = this,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6630
			fx = jQuery.fx;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6631
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6632
		this.startTime = jQuery.now();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6633
		this.start = from;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6634
		this.end = to;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6635
		this.unit = unit || this.unit || "px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6636
		this.now = this.start;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6637
		this.pos = this.state = 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6638
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6639
		function t( gotoEnd ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6640
			return self.step(gotoEnd);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6641
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6642
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6643
		t.elem = this.elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6644
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6645
		if ( t() && jQuery.timers.push(t) && !timerId ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6646
			timerId = setInterval(fx.tick, fx.interval);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6647
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6648
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6649
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6650
	// Simple 'show' function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6651
	show: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6652
		// Remember where we started, so that we can go back to it later
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6653
		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6654
		this.options.show = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6655
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6656
		// Begin the animation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6657
		// Make sure that we start at a small width/height to avoid any
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6658
		// flash of content
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6659
		this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6660
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6661
		// Start by showing the element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6662
		jQuery( this.elem ).show();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6663
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6664
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6665
	// Simple 'hide' function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6666
	hide: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6667
		// Remember where we started, so that we can go back to it later
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6668
		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6669
		this.options.hide = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6670
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6671
		// Begin the animation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6672
		this.custom(this.cur(), 0);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6673
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6674
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6675
	// Each step of an animation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6676
	step: function( gotoEnd ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6677
		var t = jQuery.now(), done = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6678
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6679
		if ( gotoEnd || t >= this.options.duration + this.startTime ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6680
			this.now = this.end;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6681
			this.pos = this.state = 1;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6682
			this.update();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6683
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6684
			this.options.curAnim[ this.prop ] = true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6685
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6686
			for ( var i in this.options.curAnim ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6687
				if ( this.options.curAnim[i] !== true ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6688
					done = false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6689
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6690
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6691
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6692
			if ( done ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6693
				// Reset the overflow
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6694
				if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6695
					var elem = this.elem,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6696
						options = this.options;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6697
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6698
					jQuery.each( [ "", "X", "Y" ], function (index, value) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6699
						elem.style[ "overflow" + value ] = options.overflow[index];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6700
					} );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6701
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6702
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6703
				// Hide the element if the "hide" operation was done
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6704
				if ( this.options.hide ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6705
					jQuery(this.elem).hide();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6706
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6707
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6708
				// Reset the properties, if the item has been hidden or shown
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6709
				if ( this.options.hide || this.options.show ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6710
					for ( var p in this.options.curAnim ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6711
						jQuery.style( this.elem, p, this.options.orig[p] );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6712
					}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6713
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6714
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6715
				// Execute the complete function
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6716
				this.options.complete.call( this.elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6717
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6718
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6719
			return false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6720
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6721
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6722
			var n = t - this.startTime;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6723
			this.state = n / this.options.duration;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6724
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6725
			// Perform the easing function, defaults to swing
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6726
			var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6727
			var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6728
			this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6729
			this.now = this.start + ((this.end - this.start) * this.pos);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6730
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6731
			// Perform the next step of the animation
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6732
			this.update();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6733
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6734
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6735
		return true;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6736
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6737
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6738
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6739
jQuery.extend( jQuery.fx, {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6740
	tick: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6741
		var timers = jQuery.timers;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6742
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6743
		for ( var i = 0; i < timers.length; i++ ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6744
			if ( !timers[i]() ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6745
				timers.splice(i--, 1);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6746
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6747
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6748
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6749
		if ( !timers.length ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6750
			jQuery.fx.stop();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6751
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6752
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6753
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6754
	interval: 13,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6755
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6756
	stop: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6757
		clearInterval( timerId );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6758
		timerId = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6759
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6760
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6761
	speeds: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6762
		slow: 600,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6763
		fast: 200,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6764
		// Default speed
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6765
		_default: 400
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6766
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6767
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6768
	step: {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6769
		opacity: function( fx ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6770
			jQuery.style( fx.elem, "opacity", fx.now );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6771
		},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6772
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6773
		_default: function( fx ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6774
			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6775
				fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6776
			} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6777
				fx.elem[ fx.prop ] = fx.now;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6778
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6779
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6780
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6781
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6782
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6783
if ( jQuery.expr && jQuery.expr.filters ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6784
	jQuery.expr.filters.animated = function( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6785
		return jQuery.grep(jQuery.timers, function( fn ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6786
			return elem === fn.elem;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6787
		}).length;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6788
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6789
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6790
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6791
function defaultDisplay( nodeName ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6792
	if ( !elemdisplay[ nodeName ] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6793
		var elem = jQuery("<" + nodeName + ">").appendTo("body"),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6794
			display = elem.css("display");
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6795
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6796
		elem.remove();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6797
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6798
		if ( display === "none" || display === "" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6799
			display = "block";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6800
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6801
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6802
		elemdisplay[ nodeName ] = display;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6803
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6804
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6805
	return elemdisplay[ nodeName ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6806
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6807
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6808
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6809
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6810
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6811
var rtable = /^t(?:able|d|h)$/i,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6812
	rroot = /^(?:body|html)$/i;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6813
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6814
if ( "getBoundingClientRect" in document.documentElement ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6815
	jQuery.fn.offset = function( options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6816
		var elem = this[0], box;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6817
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6818
		if ( options ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6819
			return this.each(function( i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6820
				jQuery.offset.setOffset( this, options, i );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6821
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6822
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6823
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6824
		if ( !elem || !elem.ownerDocument ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6825
			return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6826
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6827
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6828
		if ( elem === elem.ownerDocument.body ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6829
			return jQuery.offset.bodyOffset( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6830
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6831
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6832
		try {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6833
			box = elem.getBoundingClientRect();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6834
		} catch(e) {}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6835
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6836
		var doc = elem.ownerDocument,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6837
			docElem = doc.documentElement;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6838
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6839
		// Make sure we're not dealing with a disconnected DOM node
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6840
		if ( !box || !jQuery.contains( docElem, elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6841
			return box || { top: 0, left: 0 };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6842
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6843
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6844
		var body = doc.body,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6845
			win = getWindow(doc),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6846
			clientTop  = docElem.clientTop  || body.clientTop  || 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6847
			clientLeft = docElem.clientLeft || body.clientLeft || 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6848
			scrollTop  = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6849
			scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6850
			top  = box.top  + scrollTop  - clientTop,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6851
			left = box.left + scrollLeft - clientLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6852
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6853
		return { top: top, left: left };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6854
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6855
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6856
} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6857
	jQuery.fn.offset = function( options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6858
		var elem = this[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6859
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6860
		if ( options ) { 
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6861
			return this.each(function( i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6862
				jQuery.offset.setOffset( this, options, i );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6863
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6864
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6865
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6866
		if ( !elem || !elem.ownerDocument ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6867
			return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6868
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6869
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6870
		if ( elem === elem.ownerDocument.body ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6871
			return jQuery.offset.bodyOffset( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6872
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6873
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6874
		jQuery.offset.initialize();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6875
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6876
		var computedStyle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6877
			offsetParent = elem.offsetParent,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6878
			prevOffsetParent = elem,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6879
			doc = elem.ownerDocument,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6880
			docElem = doc.documentElement,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6881
			body = doc.body,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6882
			defaultView = doc.defaultView,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6883
			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6884
			top = elem.offsetTop,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6885
			left = elem.offsetLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6886
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6887
		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6888
			if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6889
				break;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6890
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6891
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6892
			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6893
			top  -= elem.scrollTop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6894
			left -= elem.scrollLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6895
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6896
			if ( elem === offsetParent ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6897
				top  += elem.offsetTop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6898
				left += elem.offsetLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6899
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6900
				if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6901
					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6902
					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6903
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6904
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6905
				prevOffsetParent = offsetParent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6906
				offsetParent = elem.offsetParent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6907
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6908
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6909
			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6910
				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6911
				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6912
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6913
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6914
			prevComputedStyle = computedStyle;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6915
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6916
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6917
		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6918
			top  += body.offsetTop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6919
			left += body.offsetLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6920
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6921
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6922
		if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6923
			top  += Math.max( docElem.scrollTop, body.scrollTop );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6924
			left += Math.max( docElem.scrollLeft, body.scrollLeft );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6925
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6926
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6927
		return { top: top, left: left };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6928
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6929
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6930
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6931
jQuery.offset = {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6932
	initialize: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6933
		var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6934
			html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6935
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6936
		jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6937
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6938
		container.innerHTML = html;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6939
		body.insertBefore( container, body.firstChild );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6940
		innerDiv = container.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6941
		checkDiv = innerDiv.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6942
		td = innerDiv.nextSibling.firstChild.firstChild;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6943
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6944
		this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6945
		this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6946
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6947
		checkDiv.style.position = "fixed";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6948
		checkDiv.style.top = "20px";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6949
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6950
		// safari subtracts parent border width here which is 5px
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6951
		this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6952
		checkDiv.style.position = checkDiv.style.top = "";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6953
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6954
		innerDiv.style.overflow = "hidden";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6955
		innerDiv.style.position = "relative";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6956
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6957
		this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6958
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6959
		this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6960
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6961
		body.removeChild( container );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6962
		body = container = innerDiv = checkDiv = table = td = null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6963
		jQuery.offset.initialize = jQuery.noop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6964
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6965
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6966
	bodyOffset: function( body ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6967
		var top = body.offsetTop,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6968
			left = body.offsetLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6969
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6970
		jQuery.offset.initialize();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6971
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6972
		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6973
			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6974
			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6975
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6976
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6977
		return { top: top, left: left };
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6978
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6979
	
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6980
	setOffset: function( elem, options, i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6981
		var position = jQuery.css( elem, "position" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6982
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6983
		// set position first, in-case top/left are set even on static elem
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6984
		if ( position === "static" ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6985
			elem.style.position = "relative";
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6986
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6987
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6988
		var curElem = jQuery( elem ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6989
			curOffset = curElem.offset(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6990
			curCSSTop = jQuery.css( elem, "top" ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6991
			curCSSLeft = jQuery.css( elem, "left" ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6992
			calculatePosition = (position === "absolute" && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6993
			props = {}, curPosition = {}, curTop, curLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6994
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6995
		// need to be able to calculate position if either top or left is auto and position is absolute
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6996
		if ( calculatePosition ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6997
			curPosition = curElem.position();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6998
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  6999
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7000
		curTop  = calculatePosition ? curPosition.top  : parseInt( curCSSTop,  10 ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7001
		curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7002
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7003
		if ( jQuery.isFunction( options ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7004
			options = options.call( elem, i, curOffset );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7005
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7006
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7007
		if (options.top != null) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7008
			props.top = (options.top - curOffset.top) + curTop;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7009
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7010
		if (options.left != null) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7011
			props.left = (options.left - curOffset.left) + curLeft;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7012
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7013
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7014
		if ( "using" in options ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7015
			options.using.call( elem, props );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7016
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7017
			curElem.css( props );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7018
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7019
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7020
};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7021
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7022
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7023
jQuery.fn.extend({
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7024
	position: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7025
		if ( !this[0] ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7026
			return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7027
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7028
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7029
		var elem = this[0],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7030
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7031
		// Get *real* offsetParent
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7032
		offsetParent = this.offsetParent(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7033
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7034
		// Get correct offsets
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7035
		offset       = this.offset(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7036
		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7037
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7038
		// Subtract element margins
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7039
		// note: when an element has margin: auto the offsetLeft and marginLeft
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7040
		// are the same in Safari causing offset.left to incorrectly be 0
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7041
		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7042
		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7043
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7044
		// Add offsetParent borders
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7045
		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7046
		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7047
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7048
		// Subtract the two offsets
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7049
		return {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7050
			top:  offset.top  - parentOffset.top,
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7051
			left: offset.left - parentOffset.left
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7052
		};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7053
	},
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7054
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7055
	offsetParent: function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7056
		return this.map(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7057
			var offsetParent = this.offsetParent || document.body;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7058
			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7059
				offsetParent = offsetParent.offsetParent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7060
			}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7061
			return offsetParent;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7062
		});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7063
	}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7064
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7065
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7066
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7067
// Create scrollLeft and scrollTop methods
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7068
jQuery.each( ["Left", "Top"], function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7069
	var method = "scroll" + name;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7070
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7071
	jQuery.fn[ method ] = function(val) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7072
		var elem = this[0], win;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7073
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7074
		if ( !elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7075
			return null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7076
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7077
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7078
		if ( val !== undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7079
			// Set the scroll offset
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7080
			return this.each(function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7081
				win = getWindow( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7082
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7083
				if ( win ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7084
					win.scrollTo(
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7085
						!i ? val : jQuery(win).scrollLeft(),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7086
						 i ? val : jQuery(win).scrollTop()
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7087
					);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7088
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7089
				} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7090
					this[ method ] = val;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7091
				}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7092
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7093
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7094
			win = getWindow( elem );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7095
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7096
			// Return the scroll offset
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7097
			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7098
				jQuery.support.boxModel && win.document.documentElement[ method ] ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7099
					win.document.body[ method ] :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7100
				elem[ method ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7101
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7102
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7103
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7104
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7105
function getWindow( elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7106
	return jQuery.isWindow( elem ) ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7107
		elem :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7108
		elem.nodeType === 9 ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7109
			elem.defaultView || elem.parentWindow :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7110
			false;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7111
}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7112
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7113
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7114
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7115
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7116
// Create innerHeight, innerWidth, outerHeight and outerWidth methods
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7117
jQuery.each([ "Height", "Width" ], function( i, name ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7118
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7119
	var type = name.toLowerCase();
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7120
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7121
	// innerHeight and innerWidth
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7122
	jQuery.fn["inner" + name] = function() {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7123
		return this[0] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7124
			parseFloat( jQuery.css( this[0], type, "padding" ) ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7125
			null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7126
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7127
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7128
	// outerHeight and outerWidth
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7129
	jQuery.fn["outer" + name] = function( margin ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7130
		return this[0] ?
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7131
			parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) :
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7132
			null;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7133
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7134
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7135
	jQuery.fn[ type ] = function( size ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7136
		// Get window width or height
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7137
		var elem = this[0];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7138
		if ( !elem ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7139
			return size == null ? null : this;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7140
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7141
		
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7142
		if ( jQuery.isFunction( size ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7143
			return this.each(function( i ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7144
				var self = jQuery( this );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7145
				self[ type ]( size.call( this, i, self[ type ]() ) );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7146
			});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7147
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7148
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7149
		if ( jQuery.isWindow( elem ) ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7150
			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7151
			return elem.document.compatMode === "CSS1Compat" && elem.document.documentElement[ "client" + name ] ||
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7152
				elem.document.body[ "client" + name ];
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7153
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7154
		// Get document width or height
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7155
		} else if ( elem.nodeType === 9 ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7156
			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7157
			return Math.max(
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7158
				elem.documentElement["client" + name],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7159
				elem.body["scroll" + name], elem.documentElement["scroll" + name],
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7160
				elem.body["offset" + name], elem.documentElement["offset" + name]
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7161
			);
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7162
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7163
		// Get or set width or height on the element
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7164
		} else if ( size === undefined ) {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7165
			var orig = jQuery.css( elem, type ),
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7166
				ret = parseFloat( orig );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7167
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7168
			return jQuery.isNaN( ret ) ? orig : ret;
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7169
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7170
		// Set the width or height on the element (default to pixels if value is unitless)
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7171
		} else {
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7172
			return this.css( type, typeof size === "string" ? size : size + "px" );
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7173
		}
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7174
	};
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7175
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7176
});
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7177
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7178
c68ca09b08b9 Add external javascript libraries under ext/
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
  7179
})(window);